mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-25 17:43:35 +05:00
Compare commits
19 Commits
7e31de6c71
...
1.5.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1982843624 | ||
|
|
bf161c1200 | ||
|
|
57f1129cee | ||
|
|
0425cdc499 | ||
|
|
53ff69f03a | ||
|
|
e7cae4b950 | ||
|
|
3ff8f40654 | ||
|
|
d2499a2727 | ||
|
|
5b7da4ed2a | ||
|
|
8d516c7f95 | ||
|
|
d756716497 | ||
|
|
9a2f9d64ec | ||
|
|
0d0926cdac | ||
|
|
3ce3ce5016 | ||
|
|
6ca6d3cab7 | ||
|
|
e7f3c66e05 | ||
|
|
17bd31b2a2 | ||
|
|
8662b9dc8f | ||
|
|
6efa3a52fe |
@@ -45,9 +45,11 @@ All available information and instructions can be found in the wiki:
|
||||
* [Home](https://github.com/Laxilef/OTGateway/wiki)
|
||||
* [Quick Start](https://github.com/Laxilef/OTGateway/wiki#quick-start)
|
||||
* [Build firmware](https://github.com/Laxilef/OTGateway/wiki#build-firmware)
|
||||
* [Flash firmware via ESP Flash Download Tool](https://github.com/Laxilef/OTGateway/wiki#flash-firmware-via-esp-flash-download-tool)
|
||||
* [Flashing via Web Flasher](https://github.com/Laxilef/OTGateway/wiki#flashing-via-web-flasher)
|
||||
* [Flashing via ESP Flash Download Tool](https://github.com/Laxilef/OTGateway/wiki#flashing-via-esp-flash-download-tool)
|
||||
* [Settings](https://github.com/Laxilef/OTGateway/wiki#settings)
|
||||
* [External temperature sensors](https://github.com/Laxilef/OTGateway/wiki#external-temperature-sensors)
|
||||
* [Other external sensors](https://github.com/Laxilef/OTGateway/wiki#other-external-sensors)
|
||||
* [Reporting indoor/outdoor temperature from any Home Assistant sensor](https://github.com/Laxilef/OTGateway/wiki#reporting-indooroutdoor-temperature-from-any-home-assistant-sensor)
|
||||
* [Reporting outdoor temperature from Home Assistant weather integration](https://github.com/Laxilef/OTGateway/wiki#reporting-outdoor-temperature-from-home-assistant-weather-integration)
|
||||
* [DHW meter](https://github.com/Laxilef/OTGateway/wiki#dhw-meter)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 283 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 380 KiB After Width: | Height: | Size: 386 KiB |
BIN
assets/BOM.xlsx
BIN
assets/BOM.xlsx
Binary file not shown.
BIN
assets/CPL.csv
BIN
assets/CPL.csv
Binary file not shown.
@@ -1568,6 +1568,90 @@ BT
|
||||
714.36 413.76 Td
|
||||
(3.3V) Tj
|
||||
ET
|
||||
0.80 0.00 0.00 rg
|
||||
119.88 517.68 m 119.88 518.67 119.07 519.48 118.08 519.48 c
|
||||
117.09 519.48 116.28 518.67 116.28 517.68 c
|
||||
116.28 516.69 117.09 515.88 118.08 515.88 c
|
||||
119.07 515.88 119.88 516.69 119.88 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
119.88 481.68 m 119.88 482.67 119.07 483.48 118.08 483.48 c
|
||||
117.09 483.48 116.28 482.67 116.28 481.68 c
|
||||
116.28 480.69 117.09 479.88 118.08 479.88 c
|
||||
119.07 479.88 119.88 480.69 119.88 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
307.08 481.68 m 307.08 482.67 306.27 483.48 305.28 483.48 c
|
||||
304.29 483.48 303.48 482.67 303.48 481.68 c
|
||||
303.48 480.69 304.29 479.88 305.28 479.88 c
|
||||
306.27 479.88 307.08 480.69 307.08 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
253.08 481.68 m 253.08 482.67 252.27 483.48 251.28 483.48 c
|
||||
250.29 483.48 249.48 482.67 249.48 481.68 c
|
||||
249.48 480.69 250.29 479.88 251.28 479.88 c
|
||||
252.27 479.88 253.08 480.69 253.08 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
220.68 481.68 m 220.68 482.67 219.87 483.48 218.88 483.48 c
|
||||
217.89 483.48 217.08 482.67 217.08 481.68 c
|
||||
217.08 480.69 217.89 479.88 218.88 479.88 c
|
||||
219.87 479.88 220.68 480.69 220.68 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
220.68 517.68 m 220.68 518.67 219.87 519.48 218.88 519.48 c
|
||||
217.89 519.48 217.08 518.67 217.08 517.68 c
|
||||
217.08 516.69 217.89 515.88 218.88 515.88 c
|
||||
219.87 515.88 220.68 516.69 220.68 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
253.08 517.68 m 253.08 518.67 252.27 519.48 251.28 519.48 c
|
||||
250.29 519.48 249.48 518.67 249.48 517.68 c
|
||||
249.48 516.69 250.29 515.88 251.28 515.88 c
|
||||
252.27 515.88 253.08 516.69 253.08 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
263.88 517.68 m 263.88 518.67 263.07 519.48 262.08 519.48 c
|
||||
261.09 519.48 260.28 518.67 260.28 517.68 c
|
||||
260.28 516.69 261.09 515.88 262.08 515.88 c
|
||||
263.07 515.88 263.88 516.69 263.88 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
343.08 510.48 m 343.08 511.47 342.27 512.28 341.28 512.28 c
|
||||
340.29 512.28 339.48 511.47 339.48 510.48 c
|
||||
339.48 509.49 340.29 508.68 341.28 508.68 c
|
||||
342.27 508.68 343.08 509.49 343.08 510.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
357.48 510.48 m 357.48 511.47 356.67 512.28 355.68 512.28 c
|
||||
354.69 512.28 353.88 511.47 353.88 510.48 c
|
||||
353.88 509.49 354.69 508.68 355.68 508.68 c
|
||||
356.67 508.68 357.48 509.49 357.48 510.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
573.48 478.08 m 573.48 479.07 572.67 479.88 571.68 479.88 c
|
||||
570.69 479.88 569.88 479.07 569.88 478.08 c
|
||||
569.88 477.09 570.69 476.28 571.68 476.28 c
|
||||
572.67 476.28 573.48 477.09 573.48 478.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
703.08 416.88 m 703.08 417.87 702.27 418.68 701.28 418.68 c
|
||||
700.29 418.68 699.48 417.87 699.48 416.88 c
|
||||
699.48 415.89 700.29 415.08 701.28 415.08 c
|
||||
702.27 415.08 703.08 415.89 703.08 416.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
703.08 488.88 m 703.08 489.87 702.27 490.68 701.28 490.68 c
|
||||
700.29 490.68 699.48 489.87 699.48 488.88 c
|
||||
699.48 487.89 700.29 487.08 701.28 487.08 c
|
||||
702.27 487.08 703.08 487.89 703.08 488.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
659.88 208.08 m 659.88 209.07 659.07 209.88 658.08 209.88 c
|
||||
657.09 209.88 656.28 209.07 656.28 208.08 c
|
||||
656.28 207.09 657.09 206.28 658.08 206.28 c
|
||||
659.07 206.28 659.88 207.09 659.88 208.08 c
|
||||
f
|
||||
1 J
|
||||
1 j
|
||||
0.72 w
|
||||
@@ -5108,90 +5192,6 @@ BT
|
||||
113.63 364.42 Td
|
||||
(N) Tj
|
||||
ET
|
||||
0.80 0.00 0.00 rg
|
||||
119.88 517.68 m 119.88 518.67 119.07 519.48 118.08 519.48 c
|
||||
117.09 519.48 116.28 518.67 116.28 517.68 c
|
||||
116.28 516.69 117.09 515.88 118.08 515.88 c
|
||||
119.07 515.88 119.88 516.69 119.88 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
119.88 481.68 m 119.88 482.67 119.07 483.48 118.08 483.48 c
|
||||
117.09 483.48 116.28 482.67 116.28 481.68 c
|
||||
116.28 480.69 117.09 479.88 118.08 479.88 c
|
||||
119.07 479.88 119.88 480.69 119.88 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
307.08 481.68 m 307.08 482.67 306.27 483.48 305.28 483.48 c
|
||||
304.29 483.48 303.48 482.67 303.48 481.68 c
|
||||
303.48 480.69 304.29 479.88 305.28 479.88 c
|
||||
306.27 479.88 307.08 480.69 307.08 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
253.08 481.68 m 253.08 482.67 252.27 483.48 251.28 483.48 c
|
||||
250.29 483.48 249.48 482.67 249.48 481.68 c
|
||||
249.48 480.69 250.29 479.88 251.28 479.88 c
|
||||
252.27 479.88 253.08 480.69 253.08 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
220.68 481.68 m 220.68 482.67 219.87 483.48 218.88 483.48 c
|
||||
217.89 483.48 217.08 482.67 217.08 481.68 c
|
||||
217.08 480.69 217.89 479.88 218.88 479.88 c
|
||||
219.87 479.88 220.68 480.69 220.68 481.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
220.68 517.68 m 220.68 518.67 219.87 519.48 218.88 519.48 c
|
||||
217.89 519.48 217.08 518.67 217.08 517.68 c
|
||||
217.08 516.69 217.89 515.88 218.88 515.88 c
|
||||
219.87 515.88 220.68 516.69 220.68 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
253.08 517.68 m 253.08 518.67 252.27 519.48 251.28 519.48 c
|
||||
250.29 519.48 249.48 518.67 249.48 517.68 c
|
||||
249.48 516.69 250.29 515.88 251.28 515.88 c
|
||||
252.27 515.88 253.08 516.69 253.08 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
263.88 517.68 m 263.88 518.67 263.07 519.48 262.08 519.48 c
|
||||
261.09 519.48 260.28 518.67 260.28 517.68 c
|
||||
260.28 516.69 261.09 515.88 262.08 515.88 c
|
||||
263.07 515.88 263.88 516.69 263.88 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
343.08 510.48 m 343.08 511.47 342.27 512.28 341.28 512.28 c
|
||||
340.29 512.28 339.48 511.47 339.48 510.48 c
|
||||
339.48 509.49 340.29 508.68 341.28 508.68 c
|
||||
342.27 508.68 343.08 509.49 343.08 510.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
357.48 510.48 m 357.48 511.47 356.67 512.28 355.68 512.28 c
|
||||
354.69 512.28 353.88 511.47 353.88 510.48 c
|
||||
353.88 509.49 354.69 508.68 355.68 508.68 c
|
||||
356.67 508.68 357.48 509.49 357.48 510.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
573.48 478.08 m 573.48 479.07 572.67 479.88 571.68 479.88 c
|
||||
570.69 479.88 569.88 479.07 569.88 478.08 c
|
||||
569.88 477.09 570.69 476.28 571.68 476.28 c
|
||||
572.67 476.28 573.48 477.09 573.48 478.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
703.08 416.88 m 703.08 417.87 702.27 418.68 701.28 418.68 c
|
||||
700.29 418.68 699.48 417.87 699.48 416.88 c
|
||||
699.48 415.89 700.29 415.08 701.28 415.08 c
|
||||
702.27 415.08 703.08 415.89 703.08 416.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
703.08 488.88 m 703.08 489.87 702.27 490.68 701.28 490.68 c
|
||||
700.29 490.68 699.48 489.87 699.48 488.88 c
|
||||
699.48 487.89 700.29 487.08 701.28 487.08 c
|
||||
702.27 487.08 703.08 487.89 703.08 488.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
659.88 208.08 m 659.88 209.07 659.07 209.88 658.08 209.88 c
|
||||
657.09 209.88 656.28 209.07 656.28 208.08 c
|
||||
656.28 207.09 657.09 206.28 658.08 206.28 c
|
||||
659.07 206.28 659.88 207.09 659.88 208.08 c
|
||||
f
|
||||
Q
|
||||
endstream
|
||||
endobj
|
||||
@@ -5578,7 +5578,7 @@ BT
|
||||
10.80 TL
|
||||
0.000 0.000 0.502 rg
|
||||
730.08 114.99 Td
|
||||
(2024-09-17) Tj
|
||||
(2024-09-16) Tj
|
||||
ET
|
||||
7.20 w
|
||||
BT
|
||||
@@ -8176,6 +8176,126 @@ BT
|
||||
796.27 436.17 Td
|
||||
(3.3V_B) Tj
|
||||
ET
|
||||
0.80 0.00 0.00 rg
|
||||
397.08 431.28 m 397.08 432.27 396.27 433.08 395.28 433.08 c
|
||||
394.29 433.08 393.48 432.27 393.48 431.28 c
|
||||
393.48 430.29 394.29 429.48 395.28 429.48 c
|
||||
396.27 429.48 397.08 430.29 397.08 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 463.68 m 224.28 464.67 223.47 465.48 222.48 465.48 c
|
||||
221.49 465.48 220.68 464.67 220.68 463.68 c
|
||||
220.68 462.69 221.49 461.88 222.48 461.88 c
|
||||
223.47 461.88 224.28 462.69 224.28 463.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
263.88 535.68 m 263.88 536.67 263.07 537.48 262.08 537.48 c
|
||||
261.09 537.48 260.28 536.67 260.28 535.68 c
|
||||
260.28 534.69 261.09 533.88 262.08 533.88 c
|
||||
263.07 533.88 263.88 534.69 263.88 535.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
249.48 517.68 m 249.48 518.67 248.67 519.48 247.68 519.48 c
|
||||
246.69 519.48 245.88 518.67 245.88 517.68 c
|
||||
245.88 516.69 246.69 515.88 247.68 515.88 c
|
||||
248.67 515.88 249.48 516.69 249.48 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 499.68 m 224.28 500.67 223.47 501.48 222.48 501.48 c
|
||||
221.49 501.48 220.68 500.67 220.68 499.68 c
|
||||
220.68 498.69 221.49 497.88 222.48 497.88 c
|
||||
223.47 497.88 224.28 498.69 224.28 499.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
584.28 478.08 m 584.28 479.07 583.47 479.88 582.48 479.88 c
|
||||
581.49 479.88 580.68 479.07 580.68 478.08 c
|
||||
580.68 477.09 581.49 476.28 582.48 476.28 c
|
||||
583.47 476.28 584.28 477.09 584.28 478.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
785.88 438.48 m 785.88 439.47 785.07 440.28 784.08 440.28 c
|
||||
783.09 440.28 782.28 439.47 782.28 438.48 c
|
||||
782.28 437.49 783.09 436.68 784.08 436.68 c
|
||||
785.07 436.68 785.88 437.49 785.88 438.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
688.68 514.08 m 688.68 515.07 687.87 515.88 686.88 515.88 c
|
||||
685.89 515.88 685.08 515.07 685.08 514.08 c
|
||||
685.08 513.09 685.89 512.28 686.88 512.28 c
|
||||
687.87 512.28 688.68 513.09 688.68 514.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
325.08 280.08 m 325.08 281.07 324.27 281.88 323.28 281.88 c
|
||||
322.29 281.88 321.48 281.07 321.48 280.08 c
|
||||
321.48 279.09 322.29 278.28 323.28 278.28 c
|
||||
324.27 278.28 325.08 279.09 325.08 280.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
789.48 524.88 m 789.48 525.87 788.67 526.68 787.68 526.68 c
|
||||
786.69 526.68 785.88 525.87 785.88 524.88 c
|
||||
785.88 523.89 786.69 523.08 787.68 523.08 c
|
||||
788.67 523.08 789.48 523.89 789.48 524.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
541.08 200.88 m 541.08 201.87 540.27 202.68 539.28 202.68 c
|
||||
538.29 202.68 537.48 201.87 537.48 200.88 c
|
||||
537.48 199.89 538.29 199.08 539.28 199.08 c
|
||||
540.27 199.08 541.08 199.89 541.08 200.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
112.68 67.68 m 112.68 68.67 111.87 69.48 110.88 69.48 c
|
||||
109.89 69.48 109.08 68.67 109.08 67.68 c
|
||||
109.08 66.69 109.89 65.88 110.88 65.88 c
|
||||
111.87 65.88 112.68 66.69 112.68 67.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
148.68 67.68 m 148.68 68.67 147.87 69.48 146.88 69.48 c
|
||||
145.89 69.48 145.08 68.67 145.08 67.68 c
|
||||
145.08 66.69 145.89 65.88 146.88 65.88 c
|
||||
147.87 65.88 148.68 66.69 148.68 67.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
137.88 319.68 m 137.88 320.67 137.07 321.48 136.08 321.48 c
|
||||
135.09 321.48 134.28 320.67 134.28 319.68 c
|
||||
134.28 318.69 135.09 317.88 136.08 317.88 c
|
||||
137.07 317.88 137.88 318.69 137.88 319.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
544.68 312.48 m 544.68 313.47 543.87 314.28 542.88 314.28 c
|
||||
541.89 314.28 541.08 313.47 541.08 312.48 c
|
||||
541.08 311.49 541.89 310.68 542.88 310.68 c
|
||||
543.87 310.68 544.68 311.49 544.68 312.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
278.28 431.28 m 278.28 432.27 277.47 433.08 276.48 433.08 c
|
||||
275.49 433.08 274.68 432.27 274.68 431.28 c
|
||||
274.68 430.29 275.49 429.48 276.48 429.48 c
|
||||
277.47 429.48 278.28 430.29 278.28 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
249.48 431.28 m 249.48 432.27 248.67 433.08 247.68 433.08 c
|
||||
246.69 433.08 245.88 432.27 245.88 431.28 c
|
||||
245.88 430.29 246.69 429.48 247.68 429.48 c
|
||||
248.67 429.48 249.48 430.29 249.48 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 431.28 m 224.28 432.27 223.47 433.08 222.48 433.08 c
|
||||
221.49 433.08 220.68 432.27 220.68 431.28 c
|
||||
220.68 430.29 221.49 429.48 222.48 429.48 c
|
||||
223.47 429.48 224.28 430.29 224.28 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
195.48 431.28 m 195.48 432.27 194.67 433.08 193.68 433.08 c
|
||||
192.69 433.08 191.88 432.27 191.88 431.28 c
|
||||
191.88 430.29 192.69 429.48 193.68 429.48 c
|
||||
194.67 429.48 195.48 430.29 195.48 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 535.68 m 224.28 536.67 223.47 537.48 222.48 537.48 c
|
||||
221.49 537.48 220.68 536.67 220.68 535.68 c
|
||||
220.68 534.69 221.49 533.88 222.48 533.88 c
|
||||
223.47 533.88 224.28 534.69 224.28 535.68 c
|
||||
f
|
||||
1 J
|
||||
1 j
|
||||
0.72 w
|
||||
@@ -16078,126 +16198,6 @@ S
|
||||
359.280 175.680 m
|
||||
352.080 175.680 l
|
||||
S
|
||||
0.80 0.00 0.00 rg
|
||||
397.08 431.28 m 397.08 432.27 396.27 433.08 395.28 433.08 c
|
||||
394.29 433.08 393.48 432.27 393.48 431.28 c
|
||||
393.48 430.29 394.29 429.48 395.28 429.48 c
|
||||
396.27 429.48 397.08 430.29 397.08 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 463.68 m 224.28 464.67 223.47 465.48 222.48 465.48 c
|
||||
221.49 465.48 220.68 464.67 220.68 463.68 c
|
||||
220.68 462.69 221.49 461.88 222.48 461.88 c
|
||||
223.47 461.88 224.28 462.69 224.28 463.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
263.88 535.68 m 263.88 536.67 263.07 537.48 262.08 537.48 c
|
||||
261.09 537.48 260.28 536.67 260.28 535.68 c
|
||||
260.28 534.69 261.09 533.88 262.08 533.88 c
|
||||
263.07 533.88 263.88 534.69 263.88 535.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
249.48 517.68 m 249.48 518.67 248.67 519.48 247.68 519.48 c
|
||||
246.69 519.48 245.88 518.67 245.88 517.68 c
|
||||
245.88 516.69 246.69 515.88 247.68 515.88 c
|
||||
248.67 515.88 249.48 516.69 249.48 517.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 499.68 m 224.28 500.67 223.47 501.48 222.48 501.48 c
|
||||
221.49 501.48 220.68 500.67 220.68 499.68 c
|
||||
220.68 498.69 221.49 497.88 222.48 497.88 c
|
||||
223.47 497.88 224.28 498.69 224.28 499.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
584.28 478.08 m 584.28 479.07 583.47 479.88 582.48 479.88 c
|
||||
581.49 479.88 580.68 479.07 580.68 478.08 c
|
||||
580.68 477.09 581.49 476.28 582.48 476.28 c
|
||||
583.47 476.28 584.28 477.09 584.28 478.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
785.88 438.48 m 785.88 439.47 785.07 440.28 784.08 440.28 c
|
||||
783.09 440.28 782.28 439.47 782.28 438.48 c
|
||||
782.28 437.49 783.09 436.68 784.08 436.68 c
|
||||
785.07 436.68 785.88 437.49 785.88 438.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
688.68 514.08 m 688.68 515.07 687.87 515.88 686.88 515.88 c
|
||||
685.89 515.88 685.08 515.07 685.08 514.08 c
|
||||
685.08 513.09 685.89 512.28 686.88 512.28 c
|
||||
687.87 512.28 688.68 513.09 688.68 514.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
325.08 280.08 m 325.08 281.07 324.27 281.88 323.28 281.88 c
|
||||
322.29 281.88 321.48 281.07 321.48 280.08 c
|
||||
321.48 279.09 322.29 278.28 323.28 278.28 c
|
||||
324.27 278.28 325.08 279.09 325.08 280.08 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
789.48 524.88 m 789.48 525.87 788.67 526.68 787.68 526.68 c
|
||||
786.69 526.68 785.88 525.87 785.88 524.88 c
|
||||
785.88 523.89 786.69 523.08 787.68 523.08 c
|
||||
788.67 523.08 789.48 523.89 789.48 524.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
541.08 200.88 m 541.08 201.87 540.27 202.68 539.28 202.68 c
|
||||
538.29 202.68 537.48 201.87 537.48 200.88 c
|
||||
537.48 199.89 538.29 199.08 539.28 199.08 c
|
||||
540.27 199.08 541.08 199.89 541.08 200.88 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
112.68 67.68 m 112.68 68.67 111.87 69.48 110.88 69.48 c
|
||||
109.89 69.48 109.08 68.67 109.08 67.68 c
|
||||
109.08 66.69 109.89 65.88 110.88 65.88 c
|
||||
111.87 65.88 112.68 66.69 112.68 67.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
148.68 67.68 m 148.68 68.67 147.87 69.48 146.88 69.48 c
|
||||
145.89 69.48 145.08 68.67 145.08 67.68 c
|
||||
145.08 66.69 145.89 65.88 146.88 65.88 c
|
||||
147.87 65.88 148.68 66.69 148.68 67.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
137.88 319.68 m 137.88 320.67 137.07 321.48 136.08 321.48 c
|
||||
135.09 321.48 134.28 320.67 134.28 319.68 c
|
||||
134.28 318.69 135.09 317.88 136.08 317.88 c
|
||||
137.07 317.88 137.88 318.69 137.88 319.68 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
544.68 312.48 m 544.68 313.47 543.87 314.28 542.88 314.28 c
|
||||
541.89 314.28 541.08 313.47 541.08 312.48 c
|
||||
541.08 311.49 541.89 310.68 542.88 310.68 c
|
||||
543.87 310.68 544.68 311.49 544.68 312.48 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
278.28 431.28 m 278.28 432.27 277.47 433.08 276.48 433.08 c
|
||||
275.49 433.08 274.68 432.27 274.68 431.28 c
|
||||
274.68 430.29 275.49 429.48 276.48 429.48 c
|
||||
277.47 429.48 278.28 430.29 278.28 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
249.48 431.28 m 249.48 432.27 248.67 433.08 247.68 433.08 c
|
||||
246.69 433.08 245.88 432.27 245.88 431.28 c
|
||||
245.88 430.29 246.69 429.48 247.68 429.48 c
|
||||
248.67 429.48 249.48 430.29 249.48 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 431.28 m 224.28 432.27 223.47 433.08 222.48 433.08 c
|
||||
221.49 433.08 220.68 432.27 220.68 431.28 c
|
||||
220.68 430.29 221.49 429.48 222.48 429.48 c
|
||||
223.47 429.48 224.28 430.29 224.28 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
195.48 431.28 m 195.48 432.27 194.67 433.08 193.68 433.08 c
|
||||
192.69 433.08 191.88 432.27 191.88 431.28 c
|
||||
191.88 430.29 192.69 429.48 193.68 429.48 c
|
||||
194.67 429.48 195.48 430.29 195.48 431.28 c
|
||||
f
|
||||
0.80 0.00 0.00 rg
|
||||
224.28 535.68 m 224.28 536.67 223.47 537.48 222.48 537.48 c
|
||||
221.49 537.48 220.68 536.67 220.68 535.68 c
|
||||
220.68 534.69 221.49 533.88 222.48 533.88 c
|
||||
223.47 533.88 224.28 534.69 224.28 535.68 c
|
||||
f
|
||||
Q
|
||||
endstream
|
||||
endobj
|
||||
@@ -18501,7 +18501,7 @@ endobj
|
||||
428 0 obj
|
||||
<<
|
||||
/Producer (jsPDF 0.0.0)
|
||||
/CreationDate (D:20241217035901+03'00')
|
||||
/CreationDate (D:20250105015408+03'00')
|
||||
>>
|
||||
endobj
|
||||
429 0 obj
|
||||
@@ -18950,7 +18950,7 @@ trailer
|
||||
/Size 430
|
||||
/Root 429 0 R
|
||||
/Info 428 0 R
|
||||
/ID [ <A3E4774EF492C13E9BEE4782370DB042> <A3E4774EF492C13E9BEE4782370DB042> ]
|
||||
/ID [ <0FF718394C008026CB860ADB87CB39D7> <0FF718394C008026CB860ADB87CB39D7> ]
|
||||
>>
|
||||
startxref
|
||||
266667
|
||||
|
||||
Binary file not shown.
@@ -3,15 +3,15 @@
|
||||
|
||||
class CustomOpenTherm : public OpenTherm {
|
||||
public:
|
||||
typedef std::function<void()> YieldCallback;
|
||||
typedef std::function<void(unsigned int)> DelayCallback;
|
||||
typedef std::function<void(unsigned long, byte)> BeforeSendRequestCallback;
|
||||
typedef std::function<void(unsigned long, unsigned long, OpenThermResponseStatus, byte)> AfterSendRequestCallback;
|
||||
|
||||
CustomOpenTherm(int inPin = 4, int outPin = 5, bool isSlave = false) : OpenTherm(inPin, outPin, isSlave) {}
|
||||
~CustomOpenTherm() {}
|
||||
|
||||
CustomOpenTherm* setYieldCallback(YieldCallback callback = nullptr) {
|
||||
this->yieldCallback = callback;
|
||||
CustomOpenTherm* setDelayCallback(DelayCallback callback = nullptr) {
|
||||
this->delayCallback = callback;
|
||||
|
||||
return this;
|
||||
}
|
||||
@@ -32,10 +32,8 @@ public:
|
||||
_attempt++;
|
||||
|
||||
while (!this->isReady()) {
|
||||
if (this->yieldCallback) {
|
||||
this->yieldCallback();
|
||||
} else {
|
||||
::yield();
|
||||
if (this->delayCallback) {
|
||||
this->delayCallback(150);
|
||||
}
|
||||
|
||||
this->process();
|
||||
@@ -51,17 +49,13 @@ public:
|
||||
_response = 0;
|
||||
|
||||
} else {
|
||||
while (true) {
|
||||
this->process();
|
||||
|
||||
if (this->status == OpenThermStatus::READY || this->status == OpenThermStatus::DELAY) {
|
||||
break;
|
||||
} else if (this->yieldCallback) {
|
||||
this->yieldCallback();
|
||||
} else {
|
||||
::yield();
|
||||
do {
|
||||
if (this->delayCallback) {
|
||||
this->delayCallback(150);
|
||||
}
|
||||
}
|
||||
|
||||
this->process();
|
||||
} while (this->status != OpenThermStatus::READY && this->status != OpenThermStatus::DELAY);
|
||||
|
||||
_response = this->getLastResponse();
|
||||
_responseStatus = this->getLastResponseStatus();
|
||||
@@ -151,7 +145,7 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
YieldCallback yieldCallback;
|
||||
DelayCallback delayCallback;
|
||||
BeforeSendRequestCallback beforeSendRequestCallback;
|
||||
AfterSendRequestCallback afterSendRequestCallback;
|
||||
};
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
#include <FS.h>
|
||||
#include <detail/mimetable.h>
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
#include <detail/RequestHandlersImpl.h>
|
||||
#endif
|
||||
|
||||
using namespace mime;
|
||||
|
||||
@@ -54,13 +51,6 @@ public:
|
||||
if (this->eTag.isEmpty()) {
|
||||
if (server._eTagFunction) {
|
||||
this->eTag = (server._eTagFunction)(*this->fs, this->path);
|
||||
|
||||
} else {
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
this->eTag = esp8266webserver::calcETag(*this->fs, this->path);
|
||||
#elif defined(ARDUINO_ARCH_ESP32)
|
||||
this->eTag = StaticRequestHandler::calcETag(*this->fs, this->path);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,14 +14,13 @@ extra_configs = secrets.default.ini
|
||||
core_dir = .pio
|
||||
|
||||
[env]
|
||||
version = 1.5.0
|
||||
version = 1.5.2
|
||||
framework = arduino
|
||||
lib_deps =
|
||||
bblanchon/ArduinoJson@^7.3.0
|
||||
;ihormelnyk/OpenTherm Library@^1.1.5
|
||||
https://github.com/ihormelnyk/opentherm_library#master
|
||||
;arduino-libraries/ArduinoMqttClient@^0.1.8
|
||||
https://github.com/Laxilef/ArduinoMqttClient.git#esp32_core_310
|
||||
arduino-libraries/ArduinoMqttClient@^0.1.8
|
||||
lennarthennigs/ESP Telnet@^2.2
|
||||
gyverlibs/FileData@^1.0.2
|
||||
gyverlibs/GyverPID@^3.3.2
|
||||
@@ -85,7 +84,7 @@ board_build.ldscript = eagle.flash.4m1m.ld
|
||||
;platform_packages =
|
||||
; framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.5
|
||||
; framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.1/esp32-arduino-libs-idf-release_v5.1-33fbade6.zip
|
||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10/platform-espressif32.zip
|
||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip
|
||||
platform_packages =
|
||||
board_build.partitions = esp32_partitions.csv
|
||||
lib_deps =
|
||||
@@ -300,4 +299,28 @@ build_type = ${esp32_defaults.build_type}
|
||||
build_flags =
|
||||
${esp32_defaults.build_flags}
|
||||
; Currently the NimBLE library is incompatible with ESP32 C6
|
||||
;-D USE_BLE=1
|
||||
;-D USE_BLE=1
|
||||
|
||||
[env:otthing]
|
||||
platform = ${esp32_defaults.platform}
|
||||
platform_packages = ${esp32_defaults.platform_packages}
|
||||
board = lolin_c3_mini
|
||||
board_build.partitions = ${esp32_defaults.board_build.partitions}
|
||||
lib_deps =
|
||||
${esp32_defaults.lib_deps}
|
||||
${esp32_defaults.nimble_lib}
|
||||
lib_ignore = ${esp32_defaults.lib_ignore}
|
||||
extra_scripts = ${esp32_defaults.extra_scripts}
|
||||
build_unflags =
|
||||
-mtext-section-literals
|
||||
build_type = ${esp32_defaults.build_type}
|
||||
build_flags =
|
||||
${esp32_defaults.build_flags}
|
||||
-D USE_BLE=1
|
||||
-D DEFAULT_OT_IN_GPIO=3
|
||||
-D DEFAULT_OT_OUT_GPIO=1
|
||||
; -D DEFAULT_SENSOR_OUTDOOR_GPIO=0
|
||||
; -D DEFAULT_SENSOR_INDOOR_GPIO=1
|
||||
-D DEFAULT_STATUS_LED_GPIO=8
|
||||
-D DEFAULT_OT_RX_LED_GPIO=2
|
||||
-D OT_BYPASS_RELAY_GPIO=20
|
||||
|
||||
@@ -197,14 +197,13 @@ protected:
|
||||
|
||||
this->haHelper->setDevicePrefix(settings.mqtt.prefix);
|
||||
this->haHelper->updateCachedTopics();
|
||||
|
||||
this->client->stop();
|
||||
this->client->setId(networkSettings.hostname);
|
||||
this->client->setUsernamePassword(settings.mqtt.user, settings.mqtt.password);
|
||||
|
||||
this->client->beginWill(this->haHelper->getDeviceTopic(F("status")).c_str(), 7, true, 1);
|
||||
this->client->print(F("offline"));
|
||||
this->client->endWill();
|
||||
|
||||
this->client->connect(settings.mqtt.server, settings.mqtt.port);
|
||||
this->lastReconnectTime = millis();
|
||||
this->yield();
|
||||
|
||||
@@ -10,17 +10,21 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
const unsigned short readyTime = 60000;
|
||||
const unsigned short heatingSetTempInterval = 60000;
|
||||
const unsigned short dhwSetTempInterval = 60000;
|
||||
const unsigned short ch2SetTempInterval = 60000;
|
||||
const unsigned int initializingInterval = 3600000;
|
||||
const unsigned short readyTime = 60000u;
|
||||
const unsigned int resetBusInterval = 120000u;
|
||||
const unsigned short heatingSetTempInterval = 60000u;
|
||||
const unsigned short dhwSetTempInterval = 60000u;
|
||||
const unsigned short ch2SetTempInterval = 60000u;
|
||||
const unsigned int initializingInterval = 3600000u;
|
||||
|
||||
CustomOpenTherm* instance = nullptr;
|
||||
unsigned long instanceCreatedTime = 0;
|
||||
byte instanceInGpio = 0;
|
||||
byte instanceOutGpio = 0;
|
||||
bool initialized = false;
|
||||
unsigned long connectedTime = 0;
|
||||
unsigned long disconnectedTime = 0;
|
||||
unsigned long resetBusTime = 0;
|
||||
unsigned long initializedTime = 0;
|
||||
unsigned long lastSuccessResponse = 0;
|
||||
unsigned long prevUpdateNonEssentialVars = 0;
|
||||
@@ -69,6 +73,11 @@ protected:
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef OT_BYPASS_RELAY_GPIO
|
||||
pinMode(OT_BYPASS_RELAY_GPIO, OUTPUT);
|
||||
digitalWrite(OT_BYPASS_RELAY_GPIO, true);
|
||||
#endif
|
||||
|
||||
// create instance
|
||||
this->instance = new CustomOpenTherm(settings.opentherm.inGpio, settings.opentherm.outGpio);
|
||||
|
||||
@@ -76,6 +85,7 @@ protected:
|
||||
this->instanceCreatedTime = millis();
|
||||
this->instanceInGpio = settings.opentherm.inGpio;
|
||||
this->instanceOutGpio = settings.opentherm.outGpio;
|
||||
this->resetBusTime = millis();
|
||||
this->initialized = false;
|
||||
|
||||
Log.sinfoln(FPSTR(L_OT), F("Started. GPIO IN: %hhu, GPIO OUT: %hhu"), settings.opentherm.inGpio, settings.opentherm.outGpio);
|
||||
@@ -98,11 +108,9 @@ protected:
|
||||
}
|
||||
});
|
||||
|
||||
this->instance->setYieldCallback([this]() {
|
||||
this->delay(25);
|
||||
this->instance->setDelayCallback([this](unsigned int time) {
|
||||
this->delay(time);
|
||||
});
|
||||
|
||||
this->instance->begin();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
@@ -128,6 +136,9 @@ protected:
|
||||
if (this->instance == nullptr) {
|
||||
this->delay(5000);
|
||||
return;
|
||||
|
||||
} else if (this->instance->status == OpenThermStatus::NOT_INITIALIZED) {
|
||||
this->instance->begin();
|
||||
}
|
||||
|
||||
// RX LED GPIO setup
|
||||
@@ -203,13 +214,22 @@ protected:
|
||||
);
|
||||
}
|
||||
|
||||
if (!vars.slave.connected && millis() - this->lastSuccessResponse < 1150) {
|
||||
Log.sinfoln(FPSTR(L_OT), F("Connected"));
|
||||
if (!vars.slave.connected && millis() - this->lastSuccessResponse < 1325) {
|
||||
Log.sinfoln(
|
||||
FPSTR(L_OT),
|
||||
F("Connected, downtime: %lu s."),
|
||||
(millis() - this->disconnectedTime) / 1000
|
||||
);
|
||||
|
||||
this->connectedTime = millis();
|
||||
vars.slave.connected = true;
|
||||
|
||||
} else if (vars.slave.connected && millis() - this->lastSuccessResponse > 1150) {
|
||||
Log.swarningln(FPSTR(L_OT), F("Disconnected"));
|
||||
} else if (vars.slave.connected && millis() - this->lastSuccessResponse > 1325) {
|
||||
Log.swarningln(
|
||||
FPSTR(L_OT),
|
||||
F("Disconnected, uptime: %lu s."),
|
||||
(millis() - this->connectedTime) / 1000
|
||||
);
|
||||
|
||||
// Mark sensors as disconnected
|
||||
Sensors::setConnectionStatusByType(Sensors::Type::OT_OUTDOOR_TEMP, false);
|
||||
@@ -233,6 +253,7 @@ protected:
|
||||
Sensors::setConnectionStatusByType(Sensors::Type::OT_FAN_SPEED_CURRENT, false);
|
||||
|
||||
this->initialized = false;
|
||||
this->disconnectedTime = millis();
|
||||
vars.slave.connected = false;
|
||||
}
|
||||
|
||||
@@ -248,6 +269,20 @@ protected:
|
||||
vars.slave.diag.active = false;
|
||||
vars.slave.diag.code = 0;
|
||||
|
||||
// reset bus
|
||||
if (millis() - this->disconnectedTime > this->resetBusInterval) {
|
||||
if (millis() - this->resetBusTime > this->resetBusInterval) {
|
||||
Log.sinfoln(FPSTR(L_OT), F("Reset bus..."));
|
||||
|
||||
this->instance->end();
|
||||
this->instance->status = OpenThermStatus::NOT_INITIALIZED;
|
||||
|
||||
digitalWrite(this->instanceOutGpio, LOW);
|
||||
this->resetBusTime = millis();
|
||||
this->delay(5000);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1019,14 +1054,16 @@ protected:
|
||||
|
||||
if (this->needSetHeatingTemp(convertedTemp)) {
|
||||
// Set max heating temp
|
||||
if (this->setMaxHeatingTemp(convertedTemp)) {
|
||||
Log.sinfoln(
|
||||
FPSTR(L_OT_HEATING), F("Set max heating temp: %.2f (converted: %.2f)"),
|
||||
vars.master.heating.setpointTemp, convertedTemp
|
||||
);
|
||||
if (settings.opentherm.options.maxTempSyncWithTargetTemp) {
|
||||
if (this->setMaxHeatingTemp(convertedTemp)) {
|
||||
Log.sinfoln(
|
||||
FPSTR(L_OT_HEATING), F("Set max heating temp: %.2f (converted: %.2f)"),
|
||||
vars.master.heating.setpointTemp, convertedTemp
|
||||
);
|
||||
|
||||
} else {
|
||||
Log.swarningln(FPSTR(L_OT_HEATING), F("Failed set max heating temp"));
|
||||
} else {
|
||||
Log.swarningln(FPSTR(L_OT_HEATING), F("Failed set max heating temp"));
|
||||
}
|
||||
}
|
||||
|
||||
// Set target heating temp
|
||||
|
||||
@@ -67,6 +67,7 @@ struct Settings {
|
||||
bool dhwToCh2 = false;
|
||||
bool dhwBlocking = false;
|
||||
bool modulationSyncWithHeating = false;
|
||||
bool maxTempSyncWithTargetTemp = true;
|
||||
bool getMinMaxTemp = true;
|
||||
bool nativeHeatingControl = false;
|
||||
bool immergasFix = false;
|
||||
|
||||
@@ -118,6 +118,7 @@ const char S_MAX_FREE_BLOCK[] PROGMEM = "maxFreeBlock";
|
||||
const char S_MAX_MODULATION[] PROGMEM = "maxModulation";
|
||||
const char S_MAX_POWER[] PROGMEM = "maxPower";
|
||||
const char S_MAX_TEMP[] PROGMEM = "maxTemp";
|
||||
const char S_MAX_TEMP_SYNC_WITH_TARGET_TEMP[] PROGMEM = "maxTempSyncWithTargetTemp";
|
||||
const char S_MEMBER_ID[] PROGMEM = "memberId";
|
||||
const char S_MIN[] PROGMEM = "min";
|
||||
const char S_MIN_FREE[] PROGMEM = "minFree";
|
||||
|
||||
15
src/utils.h
15
src/utils.h
@@ -388,6 +388,7 @@ void settingsToJson(const Settings& src, JsonVariant dst, bool safe = false) {
|
||||
otOptions[FPSTR(S_DHW_TO_CH2)] = src.opentherm.options.dhwToCh2;
|
||||
otOptions[FPSTR(S_DHW_BLOCKING)] = src.opentherm.options.dhwBlocking;
|
||||
otOptions[FPSTR(S_MODULATION_SYNC_WITH_HEATING)] = src.opentherm.options.modulationSyncWithHeating;
|
||||
otOptions[FPSTR(S_MAX_TEMP_SYNC_WITH_TARGET_TEMP)] = src.opentherm.options.maxTempSyncWithTargetTemp;
|
||||
otOptions[FPSTR(S_GET_MIN_MAX_TEMP)] = src.opentherm.options.getMinMaxTemp;
|
||||
otOptions[FPSTR(S_NATIVE_HEATING_CONTROL)] = src.opentherm.options.nativeHeatingControl;
|
||||
otOptions[FPSTR(S_IMMERGAS_FIX)] = src.opentherm.options.immergasFix;
|
||||
@@ -601,6 +602,11 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false
|
||||
}
|
||||
}
|
||||
|
||||
if (dst.portal.auth && (!strlen(dst.portal.login) || !strlen(dst.portal.password))) {
|
||||
dst.portal.auth = false;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
|
||||
// opentherm
|
||||
if (!src[FPSTR(S_OPENTHERM)][FPSTR(S_UNIT_SYSTEM)].isNull()) {
|
||||
@@ -821,6 +827,15 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false
|
||||
}
|
||||
}
|
||||
|
||||
if (src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_MAX_TEMP_SYNC_WITH_TARGET_TEMP)].is<bool>()) {
|
||||
bool value = src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_MAX_TEMP_SYNC_WITH_TARGET_TEMP)].as<bool>();
|
||||
|
||||
if (value != dst.opentherm.options.maxTempSyncWithTargetTemp) {
|
||||
dst.opentherm.options.maxTempSyncWithTargetTemp = value;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_GET_MIN_MAX_TEMP)].is<bool>()) {
|
||||
bool value = src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_GET_MIN_MAX_TEMP)].as<bool>();
|
||||
|
||||
|
||||
@@ -378,6 +378,7 @@
|
||||
"dhwToCh2": "Duplicate DHW to CH2",
|
||||
"dhwBlocking": "DHW blocking",
|
||||
"modulationSyncWithHeating": "Sync modulation with heating",
|
||||
"maxTempSyncWithTargetTemp": "Sync max heating temp with target temp",
|
||||
"getMinMaxTemp": "Get min/max temp from boiler",
|
||||
"immergasFix": "Fix for Immergas boilers"
|
||||
},
|
||||
|
||||
455
src_data/locales/it.json
Normal file
455
src_data/locales/it.json
Normal file
@@ -0,0 +1,455 @@
|
||||
{
|
||||
"values": {
|
||||
"logo": "OpenTherm Gateway",
|
||||
"nav": {
|
||||
"license": "Licenza",
|
||||
"source": "Codice",
|
||||
"help": "Aiuto",
|
||||
"issues": "Problemi e domande",
|
||||
"releases": "Versione"
|
||||
},
|
||||
"dbm": "dBm",
|
||||
"kw": "kW",
|
||||
"time": {
|
||||
"days": "d.",
|
||||
"hours": "h.",
|
||||
"min": "min.",
|
||||
"sec": "sec."
|
||||
},
|
||||
|
||||
"button": {
|
||||
"upgrade": "Aggiorna",
|
||||
"restart": "Riavvia",
|
||||
"save": "Salva",
|
||||
"saved": "Salvato",
|
||||
"refresh": "Ricarica",
|
||||
"restore": "Recupera",
|
||||
"restored": "Recuperato",
|
||||
"backup": "Backup",
|
||||
"wait": "Attendi...",
|
||||
"uploading": "caricamento...",
|
||||
"success": "Riuscito",
|
||||
"error": "Errore"
|
||||
},
|
||||
|
||||
"index": {
|
||||
"title": "OpenTherm Gateway",
|
||||
|
||||
"section": {
|
||||
"network": "Rete",
|
||||
"system": "Sistema"
|
||||
},
|
||||
|
||||
"system": {
|
||||
"build": {
|
||||
"title": "Build",
|
||||
"version": "Versione",
|
||||
"date": "Data",
|
||||
"core": "Core",
|
||||
"sdk": "SDK"
|
||||
},
|
||||
"uptime": "Tempo di attività",
|
||||
"memory": {
|
||||
"title": "Memoria libera",
|
||||
"maxFreeBlock": "max free block",
|
||||
"min": "min"
|
||||
},
|
||||
"board": "Scheda",
|
||||
"chip": {
|
||||
"model": "Chip",
|
||||
"cores": "Cores",
|
||||
"freq": "frequenza"
|
||||
},
|
||||
"flash": {
|
||||
"size": "Dimensioni del flash",
|
||||
"realSize": "dimensione reale"
|
||||
},
|
||||
"lastResetReason": "Motivo ultimo Reset"
|
||||
}
|
||||
},
|
||||
|
||||
"dashboard": {
|
||||
"name": "Pannello",
|
||||
"title": "Pannello - OpenTherm Gateway",
|
||||
|
||||
"section": {
|
||||
"control": "Controlli",
|
||||
"states": "Stato",
|
||||
"sensors": "Sensori",
|
||||
"diag": "Diagnostica OpenTherm"
|
||||
},
|
||||
|
||||
"thermostat": {
|
||||
"heating": "Riscaldamento",
|
||||
"dhw": "ACS",
|
||||
"temp.current": "Attuale",
|
||||
"enable": "Attiva",
|
||||
"turbo": "Turbo"
|
||||
},
|
||||
|
||||
"notify": {
|
||||
"fault": {
|
||||
"title": "Rilevamento guasti caldiaia attivo!",
|
||||
"note": "Si consiglia di ispezionare la caldaia e studiare la documentazione per interpretare il codice di errore:"
|
||||
},
|
||||
"diag": {
|
||||
"title": "Stato diagnostica Caldaia attivo!",
|
||||
"note": "Forse la tua caldaia ha bisogno di un'ispezione? Si consiglia di studiare la documentazione per interpretare il codice diagnostico:"
|
||||
},
|
||||
"reset": "Prova a resettare"
|
||||
},
|
||||
|
||||
"states": {
|
||||
"mNetworkConnected": "Connessione Rete",
|
||||
"mMqttConnected": "Connessione MQTT",
|
||||
"mEmergencyState": "Modo Emergenza",
|
||||
"mExtPumpState": "Pompa esterna",
|
||||
"mCascadeControlInput": "Controllo a cascata (input)",
|
||||
"mCascadeControlOutput": "Controllo a cascata (output)",
|
||||
|
||||
"sConnected": "Connessione OpenTherm",
|
||||
"sFlame": "Fiamma",
|
||||
"sCooling": "Raffrescamento",
|
||||
"sFaultActive": "Anomalia",
|
||||
"sFaultCode": "Codice anomalia",
|
||||
"sDiagActive": "Diagnostica",
|
||||
"sDiagCode": "Codice Diagnostica",
|
||||
|
||||
"mHeatEnabled": "Riscaldamento attivato",
|
||||
"mHeatBlocking": "Riscaldamento bloccato",
|
||||
"sHeatActive": "Riscaldamento attivo",
|
||||
"mHeatSetpointTemp": "Temp riscaldamento impostato",
|
||||
"mHeatTargetTemp": "Target Temp caldaia",
|
||||
"mHeatCurrTemp": "Temp attuale riscaldamento",
|
||||
"mHeatRetTemp": "Temp ritorno riscaldamento",
|
||||
"mHeatIndoorTemp": "Riscaldamento, temp interna",
|
||||
"mHeatOutdoorTemp": "Riscaldamento, temp esterna",
|
||||
|
||||
"mDhwEnabled": "ACS attivata",
|
||||
"sDhwActive": "ACS attiva",
|
||||
"mDhwTargetTemp": "ACS temp impostata",
|
||||
"mDhwCurrTemp": "ACS temp attuale",
|
||||
"mDhwRetTemp": "ACS temp ricircolo"
|
||||
},
|
||||
|
||||
"sensors": {
|
||||
"values": {
|
||||
"temp": "Temperatura",
|
||||
"humidity": "Umidità",
|
||||
"battery": "Batteria",
|
||||
"rssi": "RSSI"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"network": {
|
||||
"title": "Rete - OpenTherm Gateway",
|
||||
"name": "Impostazioni rete",
|
||||
|
||||
"section": {
|
||||
"static": "Impostazioni statico",
|
||||
"availableNetworks": "Reti disponibili",
|
||||
"staSettings": "Impostazioni WiFi",
|
||||
"apSettings": "Impostazioni AP"
|
||||
},
|
||||
|
||||
"scan": {
|
||||
"pos": "#",
|
||||
"info": "Info"
|
||||
},
|
||||
|
||||
"wifi": {
|
||||
"ssid": "SSID",
|
||||
"password": "Password",
|
||||
"channel": "Canale",
|
||||
"signal": "Segnale",
|
||||
"connected": "Connesso"
|
||||
},
|
||||
|
||||
"params": {
|
||||
"hostname": "Hostname",
|
||||
"dhcp": "Usa DHCP",
|
||||
"mac": "MAC",
|
||||
"ip": "IP",
|
||||
"subnet": "Subnet",
|
||||
"gateway": "Gateway",
|
||||
"dns": "DNS"
|
||||
},
|
||||
|
||||
"sta": {
|
||||
"channel.note": "Metti 0 per auto selezione"
|
||||
}
|
||||
},
|
||||
|
||||
"sensors": {
|
||||
"title": "Impostazione sensori - OpenTherm Gateway",
|
||||
"name": "Impostazione sensori",
|
||||
|
||||
"enabled": "Attivato",
|
||||
"sensorName": {
|
||||
"title": "Nome sensore",
|
||||
"note": "Può contenere solo: a-z, A-Z, 0-9, _ e spazi"
|
||||
},
|
||||
"purpose": "Funzione",
|
||||
"purposes": {
|
||||
"outdoorTemp": "Temperatura esterna",
|
||||
"indoorTemp": "Temperatura interna",
|
||||
"heatTemp": "Riscaldamento, temperatura mandata",
|
||||
"heatRetTemp": "Riscaldamento, temperatura ritorno",
|
||||
"dhwTemp": "ACS, temperatura",
|
||||
"dhwRetTemp": "ACS, temperatura ritorno",
|
||||
"dhwFlowRate": "ACS, prelievo",
|
||||
"exhaustTemp": "Temperatura fumi",
|
||||
"modLevel": "Livello Modulazione (%)",
|
||||
"powerFactor": "Potenza (%)",
|
||||
"power": "Potenza (in kW)",
|
||||
"fanSpeed": "Velocità ventilatore",
|
||||
"co2": "CO2",
|
||||
"pressure": "Pressione",
|
||||
"humidity": "Umidità",
|
||||
"temperature": "Temperatura",
|
||||
"notConfigured": "Non configurato"
|
||||
},
|
||||
"type": "Tipo/sorgente",
|
||||
"types": {
|
||||
"otOutdoorTemp": "OpenTherm, temp esterna",
|
||||
"otHeatTemp": "OpenTherm, riscaldamento, temp",
|
||||
"otHeatRetTemp": "OpenTherm, riscaldamento, temp ritorno",
|
||||
"otDhwTemp": "OpenTherm, ACS, temperatura",
|
||||
"otDhwTemp2": "OpenTherm, ACS, temperatura 2",
|
||||
"otDhwFlowRate": "OpenTherm, ACS, prelievo",
|
||||
"otCh2Temp": "OpenTherm, canale 2, temp",
|
||||
"otExhaustTemp": "OpenTherm, temp fumi",
|
||||
"otHeatExchangerTemp": "OpenTherm, temp scambiatore",
|
||||
"otPressure": "OpenTherm, pressione",
|
||||
"otModLevel": "OpenTherm, livello modulazione",
|
||||
"otCurrentPower": "OpenTherm, potenza attuale",
|
||||
"otExhaustCo2": "OpenTherm, CO2 fumi",
|
||||
"otExhaustFanSpeed": "OpenTherm, velocità ventola fumi",
|
||||
"otSupplyFanSpeed": "OpenTherm, velocità ventola supporto",
|
||||
"otSolarStorageTemp": "OpenTherm, temp accumulo solare",
|
||||
"otSolarCollectorTemp": "OpenTherm, temp collettore solare",
|
||||
"otFanSpeedSetpoint": "OpenTherm, velocità ventola impostata",
|
||||
"otFanSpeedCurrent": "OpenTherm, velocità ventola attuale",
|
||||
|
||||
"ntcTemp": "Sensore NTC",
|
||||
"dallasTemp": "Sensore DALLAS",
|
||||
"bluetooth": "Sensore BLE",
|
||||
"heatSetpointTemp": "Riscaldamento, temp impostata",
|
||||
"manual": "Manuale via MQTT/API",
|
||||
"notConfigured": "Non configurato"
|
||||
},
|
||||
"gpio": "GPIO",
|
||||
"address": {
|
||||
"title": "Indirizzo sensore",
|
||||
"note": "Per l'autoriconoscimento del sensore DALLAS lasciare quello di default, per sensore BLE richiede indirizzo MAC"
|
||||
},
|
||||
"correction": {
|
||||
"desc": "Correzione del valore",
|
||||
"offset": "Compensazione (offset)",
|
||||
"factor": "Moltiplicatore"
|
||||
},
|
||||
"filtering": {
|
||||
"desc": "Filtraggio valore",
|
||||
"enabled": {
|
||||
"title": "Filtraggio attivo",
|
||||
"note": "Può servire in caso vi siano molti sbalzi nel grafico. Il filtro usato è \"Running Average\"."
|
||||
},
|
||||
"factor": {
|
||||
"title": "Fattore di filtrazione",
|
||||
"note": "Quanto più basso è il valore, tanto più graduale e prolungata sarà la variazione dei valori numerici."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"settings": {
|
||||
"title": "Impostazioni - OpenTherm Gateway",
|
||||
"name": "Impostazioni",
|
||||
|
||||
"section": {
|
||||
"portal": "Impostazioni Accesso",
|
||||
"system": "Impostazioni sistema",
|
||||
"diag": "Diagnostica",
|
||||
"heating": "Impostazioni riscaldamento",
|
||||
"dhw": "Impostazioni ACS",
|
||||
"emergency": "Impostazioni modo Emergenza",
|
||||
"equitherm": "Impostazioni Equitherm",
|
||||
"pid": "Impostazioni PID",
|
||||
"ot": "Impostazioni OpenTherm",
|
||||
"mqtt": "Impostazioni MQTT",
|
||||
"extPump": "Impostazioni pompa esterna",
|
||||
"cascadeControl": "Impostazioni controllo a cascata"
|
||||
},
|
||||
|
||||
"enable": "Attiva",
|
||||
"note": {
|
||||
"restart": "Dopo aver cambiato queste impostazioni, il sistema sarà riavviato perchè i cambiamenti abbiano effetto.",
|
||||
"blankNotUse": "vuoto - non usare",
|
||||
"bleDevice": "Dispositivi BLE possono essere usati <u>solo</u> con alcune schede ESP32 che supportano il bluetooth!"
|
||||
},
|
||||
|
||||
"temp": {
|
||||
"min": "Temperatura minima",
|
||||
"max": "Temperatura massima"
|
||||
},
|
||||
|
||||
"portal": {
|
||||
"login": "Login",
|
||||
"password": "Password",
|
||||
"auth": "Richiede autenticazione"
|
||||
},
|
||||
|
||||
"system": {
|
||||
"unit": "Unità di misura",
|
||||
"metric": "Metrico <small>(celsius, litri, bar)</small>",
|
||||
"imperial": "Imperiale <small>(fahrenheit, galloni, psi)</small>",
|
||||
"statusLedGpio": "LED di stato GPIO",
|
||||
"logLevel": "Log livello",
|
||||
"serial": {
|
||||
"enable": "Porta seriale attivata",
|
||||
"baud": "Porta seriale baud rate"
|
||||
},
|
||||
"telnet": {
|
||||
"enable": "Telnet attivato",
|
||||
"port": {
|
||||
"title": "Porta Telnet",
|
||||
"note": "Default: 23"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"heating": {
|
||||
"hyst": "Isteresi <small>(in gradi)</small>",
|
||||
"turboFactor": "Turbo mode coeff."
|
||||
},
|
||||
|
||||
"emergency": {
|
||||
"desc": "Il modo emergenza è attivato automaticamente quando «PID» o «Equitherm» non possono calcolare il setpoint:<br />- se «Equitherm» è attivato e il sensore della temperatura esternare è disconnesso;<br />- se «PID» o l'opzione OT <i>«Impostazioni riscaldamento native»</i> è attiva e il sensore di temperatura interno è disconnesso.<br /><b>Nota:</b> In mancanza di rete o MQTT, sensore di tipo <i>«Manuale via MQTT/API»</i> è in stato Disconnesso.",
|
||||
|
||||
"target": {
|
||||
"title": "Temperatura impostata",
|
||||
"note": "<b>Importante:</b> <u>Temperatura interna impostata</u> se l'opzione OT <i>«Controllo riscaldamento interno»</i> è attivato.<br />In tutti gli altri casi, la <u>target heat carrier temperature</u>."
|
||||
},
|
||||
"treshold": "Tempo di soglia <small>(sec)</small>"
|
||||
},
|
||||
|
||||
"equitherm": {
|
||||
"n": "Fattore N",
|
||||
"k": "Fattore K",
|
||||
"t": {
|
||||
"title": "Fattore T",
|
||||
"note": "Non usato se PID è attivato"
|
||||
}
|
||||
},
|
||||
|
||||
"pid": {
|
||||
"p": "Fattore P",
|
||||
"i": "Fattore I",
|
||||
"d": "Fattore D",
|
||||
"dt": "DT <small>in secondi</small>",
|
||||
"noteMinMaxTemp": "<b>Importante:</b> Quando usi «Equitherm» e «PID» allo stesso tempo, i limiti della temperatura min e max influenzano il risultato della temperatura «Equitherm».<br />Thus, se la temperatura minima è impostata a -15 e la massima a 15, il riscaldamento finale sarà impostato fra <code>equitherm_result - 15</code> a <code>equitherm_result + 15</code>."
|
||||
},
|
||||
|
||||
"ot": {
|
||||
"advanced": "Impostazioni avanzate",
|
||||
"inGpio": "In GPIO",
|
||||
"outGpio": "Out GPIO",
|
||||
"ledGpio": "RX LED GPIO",
|
||||
"memberId": "Master member ID",
|
||||
"flags": "Master flags",
|
||||
"maxMod": "Max livello modulazione",
|
||||
"minPower": {
|
||||
"title": "Potenza minima caldaia <small>(kW)</small>",
|
||||
"note": "Questo valore corrisponde allo livello 0-1% di modulazione della caldaia. Di solito si trova nelle specifiche delle caldaia come \"potenza minima disponibile\"."
|
||||
},
|
||||
"maxPower": {
|
||||
"title": "Potenza massima caldaia <small>(kW)</small>",
|
||||
"note": "<b>0</b> - prova a rilevarla automaticamente. Di solito si trova nelle specifiche delle caldaia come \"potenza massima disponibile\"."
|
||||
},
|
||||
|
||||
"options": {
|
||||
"desc": "Opzioni",
|
||||
"dhwSupport": "Supporto ACS",
|
||||
"coolingSupport": "Supporto rafferscamento",
|
||||
"summerWinterMode": "Modalità Estate/inverno",
|
||||
"heatingStateToSummerWinterMode": "Stato di riscaldamento come modalità estate/inverno",
|
||||
"ch2AlwaysEnabled": "CH2 sempre abilitato",
|
||||
"heatingToCh2": "Riproduci riscaldamento su CH2",
|
||||
"dhwToCh2": "Riproduci ACS su CH2",
|
||||
"dhwBlocking": "Bloccare ACS",
|
||||
"modulationSyncWithHeating": "Sincronizzare modulazione con caldaia",
|
||||
"maxTempSyncWithTargetTemp": "Sincronizza la temperatura massima di riscaldamento con la temperatura target",
|
||||
"getMinMaxTemp": "Prendi temp min/max dalla caldaia",
|
||||
"immergasFix": "Fix per caldiaie Immergas"
|
||||
},
|
||||
|
||||
"nativeHeating": {
|
||||
"title": "Controllo del riscaldamento nativo (caldaia)",
|
||||
"note": "Lavora <u>SOLO</u> se la caldaia richiede la temperatura ambiente desiderata e regola autonomamente la temperatura del fluido. Non compatiblile con regolazioni PID e Equitherm del sistema."
|
||||
}
|
||||
},
|
||||
|
||||
"mqtt": {
|
||||
"homeAssistantDiscovery": "Home Assistant Discovery",
|
||||
"server": "Server",
|
||||
"port": "Porta",
|
||||
"user": "Utente",
|
||||
"password": "Password",
|
||||
"prefix": "Prefisso",
|
||||
"interval": "Intervallo invio <small>(sec)</small>"
|
||||
},
|
||||
|
||||
"extPump": {
|
||||
"use": "Usa pompa/circolatore esterno",
|
||||
"gpio": "GPIO relè",
|
||||
"postCirculationTime": "Tempo di post circolazione <small>(min)</small>",
|
||||
"antiStuckInterval": "Intervallo antiblocco <small>(days)</small>",
|
||||
"antiStuckTime": "Tempo antiblocco <small>(min)</small>"
|
||||
},
|
||||
|
||||
"cascadeControl": {
|
||||
"input": {
|
||||
"desc": "Può essere attivata la caldaia se un'altra ha fallito. Il controllo dell'altra caldaia cambia lo stato dell'ingresso del GPIO in caso di errore.",
|
||||
"enable": "Ingresso abilitato",
|
||||
"gpio": "GPIO",
|
||||
"invertState": "Inverti stato GPIO",
|
||||
"thresholdTime": "Tempo soglia di modifica dello stato <small>(sec)</small>"
|
||||
},
|
||||
"output": {
|
||||
"desc": "Può essere usato per passare ad un'altra caldaia tramite <u>relè</u>.",
|
||||
"enable": "Uscita abilitata",
|
||||
"gpio": "GPIO",
|
||||
"invertState": "Invert GPIO state",
|
||||
"thresholdTime": "Tempo soglia di modifica dello stato <small>(sec)</small>",
|
||||
"events": {
|
||||
"desc": "Eventi",
|
||||
"onFault": "Se lo stato di errore è attivo",
|
||||
"onLossConnection": "Se non c'è la connessione via Opentherm",
|
||||
"onEnabledHeating": "Se il riscaldamento è attivato"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"upgrade": {
|
||||
"title": "Aggiornamenti - OpenTherm Gateway",
|
||||
"name": "Aggiornamenti",
|
||||
|
||||
"section": {
|
||||
"backupAndRestore": "Backup & restore",
|
||||
"backupAndRestore.desc": "In questa sezione puoi salvare e recuperare un backup di tutte le impostazioni.",
|
||||
"upgrade": "Aggiorna",
|
||||
"upgrade.desc": "In questa sezione puoi aggiornare il firmware il filesystem del tuo dispositivo.<br />L'ultimo aggiornamento può essere scaricato da <a href=\"https://github.com/Laxilef/OTGateway/releases\" target=\"_blank\">Releases page</a> del progetto."
|
||||
},
|
||||
|
||||
"note": {
|
||||
"disclaimer1": "Dopo un aggiornamento riuscito del filesystem, tutte le impostazioni sono impostate di default! Salva un backup prima di aggiornare.",
|
||||
"disclaimer2": "Dopo un aggiornamento riuscito, il sistema viene automaticamente riavviato dopo 15 secondi."
|
||||
},
|
||||
|
||||
"settingsFile": "Settings file",
|
||||
"fw": "Firmware",
|
||||
"fs": "Filesystem"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -301,7 +301,7 @@
|
||||
|
||||
"system": {
|
||||
"unit": "Система единиц",
|
||||
"metric": "Метрическая <small>(цильсии, литры, бары)</small>",
|
||||
"metric": "Метрическая <small>(цельсии, литры, бары)</small>",
|
||||
"imperial": "Imperial <small>(фаренгейты, галлоны, psi)</small>",
|
||||
"statusLedGpio": "Статус LED GPIO",
|
||||
"logLevel": "Уровень логирования",
|
||||
@@ -378,6 +378,7 @@
|
||||
"dhwToCh2": "Дублировать параметры ГВС в канал 2",
|
||||
"dhwBlocking": "DHW blocking",
|
||||
"modulationSyncWithHeating": "Синхронизировать модуляцию с отоплением",
|
||||
"maxTempSyncWithTargetTemp": "Синхронизировать макс. темп. отопления с целевой темп.",
|
||||
"getMinMaxTemp": "Получать мин. и макс. температуру от котла",
|
||||
"immergasFix": "Фикс для котлов Immergas"
|
||||
},
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<li>
|
||||
<select id="lang" aria-label="Lang">
|
||||
<option value="en" selected>EN</option>
|
||||
<option value="it">IT</option>
|
||||
<option value="ru">RU</option>
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<li>
|
||||
<select id="lang" aria-label="Lang">
|
||||
<option value="en" selected>EN</option>
|
||||
<option value="it">IT</option>
|
||||
<option value="ru">RU</option>
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<li>
|
||||
<select id="lang" aria-label="Lang">
|
||||
<option value="en" selected>EN</option>
|
||||
<option value="it">IT</option>
|
||||
<option value="ru">RU</option>
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<li>
|
||||
<select id="lang" aria-label="Lang">
|
||||
<option value="en" selected>EN</option>
|
||||
<option value="it">IT</option>
|
||||
<option value="ru">RU</option>
|
||||
</select>
|
||||
</li>
|
||||
@@ -36,7 +37,7 @@
|
||||
</hgroup>
|
||||
|
||||
<details id="template" class="sensor hidden" data-id="" data-preloaded="0">
|
||||
<summary><b>#<span class="id"></span>: <span class="name"></span></b></summary>
|
||||
<summary><b>#<span class="pos"></span>: <span class="name"></span></b></summary>
|
||||
|
||||
<div>
|
||||
<div class="form-busy" aria-busy="true"></div>
|
||||
@@ -210,6 +211,7 @@
|
||||
sensorNode.classList.remove("hidden");
|
||||
sensorNode.dataset.id = sensorId;
|
||||
setValue(".id", sensorId, sensorNode);
|
||||
setValue(".pos", sensorId + 1, sensorNode);
|
||||
setValue(".name", result[sensorId], sensorNode);
|
||||
|
||||
container.appendChild(sensorNode);
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<li>
|
||||
<select id="lang" aria-label="Lang">
|
||||
<option value="en" selected>EN</option>
|
||||
<option value="it">IT</option>
|
||||
<option value="ru">RU</option>
|
||||
</select>
|
||||
</li>
|
||||
@@ -43,12 +44,12 @@
|
||||
<div class="grid">
|
||||
<label>
|
||||
<span data-i18n>settings.portal.login</span>
|
||||
<input type="text" name="portal[login]" maxlength="12" required>
|
||||
<input type="text" name="portal[login]" maxlength="12">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<span data-i18n>settings.portal.password</span>
|
||||
<input type="password" name="portal[password]" maxlength="32" required>
|
||||
<input type="password" name="portal[password]" maxlength="32">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@@ -449,6 +450,11 @@
|
||||
<span data-i18n>settings.ot.options.modulationSyncWithHeating</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" name="opentherm[options][maxTempSyncWithTargetTemp]" value="true">
|
||||
<span data-i18n>settings.ot.options.maxTempSyncWithTargetTemp</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" name="opentherm[options][getMinMaxTemp]" value="true">
|
||||
<span data-i18n>settings.ot.options.getMinMaxTemp</span>
|
||||
@@ -506,7 +512,7 @@
|
||||
<div class="grid">
|
||||
<label>
|
||||
<span data-i18n>settings.mqtt.user</span>
|
||||
<input type="text" name="mqtt[user]" maxlength="32" required>
|
||||
<input type="text" name="mqtt[user]" maxlength="32">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
@@ -715,6 +721,7 @@
|
||||
setCheckboxValue("[name='opentherm[options][dhwToCh2]']", data.opentherm.options.dhwToCh2);
|
||||
setCheckboxValue("[name='opentherm[options][dhwBlocking]']", data.opentherm.options.dhwBlocking);
|
||||
setCheckboxValue("[name='opentherm[options][modulationSyncWithHeating]']", data.opentherm.options.modulationSyncWithHeating);
|
||||
setCheckboxValue("[name='opentherm[options][maxTempSyncWithTargetTemp]']", data.opentherm.options.maxTempSyncWithTargetTemp);
|
||||
setCheckboxValue("[name='opentherm[options][getMinMaxTemp]']", data.opentherm.options.getMinMaxTemp);
|
||||
setCheckboxValue("[name='opentherm[options][nativeHeatingControl]']", data.opentherm.options.nativeHeatingControl);
|
||||
setCheckboxValue("[name='opentherm[options][immergasFix]']", data.opentherm.options.immergasFix);
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<li>
|
||||
<select id="lang" aria-label="Lang">
|
||||
<option value="en" selected>EN</option>
|
||||
<option value="it">IT</option>
|
||||
<option value="ru">RU</option>
|
||||
</select>
|
||||
</li>
|
||||
|
||||
Reference in New Issue
Block a user