DashboarHeatingTile + more series
This commit is contained in:
parent
1d809f13a7
commit
35f8c187ed
@ -1,15 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||||
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" xmlns="http://www.w3.org/2000/svg">
|
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 24 24" id="wind" data-name="Flat Color" xmlns="http://www.w3.org/2000/svg" class="icon flat-color"><path id="secondary" d="M10,8H3A1,1,0,0,1,3,6h7a1,1,0,0,0,0-2,1,1,0,0,1,0-2,3,3,0,0,1,0,6ZM20,18a4,4,0,0,0-4-4H3a1,1,0,0,0,0,2H16a2,2,0,0,1,0,4,1,1,0,0,0,0,2A4,4,0,0,0,20,18Z" style="fill: rgb(44, 169, 188);"></path><path id="primary" d="M10,20H3a1,1,0,0,1,0-2h7a1,1,0,0,1,0,2ZM22,7.5A4.51,4.51,0,0,0,17.5,3a1,1,0,0,0,0,2,2.5,2.5,0,0,1,0,5H3a1,1,0,0,0,0,2H17.5A4.51,4.51,0,0,0,22,7.5Z" style="fill: rgb(0, 0, 0);"></path></svg>
|
||||||
<path d="M844.936791 428.018878c0-183.933831-149.679748-333.678084-333.68218-333.678084-183.99936 0-333.743613 149.745277-333.743612 333.678084 0 89.15891 34.702545 172.945494 97.78412 236.023997 47.997696 47.997696 108.040379 79.411522 173.295663 91.744221-9.748412 70.1771-67.329675 119.643048-108.553346 124.022205-12.974675 1.34129-22.562337 12.654199-21.920361 25.690307 0.703409 13.040203 11.502328 23.265746 24.541507 23.265746h337.196154c13.037132 0 23.838098-10.225543 24.541508-23.265746 0.637881-13.037132-8.949782-24.349017-21.924457-25.690307-41.220599-4.378134-98.805958-53.845105-108.550274-124.022205 65.219447-12.332699 125.327659-43.776217 173.295663-91.744221 63.013998-63.078503 97.719615-146.864063 97.719615-236.023997z" fill="#27323A"/>
|
|
||||||
<path d="M587.435775 879.68234H435.073448c31.187547-30.294719 55.85704-71.293135 62.601372-118.586399 4.538884 0.189419 9.012239 0.670645 13.579791 0.670645 4.571648 0 9.045003-0.481226 13.582863-0.670645 6.741261 47.293263 31.410754 88.291679 62.598301 118.586399zM511.254611 712.682548c-76.053178 0-147.507063-29.59131-201.256947-83.341194-53.746812-53.812341-83.402627-125.265202-83.402627-201.322476 0-156.901211 127.692834-284.594045 284.659574-284.594046 156.901211 0 284.598141 127.692834 284.598141 284.594046 0 76.057274-29.59131 147.510135-83.341193 201.322476-53.749884 53.749884-125.265202 83.341194-201.256948 83.341194z" fill="#F4CE73"/>
|
|
||||||
<path
|
|
||||||
d="M651.029293 354.841794c-24.989969-3.259027-62.025949 11.217688-87.398852 26.204297-1.020814-1.119107-1.917737-2.366199-3.004079-3.419777 7.44467-9.777081 20.611835-19.714912 33.58651-29.43056 26.714192-19.941191 57.008911-42.500456 57.008911-77.395492 0-33.108356-15.916297-62.37919-44.865631-82.32038-41.800118-28.822372-104.431184-35.085478-155.880397-15.592749-65.955621 25.114883-95.867407 96.056826-69.66311 165.016526 9.29995 24.574272 39.912074 49.979938 64.647096 64.839586-0.798631 2.044699-1.374054 4.185643-1.983266 6.325563-12.238501-1.403747-27.673573-7.860368-42.850625-14.345657-30.615195-13.101637-65.31774-27.994049-95.484474-10.546019-28.697458 16.554178-46.079959 44.993617-48.829091 80.016638-4.024893 50.618843 21.920361 107.945158 64.551874 142.650775 54.705169 44.545155 131.145376 34.957493 177.736254-22.241861 16.427216-20.196138 23.039468-58.638936 23.550386-86.983153 3.259027-0.510919 6.391092-1.308525 9.492441-2.267906 4.793831 11.152159 7.222487 27.064361 9.522133 42.660182 4.98325 32.977299 10.608476 70.366519 41.351657 86.855168 29.26981 15.657254 62.568608 15.402307 93.818612-0.703409 45.187131-23.265746 80.209129-75.480826 87.241173-129.996577 9.07572-69.97949-39.30491-129.864495-112.547522-139.325195z"
|
|
||||||
fill="#27323A"/>
|
|
||||||
<path d="M511.254611 390.119763c14.636441 0 26.970163 8.566849 33.298799 20.710128 0.448462 0.861088 0.670645 1.819444 1.279857 2.618075 0.156654 0.193514 0.382933 0.287712 0.543683 0.481226 1.756987 4.378134 2.84333 9.106436 2.843329 14.09071 0 20.965076-17.00264 37.964644-37.964644 37.964644s-37.961572-16.999568-37.961572-37.964644c-0.001024-20.897499 16.998544-37.900139 37.960548-37.900139z" fill="#FFFFFF"/>
|
|
||||||
<path
|
|
||||||
d="M411.424768 326.275393c-19.938119-52.343066 1.345385-104.048251 50.684372-122.83757 41.158142-15.595821 92.863327-10.674005 125.713664 11.949766 13.995489 9.715648 30.677652 27.162654 30.677652 55.412673 0 18.468843-22.30739 35.085478-43.844817 51.191195-15.880461 11.855568-32.051706 24.12581-42.306942 38.985458-6.711568-2.107156-13.710848-3.579503-21.093062-3.579504-18.212872 0-34.702545 7.127266-47.228758 18.471916-21.666437-12.685939-46.976883-34.640088-52.602109-49.593934zM473.227511 563.959109c-35.405955 43.396356-90.818628 50.811333-131.721824 17.513558-34.126098-27.801558-55.730078-74.96786-52.598013-114.722255 1.34129-16.934039 8.115315-40.134257 32.59539-54.322236 15.978754-9.204729 41.541075 1.724223 66.276097 12.332699 17.990689 7.735454 36.42984 15.595821 54.195274 17.163389 5.019086 25.147647 23.553458 45.2158 47.581999 53.013711-0.062457 24.76369-6.197578 56.527685-16.328923 69.021134zM731.11146 489.949606c-5.562769 43.652327-34.257155 86.855168-69.728639 105.134593-15.147359 7.797911-38.475563 14.315965-63.400003 0.958356-16.296159-8.756267-20.451085-36.237349-24.414546-62.889084-2.876094-18.978738-5.814645-38.442798-13.484569-54.228039 13.423137-12.876382 21.858928-30.867071 21.858927-50.906554 0-6.358328-1.119107-12.398227-2.716367-18.275329 21.377702-12.879454 51.960132-24.480074 67.584622-22.434352 55.667621 7.16003 91.073576 50.362871 84.300575 102.640409z"
|
|
||||||
fill="#79CCBF"/>
|
|
||||||
<path
|
|
||||||
d="M466.516966 255.843346c14.126546-13.612555 30.549666-14.187979 36.940759-13.740542 9.012239 0.575424 16.809125-6.263107 17.385573-15.336778 0.575424-9.012239-6.263107-16.747692-15.33985-17.320044-10.736462-0.703409-38.21652 0.189419-61.737214 22.879742-23.262675 22.43128-25.435359 49.273457-25.307373 59.8205 0.127986 9.012239 7.542963 16.233702 16.616635 16.105716 9.012239-0.127986 16.233702-7.542963 16.105716-16.554178-0.067576-6.263107 1.274737-22.241861 15.335754-35.854416zM431.431488 538.71624c-4.665845 4.218408-17.513558 13.867503-36.940759 12.398227-19.558257-1.472347-30.935671-13.423137-34.960564-18.471915-5.559697-7.094501-15.850769-8.307806-22.945271-2.749132-7.094501 5.625226-8.307806 15.916297-2.749132 23.010799 14.061017 17.830963 35.281041 29.142848 58.160782 30.867071 32.146928 2.427632 53.684355-13.80607 61.482266-20.834019 6.64604-6.135121 7.155935-16.488649 1.086343-23.134689-6.134097-6.711568-16.487625-7.159006-23.133665-1.086342zM668.92476 405.587598c-8.373334-3.513974-17.957925 0.448462-21.475994 8.756267-3.513974 8.307806 0.448462 17.957925 8.756267 21.410467 5.752188 2.427632 19.941191 10.098581 26.779721 28.376981 6.83853 18.406386 0.765866 33.681732-2.172685 39.368391-4.155951 8.052858-0.958357 17.895468 7.094501 22.048347 7.987329 4.155951 17.892396 0.958357 21.982818-7.094502 4.921817-9.522134 15.147359-35.085478 3.773018-65.762106-11.310861-30.231238-35.087526-43.013422-44.737646-47.103845z"
|
|
||||||
fill="#27323A"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 707 B |
@ -1,40 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" ?>
|
||||||
<svg height="800px" width="800px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 503.607 503.607">
|
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path style="fill:#FFDD09;" d="M452.246,494.213H49.361c-23.502,0-41.967-18.466-41.967-41.967V49.361
|
<path d="M26.87,12.49l-10,18C16.69,30.81,16.36,31,16,31c-0.08,0-0.17-0.01-0.25-0.03C15.31,30.85,15,30.46,15,30 V19H6c-0.34,0-0.65-0.17-0.84-0.45c-0.18-0.28-0.21-0.64-0.08-0.95l7-16C12.24,1.24,12.6,1,13,1h6c0.33,0,0.64,0.16,0.83,0.44 c0.18,0.27,0.22,0.62,0.1,0.93L16.48,11H26c0.35,0,0.68,0.19,0.86,0.49C27.04,11.8,27.05,12.18,26.87,12.49z" fill="#FFB841"/>
|
||||||
c0-23.502,18.466-41.967,41.967-41.967h402.885c23.502,0,41.967,18.466,41.967,41.967v402.885
|
|
||||||
C494.213,475.747,475.747,494.213,452.246,494.213"/>
|
|
||||||
<path style="fill:#FD9808;" d="M452.246,7.393h-25.18c23.502,0,41.967,18.466,41.967,41.967v402.885
|
|
||||||
c0,23.502-18.466,41.967-41.967,41.967h25.18c23.502,0,41.967-18.466,41.967-41.967V49.361
|
|
||||||
C494.213,25.859,475.747,7.393,452.246,7.393"/>
|
|
||||||
<path style="fill:#FFFFFF;" d="M49.361,7.393h25.18c-22.662,0-41.967,18.466-41.967,41.967v402.885
|
|
||||||
c0,23.502,18.466,41.967,41.967,41.967h-25.18c-23.502,0-41.967-18.466-41.967-41.967V49.361
|
|
||||||
C7.393,25.859,26.698,7.393,49.361,7.393"/>
|
|
||||||
<path style="fill:#FCC309;" d="M443.852,250.803c0-106.597-86.452-193.049-193.049-193.049S57.754,144.207,57.754,250.803
|
|
||||||
s86.452,193.049,193.049,193.049S443.852,357.4,443.852,250.803"/>
|
|
||||||
<path style="fill:#FD9808;" d="M250.803,57.754c-4.197,0-8.393,0-12.59,0.839c100.721,5.875,180.459,89.81,180.459,192.21
|
|
||||||
s-79.738,186.334-180.459,192.21c4.197,0,8.393,0.839,12.59,0.839c106.597,0,193.049-86.452,193.049-193.049
|
|
||||||
S357.4,57.754,250.803,57.754"/>
|
|
||||||
<path style="fill:#FFDD09;" d="M326.344,208.836h-67.148l58.754-92.328h-67.148l-75.541,134.295h55.397l-55.397,134.295
|
|
||||||
L326.344,208.836z"/>
|
|
||||||
<path d="M175.262,393.492c-1.679,0-3.357,0-4.197-0.839c-3.357-2.518-5.036-6.715-3.357-10.072l51.2-123.384h-43.646
|
|
||||||
c-3.357,0-5.875-1.679-7.554-4.197s-1.679-5.875,0-8.393l75.541-134.295c1.679-2.518,4.197-4.197,7.554-4.197h67.148
|
|
||||||
c3.357,0,5.875,1.679,7.554,4.197s1.679,5.875,0,8.393l-50.361,79.738h51.2c3.357,0,5.875,1.679,7.554,5.036
|
|
||||||
c1.679,3.357,0.839,6.715-0.839,9.233L181.977,390.974C180.298,392.652,177.78,393.492,175.262,393.492z M189.531,242.41h41.128
|
|
||||||
c2.518,0,5.036,1.679,6.715,3.357c1.679,2.518,1.679,5.036,0.839,7.554l-35.252,85.613l104.918-121.705h-48.682
|
|
||||||
c-3.357,0-5.875-1.679-7.554-4.197c-1.679-2.518-1.679-5.875,0-8.393l50.361-79.738H255L189.531,242.41z"/>
|
|
||||||
<path d="M452.246,502.607H49.361C21.662,502.607-1,479.944-1,452.246V49.361C-1,21.662,21.662-1,49.361-1h402.885
|
|
||||||
c27.698,0,50.361,22.662,50.361,50.361v402.885C502.607,479.944,479.944,502.607,452.246,502.607z M49.361,15.787
|
|
||||||
c-18.466,0-33.574,15.108-33.574,33.574v402.885c0,18.466,15.108,33.574,33.574,33.574h402.885
|
|
||||||
c18.466,0,33.574-15.108,33.574-33.574V49.361c0-18.466-15.108-33.574-33.574-33.574H49.361z"/>
|
|
||||||
<path d="M250.803,452.246c-110.793,0-201.443-90.649-201.443-201.443S140.01,49.361,250.803,49.361s201.443,90.649,201.443,201.443
|
|
||||||
S361.597,452.246,250.803,452.246z M250.803,66.148c-101.561,0-184.656,83.095-184.656,184.656s83.095,184.656,184.656,184.656
|
|
||||||
s184.656-83.095,184.656-184.656S352.364,66.148,250.803,66.148z"/>
|
|
||||||
<path d="M66.148,49.361c0-9.233-7.554-16.787-16.787-16.787s-16.787,7.554-16.787,16.787s7.554,16.787,16.787,16.787
|
|
||||||
S66.148,58.593,66.148,49.361"/>
|
|
||||||
<path d="M66.148,452.246c0-9.233-7.554-16.787-16.787-16.787s-16.787,7.554-16.787,16.787c0,9.233,7.554,16.787,16.787,16.787
|
|
||||||
S66.148,461.479,66.148,452.246"/>
|
|
||||||
<path d="M469.033,49.361c0-9.233-7.554-16.787-16.787-16.787c-9.233,0-16.787,7.554-16.787,16.787s7.554,16.787,16.787,16.787
|
|
||||||
C461.479,66.148,469.033,58.593,469.033,49.361"/>
|
|
||||||
<path d="M469.033,452.246c0-9.233-7.554-16.787-16.787-16.787c-9.233,0-16.787,7.554-16.787,16.787
|
|
||||||
c0,9.233,7.554,16.787,16.787,16.787C461.479,469.033,469.033,461.479,469.033,452.246"/>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 484 B |
4
src/main/angular/public/fire.svg
Normal file
4
src/main/angular/public/fire.svg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M25.96,8.73C25.84,8.29,25.42,7.95,24.97,8c-0.46,0.02-0.85,0.34-0.95,0.8c-0.42,2.01-1.8,4.26-3.01,4.26 c-0.4,0-0.82-0.25-1.27-0.74C18.15,10.59,17.22,4.21,17,1.9c-0.04-0.36-0.28-0.68-0.62-0.82c-0.34-0.14-0.73-0.09-1.01,0.15 c-4.99,4.1-5.49,10.56-5.45,13.44c-2.04-1.03-2.95-3.93-2.96-3.96C6.82,10.26,6.41,9.96,5.93,10c-0.47,0.04-0.85,0.38-0.92,0.85 c-1.19,7.61-0.29,13.22,2.65,16.66c2.72,3.17,6.36,3.5099,7.79,3.5099c0.38,0,0.62-0.02,0.62-0.02c3.75-0.25,6.6-1.7,8.47-4.33 C29.09,20.27,26.09,9.2,25.96,8.73z" fill="#BF4D48"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 661 B |
38
src/main/angular/public/heating.svg
Normal file
38
src/main/angular/public/heating.svg
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<svg height="800px" width="800px" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.987 511.987">
|
||||||
|
<path style="fill:#646C77;" d="M32,218.661H10.664C4.774,218.661,0,223.443,0,229.333s4.773,10.672,10.664,10.672h21.335
|
||||||
|
c5.891,0,10.664-4.781,10.664-10.672S37.89,218.661,32,218.661z"/>
|
||||||
|
<path style="fill:#424953;" d="M74.663,186.671H32c-5.89,0-10.664,4.773-10.664,10.664v63.998c0,5.891,4.773,10.664,10.664,10.664
|
||||||
|
h42.663c5.89,0,10.671-4.773,10.671-10.664v-63.998C85.334,191.443,80.553,186.671,74.663,186.671z"/>
|
||||||
|
<path style="fill:#E5E8EC;" d="M501.331,122.673c-5.906,0-10.688,4.773-10.688,10.664v85.326h-31.999
|
||||||
|
c-5.875,0-10.656,4.781-10.656,10.671s4.781,10.672,10.656,10.672h42.687c5.875,0,10.656-4.781,10.656-10.672v-95.997
|
||||||
|
C511.987,127.447,507.206,122.673,501.331,122.673z"/>
|
||||||
|
<path style="fill:#F5BA45;" d="M106.662,165.335c-17.671,0-31.999,14.328-31.999,31.999v277.312c0,17.688,14.328,32,31.999,32
|
||||||
|
s31.999-14.312,31.999-32V197.335C138.661,179.663,124.333,165.335,106.662,165.335z"/>
|
||||||
|
<path style="fill:#FECD57;" d="M170.661,165.335c-17.671,0-32,14.328-32,31.999v277.312c0,17.688,14.328,32,32,32
|
||||||
|
s31.999-14.312,31.999-32V197.335C202.659,179.663,188.332,165.335,170.661,165.335z"/>
|
||||||
|
<path style="fill:#F5BA45;" d="M234.659,165.335c-17.671,0-32,14.328-32,31.999v277.312c0,17.688,14.328,32,32,32s32-14.312,32-32
|
||||||
|
V197.335C266.658,179.663,252.33,165.335,234.659,165.335z"/>
|
||||||
|
<path style="fill:#FECD57;" d="M298.649,165.335c-17.656,0-31.991,14.328-31.991,31.999v277.312c0,17.688,14.335,32,31.991,32
|
||||||
|
c17.687,0,31.999-14.312,31.999-32V197.335C330.648,179.663,316.336,165.335,298.649,165.335z"/>
|
||||||
|
<path style="fill:#F5BA45;" d="M362.647,165.335c-17.655,0-31.999,14.328-31.999,31.999v277.312c0,17.688,14.344,32,31.999,32
|
||||||
|
c17.687,0,31.998-14.312,31.998-32V197.335C394.645,179.663,380.334,165.335,362.647,165.335z"/>
|
||||||
|
<path style="fill:#FECD57;" d="M426.645,165.335c-17.656,0-32,14.328-32,31.999v277.312c0,17.688,14.344,32,32,32
|
||||||
|
c17.688,0,31.999-14.312,31.999-32V197.335C458.644,179.663,444.333,165.335,426.645,165.335z"/>
|
||||||
|
<path style="fill:#E5E8EC;" d="M360.305,115.978c-0.344-0.422-8.281-10.461-0.75-18.023c16.748-16.82,7.78-37.46,0.688-46.053
|
||||||
|
l-0.031-0.016v-0.016l0,0c-1.969-2.359-4.906-3.859-8.219-3.859c-5.891,0-10.656,4.773-10.656,10.664
|
||||||
|
c0,2.586,0.906,4.961,2.438,6.805l0,0c0.031,0.031,2.281,2.938,3.375,6.656c1.266,4.359,0.469,7.578-2.719,10.766
|
||||||
|
c-16.688,16.765-7.781,37.726-0.75,46.468v-0.008c1.969,2.429,4.969,3.976,8.312,3.976c5.891,0,10.655-4.773,10.655-10.664
|
||||||
|
C362.647,120.133,361.773,117.813,360.305,115.978L360.305,115.978z"/>
|
||||||
|
<path style="fill:#E5E8EC;" d="M285.149,30.682c-3.188-11.945-9.312-20.226-9.999-21.132v0.008
|
||||||
|
c-1.969-2.562-5.023-4.218-8.492-4.218c-5.891,0-10.664,4.781-10.664,10.671c0,2.406,0.805,4.617,2.156,6.406h-0.008
|
||||||
|
c0.039,0.062,4.484,6.102,6.539,14.32c2.453,9.836,0.484,18.187-6.008,25.538c-11.398,12.882-15.031,28.694-10.5,45.717
|
||||||
|
c3.18,11.945,9.312,20.234,10,21.141l0.008-0.008c1.945,2.554,5.016,4.21,8.477,4.21c5.898,0,10.68-4.773,10.68-10.664
|
||||||
|
c0-2.43-0.828-4.656-2.188-6.453v-0.008c-0.031-0.055-4.273-5.844-6.359-13.695c-2.68-10.078-0.766-18.616,5.859-26.108
|
||||||
|
C286.056,63.517,289.681,47.706,285.149,30.682z"/>
|
||||||
|
<path style="fill:#E5E8EC;" d="M189.566,51.902c0,0-0.008-0.016-0.016-0.016l-0.008-0.016l0,0
|
||||||
|
c-1.961-2.359-4.914-3.859-8.211-3.859c-5.89,0-10.671,4.773-10.671,10.664c0,2.586,0.922,4.961,2.461,6.805h-0.008
|
||||||
|
c0.023,0.031,2.273,2.938,3.367,6.656c1.273,4.359,0.461,7.578-2.71,10.766c-16.703,16.765-7.789,37.726-0.742,46.468v-0.008
|
||||||
|
c1.953,2.429,4.945,3.976,8.304,3.976c5.891,0,10.664-4.773,10.664-10.664c0-2.539-0.891-4.859-2.367-6.695h0.008
|
||||||
|
c-0.344-0.422-8.281-10.461-0.75-18.023C205.643,81.134,196.675,60.494,189.566,51.902z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
@ -27,11 +27,35 @@ export class SeriesService {
|
|||||||
|
|
||||||
public schlafzimmerHumidityAbsolute: Series | null = null;
|
public schlafzimmerHumidityAbsolute: Series | null = null;
|
||||||
|
|
||||||
public gartenTemperature: Series | null = null;
|
public outdoorTemperature: Series | null = null;
|
||||||
|
|
||||||
public gartenHumidityRelative: Series | null = null;
|
public outdoorHumidityRelative: Series | null = null;
|
||||||
|
|
||||||
public gartenHumidityAbsolute: Series | null = null;
|
public outdoorHumidityAbsolute: Series | null = null;
|
||||||
|
|
||||||
|
public heatingRoomTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingRoomHumidityRelative: Series | null = null;
|
||||||
|
|
||||||
|
public heatingRoomHumidityAbsolute: Series | null = null;
|
||||||
|
|
||||||
|
public heatingExhaustTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingBufferSupplyTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingBufferReturnTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingBufferColdTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingBufferInnerTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingBufferHotTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingBufferCirculationTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingLoopSupplyTemperature: Series | null = null;
|
||||||
|
|
||||||
|
public heatingLoopReturnTemperature: Series | null = null;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly api: ApiService,
|
private readonly api: ApiService,
|
||||||
@ -57,9 +81,23 @@ export class SeriesService {
|
|||||||
this.schlafzimmerHumidityRelative = this.seriesUpdate2(series, this.schlafzimmerHumidityRelative, 'schlafzimmer.humidity_relative');
|
this.schlafzimmerHumidityRelative = this.seriesUpdate2(series, this.schlafzimmerHumidityRelative, 'schlafzimmer.humidity_relative');
|
||||||
this.schlafzimmerHumidityAbsolute = this.seriesUpdate2(series, this.schlafzimmerHumidityAbsolute, 'schlafzimmer.humidity_absolute');
|
this.schlafzimmerHumidityAbsolute = this.seriesUpdate2(series, this.schlafzimmerHumidityAbsolute, 'schlafzimmer.humidity_absolute');
|
||||||
|
|
||||||
this.gartenTemperature = this.seriesUpdate2(series, this.gartenTemperature, 'garten.temperature');
|
this.outdoorTemperature = this.seriesUpdate2(series, this.outdoorTemperature, 'garten.temperature');
|
||||||
this.gartenHumidityRelative = this.seriesUpdate2(series, this.gartenHumidityRelative, 'garten.humidity_relative');
|
this.outdoorHumidityRelative = this.seriesUpdate2(series, this.outdoorHumidityRelative, 'garten.humidity_relative');
|
||||||
this.gartenHumidityAbsolute = this.seriesUpdate2(series, this.gartenHumidityAbsolute, 'garten.humidity_absolute');
|
this.outdoorHumidityAbsolute = this.seriesUpdate2(series, this.outdoorHumidityAbsolute, 'garten.humidity_absolute');
|
||||||
|
|
||||||
|
this.heatingRoomTemperature = this.seriesUpdate2(series, this.heatingRoomTemperature, 'heating.room.temperature');
|
||||||
|
this.heatingRoomHumidityRelative = this.seriesUpdate2(series, this.heatingRoomHumidityRelative, 'heating.room.humidity_relative');
|
||||||
|
this.heatingRoomHumidityAbsolute = this.seriesUpdate2(series, this.heatingRoomHumidityAbsolute, 'heating.room.humidity_absolute');
|
||||||
|
|
||||||
|
this.heatingExhaustTemperature = this.seriesUpdate2(series, this.heatingExhaustTemperature, 'heating.exhaust.temperature');
|
||||||
|
this.heatingBufferSupplyTemperature = this.seriesUpdate2(series, this.heatingBufferSupplyTemperature, 'heating.buffer.supply.temperature');
|
||||||
|
this.heatingBufferReturnTemperature = this.seriesUpdate2(series, this.heatingBufferReturnTemperature, 'heating.buffer.return.temperature');
|
||||||
|
this.heatingBufferColdTemperature = this.seriesUpdate2(series, this.heatingBufferColdTemperature, 'heating.buffer.cold.temperature');
|
||||||
|
this.heatingBufferInnerTemperature = this.seriesUpdate2(series, this.heatingBufferInnerTemperature, 'heating.buffer.inner.temperature');
|
||||||
|
this.heatingBufferHotTemperature = this.seriesUpdate2(series, this.heatingBufferHotTemperature, 'heating.buffer.hot.temperature');
|
||||||
|
this.heatingBufferCirculationTemperature = this.seriesUpdate2(series, this.heatingBufferCirculationTemperature, 'heating.buffer.circulation.temperature');
|
||||||
|
this.heatingLoopSupplyTemperature = this.seriesUpdate2(series, this.heatingLoopSupplyTemperature, 'heating.loop.supply.temperature');
|
||||||
|
this.heatingLoopReturnTemperature = this.seriesUpdate2(series, this.heatingLoopReturnTemperature, 'heating.loop.return.temperature');
|
||||||
}
|
}
|
||||||
|
|
||||||
private seriesUpdate2(fresh: Series, old: Series | null, name: string): Series | null {
|
private seriesUpdate2(fresh: Series, old: Series | null, name: string): Series | null {
|
||||||
|
|||||||
@ -29,9 +29,13 @@ export class DashboardAirTileComponent {
|
|||||||
new Display('Schlaf. Feucht. Relativ', '', this.seriesService.schlafzimmerHumidityRelative),
|
new Display('Schlaf. Feucht. Relativ', '', this.seriesService.schlafzimmerHumidityRelative),
|
||||||
new Display('Schlaf. Feucht. Absolut', '', this.seriesService.schlafzimmerHumidityAbsolute),
|
new Display('Schlaf. Feucht. Absolut', '', this.seriesService.schlafzimmerHumidityAbsolute),
|
||||||
null,
|
null,
|
||||||
new Display('Garten Temperatur', '', this.seriesService.gartenTemperature),
|
new Display('Garten Temperatur', '', this.seriesService.outdoorTemperature),
|
||||||
new Display('Garten Feucht. Relativ', '', this.seriesService.gartenHumidityRelative),
|
new Display('Garten Feucht. Relativ', '', this.seriesService.outdoorHumidityRelative),
|
||||||
new Display('Garten Feucht. Absolut', '', this.seriesService.gartenHumidityAbsolute),
|
new Display('Garten Feucht. Absolut', '', this.seriesService.outdoorHumidityAbsolute),
|
||||||
|
null,
|
||||||
|
new Display('Heiz. Temperatur', '', this.seriesService.heatingRoomTemperature),
|
||||||
|
new Display('Heiz. Feucht. Relativ', '', this.seriesService.heatingRoomHumidityRelative),
|
||||||
|
new Display('Heiz. Feucht. Absolut', '', this.seriesService.heatingRoomHumidityAbsolute),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,3 +5,7 @@
|
|||||||
<div class="width100">
|
<div class="width100">
|
||||||
<app-dashboard-air-tile [now]="now"></app-dashboard-air-tile>
|
<app-dashboard-air-tile [now]="now"></app-dashboard-air-tile>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="width100">
|
||||||
|
<app-dashboard-heating-tile [now]="now"></app-dashboard-heating-tile>
|
||||||
|
</div>
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import {ValuesTileComponent} from "../../shared/values-tile/values-tile.componen
|
|||||||
import {DashboardElectricityTileComponent} from "./electricity/dashboard-electricity-tile.component";
|
import {DashboardElectricityTileComponent} from "./electricity/dashboard-electricity-tile.component";
|
||||||
import {DashboardAirTileComponent} from "./air/dashboard-air-tile.component";
|
import {DashboardAirTileComponent} from "./air/dashboard-air-tile.component";
|
||||||
import {Subscription, timer} from "rxjs";
|
import {Subscription, timer} from "rxjs";
|
||||||
|
import {DashboardHeatingTileComponent} from "./heating/dashboard-heating-tile.component";
|
||||||
|
|
||||||
const UPDATE_INTERVAL_MILLIS = 1000;
|
const UPDATE_INTERVAL_MILLIS = 1000;
|
||||||
|
|
||||||
@ -16,6 +17,7 @@ const UPDATE_INTERVAL_MILLIS = 1000;
|
|||||||
JsonPipe,
|
JsonPipe,
|
||||||
DashboardElectricityTileComponent,
|
DashboardElectricityTileComponent,
|
||||||
DashboardAirTileComponent,
|
DashboardAirTileComponent,
|
||||||
|
DashboardHeatingTileComponent,
|
||||||
],
|
],
|
||||||
templateUrl: './dashboard.component.html',
|
templateUrl: './dashboard.component.html',
|
||||||
styleUrl: './dashboard.component.less'
|
styleUrl: './dashboard.component.less'
|
||||||
|
|||||||
@ -44,11 +44,10 @@ export class DashboardElectricityTileComponent {
|
|||||||
const gridColor = this.getGridPowerColor();
|
const gridColor = this.getGridPowerColor();
|
||||||
const productionColor = this.getProductionPowerColor();
|
const productionColor = this.getProductionPowerColor();
|
||||||
return [
|
return [
|
||||||
new Display('Bezug', '', this.seriesService.gridPurchased),
|
new Display('Bezogen', '', this.seriesService.gridPurchased),
|
||||||
new Display('Einspeisung', '', this.seriesService.gridDelivered),
|
new Display('Eingespeist', '', this.seriesService.gridDelivered),
|
||||||
null,
|
new Display('Produziert', '', this.seriesService.photovoltaicProduced),
|
||||||
new Display('Produktion', '#006600', this.seriesService.photovoltaicProduced),
|
new Display('Selbst verbraucht', '', selfConsumed),
|
||||||
new Display('Eigenverbrauch', '#006600', selfConsumed),
|
|
||||||
null,
|
null,
|
||||||
new Display('Produktion', productionColor, this.seriesService.photovoltaicPower),
|
new Display('Produktion', productionColor, this.seriesService.photovoltaicPower),
|
||||||
new Display('Netz', gridColor, this.seriesService.gridPower),
|
new Display('Netz', gridColor, this.seriesService.gridPower),
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
<app-values-tile title="Heizung" icon="fire.svg" [maxAgeSeconds]="125" [displayList]="getDisplayList()" [now]="now"></app-values-tile>
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {ValuesTileComponent} from "../../../shared/values-tile/values-tile.component";
|
||||||
|
import {Display, DisplayOrSeparator} from "../../../api/series/IValue";
|
||||||
|
import {SeriesService} from "../../../api/series/series.service";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-dashboard-heating-tile',
|
||||||
|
standalone: true,
|
||||||
|
imports: [
|
||||||
|
ValuesTileComponent
|
||||||
|
],
|
||||||
|
templateUrl: './dashboard-heating-tile.component.html',
|
||||||
|
styleUrl: './dashboard-heating-tile.component.less'
|
||||||
|
})
|
||||||
|
export class DashboardHeatingTileComponent {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
now!: Date;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
protected readonly seriesService: SeriesService,
|
||||||
|
) {
|
||||||
|
// -
|
||||||
|
}
|
||||||
|
|
||||||
|
getDisplayList(): DisplayOrSeparator[] {
|
||||||
|
return [
|
||||||
|
new Display('Abgas', '', this.seriesService.heatingExhaustTemperature),
|
||||||
|
new Display('Puffer Vorlauf', '', this.seriesService.heatingBufferSupplyTemperature),
|
||||||
|
new Display('Puffer Rücklauf', '', this.seriesService.heatingBufferReturnTemperature),
|
||||||
|
new Display('Puffer Kalt', '', this.seriesService.heatingBufferColdTemperature),
|
||||||
|
new Display('Puffer Speicher', '', this.seriesService.heatingBufferInnerTemperature),
|
||||||
|
new Display('Puffer Warm', '', this.seriesService.heatingBufferHotTemperature),
|
||||||
|
new Display('Puffer Zirkulation', '', this.seriesService.heatingBufferCirculationTemperature),
|
||||||
|
new Display('Heizkreis Vorlauf', '', this.seriesService.heatingLoopSupplyTemperature),
|
||||||
|
new Display('Heizkreis Rücklauf', '', this.seriesService.heatingLoopReturnTemperature),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -3,7 +3,6 @@
|
|||||||
<img [src]="icon" alt="" *ngIf="icon">
|
<img [src]="icon" alt="" *ngIf="icon">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</div>
|
</div>
|
||||||
<div class="number">{{ number() }}</div>
|
|
||||||
<table class="values">
|
<table class="values">
|
||||||
<ng-container *ngFor="let display of displayList">
|
<ng-container *ngFor="let display of displayList">
|
||||||
<tr class="rate" *ngIf="display" [style.color]="display.color">
|
<tr class="rate" *ngIf="display" [style.color]="display.color">
|
||||||
|
|||||||
@ -1,10 +1,7 @@
|
|||||||
import {Component, Input} from '@angular/core';
|
import {Component, Input} from '@angular/core';
|
||||||
import {Series} from "../../api/series/Series";
|
|
||||||
import {DecimalPipe, NgForOf, NgIf} from "@angular/common";
|
import {DecimalPipe, NgForOf, NgIf} from "@angular/common";
|
||||||
import {DisplayOrSeparator} from "../../api/series/IValue";
|
import {DisplayOrSeparator} from "../../api/series/IValue";
|
||||||
|
|
||||||
const TOO_OLD_MILLIS = 10000;
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-values-tile',
|
selector: 'app-values-tile',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
@ -51,54 +48,10 @@ export class ValuesTileComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
set purchase(purchase: Series | null) {
|
maxAgeSeconds: number = 10;
|
||||||
this.purchase_ = purchase;
|
|
||||||
this.displayUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
get purchase(): Series | null {
|
|
||||||
return this.purchase_;
|
|
||||||
}
|
|
||||||
|
|
||||||
private purchase_: Series | null = null;
|
|
||||||
|
|
||||||
@Input()
|
|
||||||
set delivery(delivery: Series | null) {
|
|
||||||
this.delivery_ = delivery;
|
|
||||||
this.displayUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
get delivery(): Series | null {
|
|
||||||
return this.delivery_;
|
|
||||||
}
|
|
||||||
|
|
||||||
private delivery_: Series | null = null;
|
|
||||||
|
|
||||||
@Input()
|
|
||||||
set rate(rate: Series | null) {
|
|
||||||
this.rate_ = rate;
|
|
||||||
this.displayUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
get rate(): Series | null {
|
|
||||||
return this.rate_;
|
|
||||||
}
|
|
||||||
|
|
||||||
private rate_: Series | null = null;
|
|
||||||
|
|
||||||
number(): string {
|
|
||||||
if (this.purchase?.period) {
|
|
||||||
return this.purchase?.period.name;
|
|
||||||
} else if (this.delivery?.period) {
|
|
||||||
return this.delivery?.period.name;
|
|
||||||
} else if (this.rate?.period) {
|
|
||||||
return this.rate?.period.name;
|
|
||||||
}
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
private displayUpdate() {
|
private displayUpdate() {
|
||||||
this.valid = this.displayList.some(d => !!d && !!d.iValue && !!d.iValue.date && (this.now.getTime() - d.iValue.date.getTime()) <= TOO_OLD_MILLIS)
|
this.valid = this.displayList.some(d => !!d && !!d.iValue && !!d.iValue.date && (this.now.getTime() - d.iValue.date.getTime()) <= this.maxAgeSeconds * 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user