iobroker.poolcontrol 1.3.15 → 1.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -74
- package/io-package.json +40 -40
- package/lib/helpers/chemistryOrpHelper.js +818 -0
- package/lib/helpers/chemistryPhHelper.js +309 -39
- package/lib/helpers/chemistryTdsHelper.js +37 -24
- package/lib/helpers/pumpHelper2.js +21 -11
- package/lib/i18n/de.json +35 -1
- package/lib/i18n/en.json +35 -1
- package/lib/i18n/es.json +31 -1
- package/lib/i18n/fr.json +31 -1
- package/lib/i18n/it.json +31 -1
- package/lib/i18n/nl.json +31 -1
- package/lib/i18n/pl.json +31 -1
- package/lib/i18n/pt.json +31 -1
- package/lib/i18n/ru.json +31 -1
- package/lib/i18n/uk.json +31 -1
- package/lib/i18n/zh-cn.json +31 -1
- package/lib/stateDefinitions/chemistryOrpStates.js +1068 -0
- package/lib/stateDefinitions/chemistryPhStates.js +222 -8
- package/lib/stateDefinitions/chemistryTdsStates.js +16 -16
- package/main.js +14 -0
- package/package.json +1 -1
|
@@ -209,11 +209,11 @@ async function createChemistryPhStates(adapter) {
|
|
|
209
209
|
en: 'Readable date and time when the last pH value was received.',
|
|
210
210
|
de: 'Lesbares Datum und Uhrzeit, wann der letzte pH-Wert empfangen wurde.',
|
|
211
211
|
},
|
|
212
|
-
type: '
|
|
212
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
213
213
|
role: 'value.time',
|
|
214
214
|
read: true,
|
|
215
215
|
write: false,
|
|
216
|
-
def:
|
|
216
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
217
217
|
persist: true,
|
|
218
218
|
});
|
|
219
219
|
|
|
@@ -245,11 +245,11 @@ async function createChemistryPhStates(adapter) {
|
|
|
245
245
|
en: 'Readable date and time of the last valid pH value.',
|
|
246
246
|
de: 'Lesbares Datum und Uhrzeit des letzten gültigen pH-Werts.',
|
|
247
247
|
},
|
|
248
|
-
type: '
|
|
248
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
249
249
|
role: 'value.time',
|
|
250
250
|
read: true,
|
|
251
251
|
write: false,
|
|
252
|
-
def:
|
|
252
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
253
253
|
persist: true,
|
|
254
254
|
});
|
|
255
255
|
|
|
@@ -281,11 +281,11 @@ async function createChemistryPhStates(adapter) {
|
|
|
281
281
|
en: 'Readable date and time of the previous valid pH value.',
|
|
282
282
|
de: 'Lesbares Datum und Uhrzeit des vorherigen gültigen pH-Werts.',
|
|
283
283
|
},
|
|
284
|
-
type: '
|
|
284
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
285
285
|
role: 'value.time',
|
|
286
286
|
read: true,
|
|
287
287
|
write: false,
|
|
288
|
-
def:
|
|
288
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
289
289
|
persist: true,
|
|
290
290
|
});
|
|
291
291
|
|
|
@@ -651,6 +651,220 @@ async function createChemistryPhStates(adapter) {
|
|
|
651
651
|
persist: true,
|
|
652
652
|
});
|
|
653
653
|
|
|
654
|
+
// -------------------------------------------------------------
|
|
655
|
+
// History
|
|
656
|
+
// -------------------------------------------------------------
|
|
657
|
+
await createChannel(adapter, 'chemistry.ph.history', {
|
|
658
|
+
en: 'History',
|
|
659
|
+
de: 'Historie',
|
|
660
|
+
});
|
|
661
|
+
|
|
662
|
+
await createState(adapter, 'chemistry.ph.history.samples_json', {
|
|
663
|
+
name: {
|
|
664
|
+
en: 'Samples JSON',
|
|
665
|
+
de: 'Messwerte JSON',
|
|
666
|
+
},
|
|
667
|
+
desc: {
|
|
668
|
+
en: 'Internal JSON list of valid pH samples for up to 30 days.',
|
|
669
|
+
de: 'Interne JSON-Liste gültiger pH-Messpunkte für bis zu 30 Tage.',
|
|
670
|
+
},
|
|
671
|
+
type: 'string',
|
|
672
|
+
role: 'json',
|
|
673
|
+
read: true,
|
|
674
|
+
write: false,
|
|
675
|
+
def: '[]',
|
|
676
|
+
persist: true,
|
|
677
|
+
});
|
|
678
|
+
|
|
679
|
+
await createState(adapter, 'chemistry.ph.history.samples_count', {
|
|
680
|
+
name: {
|
|
681
|
+
en: 'Samples count',
|
|
682
|
+
de: 'Anzahl Messwerte',
|
|
683
|
+
},
|
|
684
|
+
desc: {
|
|
685
|
+
en: 'Number of stored valid pH samples.',
|
|
686
|
+
de: 'Anzahl gespeicherter gültiger pH-Messpunkte.',
|
|
687
|
+
},
|
|
688
|
+
type: 'number',
|
|
689
|
+
role: 'value',
|
|
690
|
+
read: true,
|
|
691
|
+
write: false,
|
|
692
|
+
def: 0,
|
|
693
|
+
persist: true,
|
|
694
|
+
});
|
|
695
|
+
|
|
696
|
+
await createState(adapter, 'chemistry.ph.history.oldest_sample_at', {
|
|
697
|
+
name: {
|
|
698
|
+
en: 'Oldest sample time',
|
|
699
|
+
de: 'Ältester Messwert',
|
|
700
|
+
},
|
|
701
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
702
|
+
role: 'value.time',
|
|
703
|
+
read: true,
|
|
704
|
+
write: false,
|
|
705
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
706
|
+
persist: true,
|
|
707
|
+
});
|
|
708
|
+
|
|
709
|
+
await createState(adapter, 'chemistry.ph.history.newest_sample_at', {
|
|
710
|
+
name: {
|
|
711
|
+
en: 'Newest sample time',
|
|
712
|
+
de: 'Neuester Messwert',
|
|
713
|
+
},
|
|
714
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
715
|
+
role: 'value.time',
|
|
716
|
+
read: true,
|
|
717
|
+
write: false,
|
|
718
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
719
|
+
persist: true,
|
|
720
|
+
});
|
|
721
|
+
|
|
722
|
+
// -------------------------------------------------------------
|
|
723
|
+
// Trend
|
|
724
|
+
// -------------------------------------------------------------
|
|
725
|
+
await createChannel(adapter, 'chemistry.ph.trend', {
|
|
726
|
+
en: 'Trend',
|
|
727
|
+
de: 'Trend',
|
|
728
|
+
});
|
|
729
|
+
|
|
730
|
+
const phTrendStates = [
|
|
731
|
+
['reference_24h_value', '24h reference value', '24h-Referenzwert'],
|
|
732
|
+
['reference_7d_value', '7 day reference value', '7-Tage-Referenzwert'],
|
|
733
|
+
['reference_30d_value', '30 day reference value', '30-Tage-Referenzwert'],
|
|
734
|
+
['delta_24h', '24h delta', '24h-Differenz'],
|
|
735
|
+
['delta_7d', '7 day delta', '7-Tage-Differenz'],
|
|
736
|
+
['delta_30d', '30 day delta', '30-Tage-Differenz'],
|
|
737
|
+
];
|
|
738
|
+
|
|
739
|
+
for (const [stateId, enName, deName] of phTrendStates) {
|
|
740
|
+
await createState(adapter, `chemistry.ph.trend.${stateId}`, {
|
|
741
|
+
name: {
|
|
742
|
+
en: enName,
|
|
743
|
+
de: deName,
|
|
744
|
+
},
|
|
745
|
+
type: 'number',
|
|
746
|
+
role: 'value',
|
|
747
|
+
read: true,
|
|
748
|
+
write: false,
|
|
749
|
+
def: 0,
|
|
750
|
+
persist: true,
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
const phTrendTimeStates = [
|
|
755
|
+
['reference_24h_at', '24h reference time', 'Zeitpunkt des 24h-Referenzwerts'],
|
|
756
|
+
['reference_7d_at', '7 day reference time', 'Zeitpunkt des 7-Tage-Referenzwerts'],
|
|
757
|
+
['reference_30d_at', '30 day reference time', 'Zeitpunkt des 30-Tage-Referenzwerts'],
|
|
758
|
+
];
|
|
759
|
+
|
|
760
|
+
for (const [stateId, enName, deName] of phTrendTimeStates) {
|
|
761
|
+
await createState(adapter, `chemistry.ph.trend.${stateId}`, {
|
|
762
|
+
name: {
|
|
763
|
+
en: enName,
|
|
764
|
+
de: deName,
|
|
765
|
+
},
|
|
766
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
767
|
+
role: 'value.time',
|
|
768
|
+
read: true,
|
|
769
|
+
write: false,
|
|
770
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
771
|
+
persist: true,
|
|
772
|
+
});
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
await createState(adapter, 'chemistry.ph.trend.direction', {
|
|
776
|
+
name: {
|
|
777
|
+
en: 'Trend direction',
|
|
778
|
+
de: 'Trendrichtung',
|
|
779
|
+
},
|
|
780
|
+
desc: {
|
|
781
|
+
en: 'Overall trend direction: stable, rising, falling or not enough data.',
|
|
782
|
+
de: 'Gesamte Trendrichtung: stabil, steigend, fallend oder noch nicht genug Daten.',
|
|
783
|
+
},
|
|
784
|
+
type: 'string',
|
|
785
|
+
role: 'text',
|
|
786
|
+
read: true,
|
|
787
|
+
write: false,
|
|
788
|
+
def: 'not_enough_data',
|
|
789
|
+
persist: true,
|
|
790
|
+
});
|
|
791
|
+
|
|
792
|
+
await createState(adapter, 'chemistry.ph.trend.status', {
|
|
793
|
+
name: {
|
|
794
|
+
en: 'Trend status',
|
|
795
|
+
de: 'Trendstatus',
|
|
796
|
+
},
|
|
797
|
+
desc: {
|
|
798
|
+
en: 'Readable status of the pH trend development.',
|
|
799
|
+
de: 'Lesbarer Status der pH-Trendentwicklung.',
|
|
800
|
+
},
|
|
801
|
+
type: 'string',
|
|
802
|
+
role: 'text',
|
|
803
|
+
read: true,
|
|
804
|
+
write: false,
|
|
805
|
+
def: 'not_enough_data',
|
|
806
|
+
persist: true,
|
|
807
|
+
});
|
|
808
|
+
|
|
809
|
+
// -------------------------------------------------------------
|
|
810
|
+
// Outputs
|
|
811
|
+
// -------------------------------------------------------------
|
|
812
|
+
await createChannel(adapter, 'chemistry.ph.outputs', {
|
|
813
|
+
en: 'Outputs',
|
|
814
|
+
de: 'Ausgaben',
|
|
815
|
+
});
|
|
816
|
+
|
|
817
|
+
await createState(adapter, 'chemistry.ph.outputs.summary_text', {
|
|
818
|
+
name: {
|
|
819
|
+
en: 'Summary text',
|
|
820
|
+
de: 'Zusammenfassung Text',
|
|
821
|
+
},
|
|
822
|
+
desc: {
|
|
823
|
+
en: 'Readable pH summary text.',
|
|
824
|
+
de: 'Lesbare pH-Zusammenfassung.',
|
|
825
|
+
},
|
|
826
|
+
type: 'string',
|
|
827
|
+
role: 'text',
|
|
828
|
+
read: true,
|
|
829
|
+
write: false,
|
|
830
|
+
def: '',
|
|
831
|
+
persist: true,
|
|
832
|
+
});
|
|
833
|
+
|
|
834
|
+
await createState(adapter, 'chemistry.ph.outputs.summary_html', {
|
|
835
|
+
name: {
|
|
836
|
+
en: 'Summary HTML',
|
|
837
|
+
de: 'Zusammenfassung HTML',
|
|
838
|
+
},
|
|
839
|
+
desc: {
|
|
840
|
+
en: 'HTML summary for VIS or widgets.',
|
|
841
|
+
de: 'HTML-Zusammenfassung für VIS oder Widgets.',
|
|
842
|
+
},
|
|
843
|
+
type: 'string',
|
|
844
|
+
role: 'html',
|
|
845
|
+
read: true,
|
|
846
|
+
write: false,
|
|
847
|
+
def: '',
|
|
848
|
+
persist: true,
|
|
849
|
+
});
|
|
850
|
+
|
|
851
|
+
await createState(adapter, 'chemistry.ph.outputs.summary_json', {
|
|
852
|
+
name: {
|
|
853
|
+
en: 'Summary JSON',
|
|
854
|
+
de: 'Zusammenfassung JSON',
|
|
855
|
+
},
|
|
856
|
+
desc: {
|
|
857
|
+
en: 'Structured pH summary as JSON.',
|
|
858
|
+
de: 'Strukturierte pH-Zusammenfassung als JSON.',
|
|
859
|
+
},
|
|
860
|
+
type: 'string',
|
|
861
|
+
role: 'json',
|
|
862
|
+
read: true,
|
|
863
|
+
write: false,
|
|
864
|
+
def: '',
|
|
865
|
+
persist: true,
|
|
866
|
+
});
|
|
867
|
+
|
|
654
868
|
// -------------------------------------------------------------
|
|
655
869
|
// Debug
|
|
656
870
|
// -------------------------------------------------------------
|
|
@@ -668,11 +882,11 @@ async function createChemistryPhStates(adapter) {
|
|
|
668
882
|
en: 'Readable timestamp of the last pH evaluation update.',
|
|
669
883
|
de: 'Lesbarer Zeitstempel der letzten pH-Auswertung.',
|
|
670
884
|
},
|
|
671
|
-
type: '
|
|
885
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
672
886
|
role: 'value.time',
|
|
673
887
|
read: true,
|
|
674
888
|
write: false,
|
|
675
|
-
def:
|
|
889
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
676
890
|
persist: true,
|
|
677
891
|
});
|
|
678
892
|
|
|
@@ -211,11 +211,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
211
211
|
en: 'Readable date and time when the last TDS value was received.',
|
|
212
212
|
de: 'Lesbares Datum und Uhrzeit, wann der letzte TDS-Wert empfangen wurde.',
|
|
213
213
|
},
|
|
214
|
-
type: '
|
|
214
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
215
215
|
role: 'value.time',
|
|
216
216
|
read: true,
|
|
217
217
|
write: false,
|
|
218
|
-
def:
|
|
218
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
219
219
|
persist: true,
|
|
220
220
|
});
|
|
221
221
|
|
|
@@ -247,11 +247,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
247
247
|
en: 'Readable date and time of the last valid TDS value.',
|
|
248
248
|
de: 'Lesbares Datum und Uhrzeit des letzten gültigen TDS-Werts.',
|
|
249
249
|
},
|
|
250
|
-
type: '
|
|
250
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
251
251
|
role: 'value.time',
|
|
252
252
|
read: true,
|
|
253
253
|
write: false,
|
|
254
|
-
def:
|
|
254
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
255
255
|
persist: true,
|
|
256
256
|
});
|
|
257
257
|
|
|
@@ -283,11 +283,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
283
283
|
en: 'Readable date and time of the previous valid TDS value.',
|
|
284
284
|
de: 'Lesbares Datum und Uhrzeit des vorherigen gültigen TDS-Werts.',
|
|
285
285
|
},
|
|
286
|
-
type: '
|
|
286
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
287
287
|
role: 'value.time',
|
|
288
288
|
read: true,
|
|
289
289
|
write: false,
|
|
290
|
-
def:
|
|
290
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
291
291
|
persist: true,
|
|
292
292
|
});
|
|
293
293
|
|
|
@@ -480,11 +480,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
480
480
|
en: 'Readable date and time when the initial reference value was set.',
|
|
481
481
|
de: 'Lesbares Datum und Uhrzeit, wann der Referenzwert gesetzt wurde.',
|
|
482
482
|
},
|
|
483
|
-
type: '
|
|
483
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
484
484
|
role: 'value.time',
|
|
485
485
|
read: true,
|
|
486
486
|
write: false,
|
|
487
|
-
def:
|
|
487
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
488
488
|
persist: true,
|
|
489
489
|
});
|
|
490
490
|
|
|
@@ -584,11 +584,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
584
584
|
en: enName,
|
|
585
585
|
de: deName,
|
|
586
586
|
},
|
|
587
|
-
type: '
|
|
587
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
588
588
|
role: 'value.time',
|
|
589
589
|
read: true,
|
|
590
590
|
write: false,
|
|
591
|
-
def:
|
|
591
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
592
592
|
persist: true,
|
|
593
593
|
});
|
|
594
594
|
}
|
|
@@ -767,11 +767,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
767
767
|
en: 'Oldest sample time',
|
|
768
768
|
de: 'Ältester Messwert',
|
|
769
769
|
},
|
|
770
|
-
type: '
|
|
770
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
771
771
|
role: 'value.time',
|
|
772
772
|
read: true,
|
|
773
773
|
write: false,
|
|
774
|
-
def:
|
|
774
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
775
775
|
persist: true,
|
|
776
776
|
});
|
|
777
777
|
|
|
@@ -780,11 +780,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
780
780
|
en: 'Newest sample time',
|
|
781
781
|
de: 'Neuester Messwert',
|
|
782
782
|
},
|
|
783
|
-
type: '
|
|
783
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
784
784
|
role: 'value.time',
|
|
785
785
|
read: true,
|
|
786
786
|
write: false,
|
|
787
|
-
def:
|
|
787
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
788
788
|
persist: true,
|
|
789
789
|
});
|
|
790
790
|
|
|
@@ -860,11 +860,11 @@ async function createChemistryTdsStates(adapter) {
|
|
|
860
860
|
en: 'Last update',
|
|
861
861
|
de: 'Letzte Aktualisierung',
|
|
862
862
|
},
|
|
863
|
-
type: '
|
|
863
|
+
type: 'number', // FIX: ioBroker value.time states must store Unix timestamps in milliseconds.
|
|
864
864
|
role: 'value.time',
|
|
865
865
|
read: true,
|
|
866
866
|
write: false,
|
|
867
|
-
def:
|
|
867
|
+
def: 0, // FIX: numeric timestamp default for value.time.
|
|
868
868
|
persist: true,
|
|
869
869
|
});
|
|
870
870
|
|
package/main.js
CHANGED
|
@@ -30,6 +30,7 @@ const aiForecastHelper = require('./lib/helpers/aiForecastHelper');
|
|
|
30
30
|
const aiChemistryHelpHelper = require('./lib/helpers/aiChemistryHelpHelper');
|
|
31
31
|
const chemistryPhHelper = require('./lib/helpers/chemistryPhHelper');
|
|
32
32
|
const chemistryTdsHelper = require('./lib/helpers/chemistryTdsHelper');
|
|
33
|
+
const chemistryOrpHelper = require('./lib/helpers/chemistryOrpHelper');
|
|
33
34
|
const controlHelper = require('./lib/helpers/controlHelper');
|
|
34
35
|
const controlHelper2 = require('./lib/helpers/controlHelper2');
|
|
35
36
|
const debugLogHelper = require('./lib/helpers/debugLogHelper');
|
|
@@ -63,6 +64,7 @@ const { createAiStates } = require('./lib/stateDefinitions/aiStates'); // NEU: K
|
|
|
63
64
|
const { createAiChemistryHelpStates } = require('./lib/stateDefinitions/aiChemistryHelpStates'); // NEU: KI-Chemie-Hilfe
|
|
64
65
|
const { createChemistryPhStates } = require('./lib/stateDefinitions/chemistryPhStates');
|
|
65
66
|
const { createChemistryTdsStates } = require('./lib/stateDefinitions/chemistryTdsStates');
|
|
67
|
+
const { createChemistryOrpStates } = require('./lib/stateDefinitions/chemistryOrpStates');
|
|
66
68
|
const { createHeatStates } = require('./lib/stateDefinitions/heatStates');
|
|
67
69
|
const { createActuatorsStates } = require('./lib/stateDefinitions/actuatorsStates');
|
|
68
70
|
const { createSolarInsightsStates } = require('./lib/stateDefinitions/solarInsightsStates');
|
|
@@ -172,6 +174,9 @@ class Poolcontrol extends utils.Adapter {
|
|
|
172
174
|
// --- Chemistry / TDS evaluation ---
|
|
173
175
|
await createChemistryTdsStates(this);
|
|
174
176
|
|
|
177
|
+
// --- Chemistry / ORP evaluation ---
|
|
178
|
+
await createChemistryOrpStates(this);
|
|
179
|
+
|
|
175
180
|
// --- Zusatz-Aktoren (Beleuchtung & Zusatzpumpen) ---
|
|
176
181
|
await createActuatorsStates(this);
|
|
177
182
|
|
|
@@ -202,6 +207,7 @@ class Poolcontrol extends utils.Adapter {
|
|
|
202
207
|
aiChemistryHelpHelper.init(this);
|
|
203
208
|
chemistryPhHelper.init(this);
|
|
204
209
|
chemistryTdsHelper.init(this);
|
|
210
|
+
chemistryOrpHelper.init(this);
|
|
205
211
|
frostHelper.init(this);
|
|
206
212
|
statusHelper.init(this);
|
|
207
213
|
infoHelper.init(this);
|
|
@@ -300,6 +306,9 @@ class Poolcontrol extends utils.Adapter {
|
|
|
300
306
|
if (chemistryTdsHelper.cleanup) {
|
|
301
307
|
chemistryTdsHelper.cleanup();
|
|
302
308
|
}
|
|
309
|
+
if (chemistryOrpHelper.cleanup) {
|
|
310
|
+
chemistryOrpHelper.cleanup();
|
|
311
|
+
}
|
|
303
312
|
if (aiChemistryHelpHelper.cleanup) {
|
|
304
313
|
aiChemistryHelpHelper.cleanup();
|
|
305
314
|
}
|
|
@@ -438,6 +447,11 @@ class Poolcontrol extends utils.Adapter {
|
|
|
438
447
|
} catch (e) {
|
|
439
448
|
this.log.warn(`[chemistryTdsHelper] Error in handleStateChange: ${e.message}`);
|
|
440
449
|
}
|
|
450
|
+
try {
|
|
451
|
+
await chemistryOrpHelper.handleStateChange(id, state);
|
|
452
|
+
} catch (e) {
|
|
453
|
+
this.log.warn(`[chemistryOrpHelper] Error in handleStateChange: ${e.message}`);
|
|
454
|
+
}
|
|
441
455
|
try {
|
|
442
456
|
statusHelper.handleStateChange(id, state);
|
|
443
457
|
} catch (e) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.poolcontrol",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.18",
|
|
4
4
|
"description": "Steuerung & Automatisierung für den Pool (Pumpe, Heizung, Ventile, Sensoren).",
|
|
5
5
|
"author": "DasBo1975 <dasbo1975@outlook.de>",
|
|
6
6
|
"homepage": "https://github.com/DasBo1975/ioBroker.poolcontrol",
|