iobroker.sprinklecontrol 0.2.7 → 0.2.8

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.
@@ -12,11 +12,11 @@ let adapter;
12
12
  * @type {{}}
13
13
  */
14
14
  let ObjMessage = {};
15
+
15
16
  /**
16
- * Modul zum versenden von Nachrichten mittels Telegram, E-Mail, Pushover oder WhatsApp
17
- * Der passende Adapter muss installiert sein!
18
- * @param {any} adapter
19
- * @param {object} ObjMessage
17
+ * Modul zum Versenden von Nachrichten mittels Telegram, E-Mail, Pushover oder WhatsApp
18
+ * der passende Adapter muss installiert sein!
19
+ * @type {{onlySendError(): boolean, sendMessage(string): void, initConfigMessage(ioBroker.Adapter): void}}
20
20
  */
21
21
  const sendMessageText = {
22
22
 
@@ -24,7 +24,7 @@ const sendMessageText = {
24
24
  *
25
25
  * @param {ioBroker.Adapter} myAdapter - Kopie von Adapter main.js
26
26
  */
27
- initConfigMessage: (myAdapter) => {
27
+ initConfigMessage (myAdapter) {
28
28
  adapter = myAdapter;
29
29
  switch (adapter.config.notificationsType) {
30
30
  case 'Telegram':
@@ -87,7 +87,7 @@ const sendMessageText = {
87
87
  * send Message ist für Telegram formatiert und muss für andere Empfänger umformatiert werden
88
88
  *@param {string} message - Botschaft
89
89
  */
90
- sendMessage: (message) => {
90
+ sendMessage (message) {
91
91
 
92
92
  let sendMessage = message;
93
93
 
@@ -98,9 +98,7 @@ const sendMessageText = {
98
98
  ObjMessage.instance !== '' &&
99
99
  ObjMessage.instance !== null &&
100
100
  ObjMessage.instance !== undefined) {
101
- if (adapter.config.debug) {
102
- adapter.log.debug('start sendMessageText per Telegram');
103
- }
101
+ adapter.log.debug('start sendMessageText per Telegram');
104
102
  sendMessage = '<b><u>SprinkleControl:</u></b>\n' + sendMessage;
105
103
  // send Telegram Message
106
104
  if ((ObjMessage.User) && (ObjMessage.User !== 'allTelegramUsers')) {
@@ -128,9 +126,7 @@ const sendMessageText = {
128
126
  ObjMessage.instance !== undefined) {
129
127
  sendMessage = '<b><u>SprinkleControl:</u></b>\n' + sendMessage;
130
128
  sendMessage = sendMessage.replace(/\n/g, '<br />');
131
- if (adapter.config.debug) {
132
- adapter.log.debug('start sendMessageText per E-Mail on used E-Mail-Instance: ${adapter.ObjMessage.instance}');
133
- }
129
+ adapter.log.debug(`start sendMessageText per E-Mail on used E-Mail-Instance: ${ObjMessage.instance}`);
134
130
  // Send E-Mail Message
135
131
  adapter.sendTo(ObjMessage.instance, 'send', {
136
132
  html: sendMessage,
@@ -147,9 +143,7 @@ const sendMessageText = {
147
143
  ObjMessage.instance !== '' &&
148
144
  ObjMessage.instance !== null &&
149
145
  ObjMessage.instance !== undefined) {
150
- if (adapter.config.debug) {
151
- adapter.log.debug('start sendMessageText per E-Mail on used E-Mail-Instance: ${adapter.ObjMessage.instance}');
152
- }
146
+ adapter.log.debug(`start sendMessageText per E-Mail on used E-Mail-Instance: ${ObjMessage.instance}`);
153
147
  // Send pushover Message
154
148
  if (ObjMessage.SilentNotice === 'true' || ObjMessage.SilentNotice === true) {
155
149
  adapter.sendTo(ObjMessage.instance, 'send', {
@@ -181,9 +175,7 @@ const sendMessageText = {
181
175
  sendMessage = sendMessage.replace(/<b>|<\/b>/g, '*'); // Fett Bold
182
176
  sendMessage = sendMessage.replace(/<i>|<\/i>/g, '_'); // kursive Italic
183
177
  sendMessage = sendMessage.replace(/<u>|<\/u>/g, ''); // unterstrichen
184
- if (adapter.config.debug) {
185
- adapter.log.debug(`start sendMessageText per WhatsApp on used WhatsApp-Instance: ${ObjMessage.instance}`);
186
- }
178
+ adapter.log.debug(`start sendMessageText per WhatsApp on used WhatsApp-Instance: ${ObjMessage.instance}`);
187
179
  // Send WhatsApp Message
188
180
  adapter.sendTo(ObjMessage.instance, 'send', {
189
181
  text: sendMessage
@@ -198,7 +190,7 @@ const sendMessageText = {
198
190
  * Nachrichtenversandabfrage => true (Ja)
199
191
  * @returns {boolean}
200
192
  */
201
- onlySendError: () => {
193
+ onlySendError () {
202
194
  return (adapter.config.notificationEnabled && adapter.config.notificationsType && ObjMessage.onlyError);
203
195
  }
204
196
 
@@ -16,7 +16,7 @@ let adapter;
16
16
 
17
17
  /**
18
18
  * Thread-list
19
- * => Auflistung aller aktiver Sprenger-Kreise
19
+ * Auflistung aller aktiver Sprenger-Kreise
20
20
  * @type {array}
21
21
  */
22
22
  const threadList = [];
@@ -62,7 +62,7 @@ const currentPumpUse = {
62
62
 
63
63
  /**
64
64
  * Sprinkle (sprinkleName) delete
65
- * => Ventil (sprinkleName) löschen
65
+ * Ventil (sprinkleName) löschen
66
66
  * @param {array.<{sprinkleName: string}>} killList
67
67
  */
68
68
  function delList (killList) {
@@ -81,9 +81,7 @@ function delList (killList) {
81
81
  /* If a valve is found, delete the last array (entry). Wenn Ventil gefunden letzten Array (Auftrag) löschen */
82
82
  if (bValveFound) {
83
83
  threadList.pop();
84
- if (adapter.config.debug) {
85
- adapter.log.info('#2.10 order deleted ID: ' + sprinkleName + ' ( rest orders: ' + threadList.length + ')');
86
- }
84
+ adapter.log.debug(`delList=> order deleted ID: ${sprinkleName} ( rest orders: ${threadList.length} )`);
87
85
  }
88
86
  }
89
87
 
@@ -152,7 +150,7 @@ function boostList (sprinkleID) {
152
150
 
153
151
  /**
154
152
  * If boostOn is ended by entering "runningTime = 0", normal operation should be restored. (Delete timer)
155
- * => Wenn boostOn über die Eingabe "runningTime = 0" beendet wird, so soll zum Normalen ablauf wieder zurückgekehrt werden. (Löschen der Timer)
153
+ * Wenn boostOn über die Eingabe "runningTime = 0" beendet wird, so soll zum Normalen ablauf wieder zurückgekehrt werden. (Löschen der Timer)
156
154
  * @param {number} sprinkleID
157
155
  */
158
156
  function boostKill (sprinkleID) {
@@ -170,9 +168,7 @@ function boostKill (sprinkleID) {
170
168
  if (entry.times.boostTime1) {
171
169
  clearTimeout(entry.times.boostTime1);
172
170
  entry.times.boostTime1 = null;
173
- if (adapter.config.debug) {
174
- adapter.log.info('#2.11 ID: ' + entry.sprinkleName + ' => boostTime2 (Ende) gelöscht)');
175
- }
171
+ adapter.log.debug(`boostKill => ID: ${entry.sprinkleName} => boostTime2 (Ende) gelöscht)`);
176
172
  }
177
173
  if (entry.times.boostTime2) {
178
174
  clearTimeout(entry.times.boostTime2);
@@ -207,14 +203,14 @@ const valveDelay = () => {
207
203
  * @returns {Promise<void>}
208
204
  */
209
205
  const switchTheValvesOffOn = async (threadList, parallel) => {
210
- /**Sammlung von .sprinkleName die am Ende von updateList gelöscht werden
206
+ /**Sammlung von.sprinkleName die am Ende von updateList gelöscht werden
211
207
  * @type {array} - */
212
208
  const killList = [];
213
209
  for (const entry of threadList) { // ausschalten der Ventile
214
- if ((!entry.enabled // ( Ventile ausgeschaltet z.B. Intervall-Beregnung
210
+ if ((!entry.enabled // Ventile ausgeschaltet z.B. Intervall-Beregnung
215
211
  || entry.enabled && entry.myBreak // || in Pause z.B. Boost
216
- || entry.killSprinkle) // || Bewässerung erledigt )
217
- && entry.enabled !== entry.enabledState // && Ventil nicht aktuell
212
+ || entry.killSprinkle) // || Bewässerung erledigt
213
+ && entry.enabled !== entry.enabledState // && Ventil nicht aktuell
218
214
  ) {
219
215
  adapter.setForeignState(entry.idState, {
220
216
  val: false,
@@ -223,11 +219,11 @@ const switchTheValvesOffOn = async (threadList, parallel) => {
223
219
  if (err) {
224
220
  return err;
225
221
  } else {
226
- adapter.log.info('#2.06 Set (' + myConfig.config[entry.sprinkleID].methodControlSM + ') ID: ' + entry.sprinkleName + ', value: ' + entry.enabled);
222
+ adapter.log.info(`Set (${myConfig.config[entry.sprinkleID].methodControlSM}) ID: ${entry.sprinkleName}, value: ${entry.enabled}`);
227
223
  }
228
224
  });
229
225
  entry.enabledState = entry.enabled;
230
- /* Ventil aus threadList löschen => Aufgabe beendet und sind nicht in der Pause */
226
+ /* Ventil aus threadList löschen Aufgabe beendet und sind nicht in der Pause */
231
227
  if (entry.killSprinkle) {
232
228
  killList.push(entry.sprinkleName);
233
229
  }
@@ -257,7 +253,7 @@ const switchTheValvesOffOn = async (threadList, parallel) => {
257
253
  if (err) {
258
254
  return err;
259
255
  } else {
260
- adapter.log.info('#2.05 Set (' + myConfig.config[entry.sprinkleID].methodControlSM + ') ID: ' + entry.sprinkleName + ', value: ' + entry.enabled + ', duration: '+ addTime(entry.wateringTime,''));
256
+ adapter.log.info(`Valve => Set (${myConfig.config[entry.sprinkleID].methodControlSM}) ID: ${entry.sprinkleName}, value: ${entry.enabled}, duration: ${addTime(entry.wateringTime,'')}`);
261
257
  }
262
258
  });
263
259
  entry.enabledState = entry.enabled;
@@ -326,7 +322,7 @@ function updateList () {
326
322
  && (!entry.calcOn // Vergleich nur bei Berechnung der Verdunstung
327
323
  || !entry.autoOn // Vergleich nur bei Automatik
328
324
  || (myConfig.config[entry.sprinkleID].soilMoisture.val < myConfig.config[entry.sprinkleID].soilMoisture.maxIrrigation)) // Bodenfeuchte noch nicht erreicht? (z.B. beim Regen)
329
- ) { /* zeit läuft */
325
+ ) { /* Zeit läuft */
330
326
  adapter.setState('sprinkle.' + entry.sprinkleName + '.countdown', {
331
327
  val: addTime(entry.wateringTime - entry.count, ''),
332
328
  ack: true
@@ -374,7 +370,7 @@ function updateList () {
374
370
  ack: true
375
371
  });
376
372
 
377
- /* Wenn in der Konfiguration Bodenfeuchte = 100% gesetzt ist und Auto-Bewässerung aktive, dann Bodenfeuchte = 100% setzen*/
373
+ /* Wenn in der Konfiguration Bodenfeuchte = 100 % gesetzt ist und Auto-Bewässerung aktive, dann Bodenfeuchte = 100 % setzen*/
378
374
  if (entry.autoOn && entry.calcOn && myConfig.config[entry.sprinkleID].endIrrigation) {
379
375
  myConfig.setSoilMoistPct100(entry.sprinkleID);
380
376
  }
@@ -384,15 +380,13 @@ function updateList () {
384
380
  if (myConfig.config[entry.sprinkleID].booster) {
385
381
  if (boostOn) {boostKill(entry.sprinkleID);}
386
382
  boostReady = true;
387
- if (adapter.config.debug) {
388
- adapter.log.info('#2.12 ID: ' + entry.sprinkleName + 'UpdateList Sprinkle Off: boostReady = ' + boostReady);
389
- }
383
+ adapter.log.debug(`ID: ${entry.sprinkleName}UpdateList Sprinkle Off: boostReady = ${boostReady}`);
390
384
  }
391
385
  /* Zeiten löschen */
392
386
  clearInterval(entry.countdown);
393
387
  /*clearTimeout(entry.onOffTimeoutOn);*/
394
388
  clearTimeout(entry.onOffTimeoutOff);
395
- /* Ventil aus threadList löschen => Aufgabe beendet */
389
+ /* Ventil aus threadList löschen Aufgabe beendet */
396
390
  //delList(entry.sprinkleName);
397
391
  entry.killSprinkle = true;
398
392
  updateList();
@@ -408,7 +402,7 @@ function updateList () {
408
402
  }
409
403
 
410
404
  if (curFlow < 0) {
411
- /* - wenn beim Umschalten der Pumpen die Förderleistung zu gering => Ventile deaktivieren - */
405
+ /* - wenn beim Umschalten der Pumpen die Förderleistung zu gering Ventile deaktivieren - */
412
406
  // aufsteigend sortieren nach der Verbrauchsmenge
413
407
  threadList.sort(mySortAscending);
414
408
 
@@ -427,7 +421,7 @@ function updateList () {
427
421
  ack: true
428
422
  });
429
423
  // valveOnOff(entry, false, '#2.6 Set: wait, ID: ');
430
- adapter.log.info('#2.07 Set ID: ' + entry.sprinkleName + ' Pump delivery rate too low, wait! curFlow ' + curFlow + ' parallel: ' + parallel);
424
+ adapter.log.info(`Set ID: ${entry.sprinkleName} Pump delivery rate too low, wait! curFlow ${curFlow} parallel: ${parallel}`);
431
425
  }
432
426
  }
433
427
  }
@@ -447,9 +441,7 @@ function updateList () {
447
441
  entry.enabled = true; // einschalten merken
448
442
  if (myConfig.config[entry.sprinkleID].booster) {
449
443
  boostReady = false;
450
- if (adapter.config.debug) {
451
- adapter.log.info('#2.13 ID: ' + entry.sprinkleName + 'UpdateList sprinkle On: boostReady = ' + boostReady);
452
- }
444
+ adapter.log.debug(`ID: ${entry.sprinkleName}UpdateList sprinkle On: boostReady = ${boostReady}`);
453
445
  setTimeout(() => {
454
446
  boostList(entry.sprinkleID);
455
447
  }, 50);
@@ -484,7 +476,7 @@ function updateList () {
484
476
 
485
477
  switchTheValvesOffOn(threadList, parallel).then(err => {
486
478
  if (err) {
487
- adapter.log.error('#Error - Set (false) err: ' + err);
479
+ adapter.log.error('Error - Set (false) err: ' + err);
488
480
  sendMessageText.sendMessage('Error - Set (fase) err: ' + err);
489
481
  }
490
482
  });
@@ -494,11 +486,11 @@ function updateList () {
494
486
 
495
487
  /**
496
488
  * +++++ Set the current pump for irrigation +++++
497
- * => Festlegen der aktuellen Pumpe zur Bewässerung
489
+ * Festlegen der aktuellen Pumpe zur Bewässerung
498
490
  */
499
491
  function setActualPump () {
500
492
  if (adapter.config.cisternSettings === true) {
501
- /* Zisternen-Bewässerung Einstellung in der config (2.Pumpe) aktiviert */
493
+ /* Zisternen-Bewässerung Einstellung in der config (2. Pumpe) aktiviert */
502
494
  if (currentPumpUse.enable === true) {
503
495
  /* Bewässerungspumpen aktiv */
504
496
  if ((fillLevelCistern < parseFloat(adapter.config.triggerMinCisternLevel)) && (currentPumpUse.pumpCistern === true)) {
@@ -514,7 +506,7 @@ function setActualPump () {
514
506
  val: true,
515
507
  ack: false
516
508
  }); // Hauptpumpe Ein
517
- adapter.log.info('#2.08 Pump change (cistern empty) Cistern pump off => main pump on');
509
+ adapter.log.info('Pump change (cistern empty) Cistern pump off => main pump on');
518
510
  updateList(); // Wasserverbrauch an Pumpenleistung anpassen
519
511
  }
520
512
  if (fillLevelCistern < parseFloat(adapter.config.triggerMinCisternLevel)) {
@@ -584,7 +576,7 @@ function setPumpOnOff(pumpOnOff) {
584
576
  ack: false
585
577
  });
586
578
  currentPumpUse.enable = true;
587
- adapter.log.info('#2.01 Set pump on');
579
+ adapter.log.info('Set pump on');
588
580
  }
589
581
  } else {
590
582
  if (state.val !== false) {
@@ -593,11 +585,11 @@ function setPumpOnOff(pumpOnOff) {
593
585
  ack: false
594
586
  });
595
587
  currentPumpUse.enable = false;
596
- adapter.log.info('#2.02 Set pump off');
588
+ adapter.log.info('Set pump off');
597
589
  }
598
590
  }
599
591
  } else if (err) {
600
- adapter.log.error('#2.17 triggerMainPump ' + currentPumpUse.pumpName + ' is not available (ist nicht erreichbar): ' + err);
592
+ adapter.log.error(`triggerMainPump ${currentPumpUse.pumpName} is not available (ist nicht erreichbar): ${err}`);
601
593
  }
602
594
  });
603
595
  }
@@ -618,7 +610,7 @@ function setVoltageOnOff(voltageOnOff) {
618
610
  val: true,
619
611
  ack: false
620
612
  });
621
- adapter.log.info('#2.03 Set voltage on');
613
+ adapter.log.info('Set voltage on');
622
614
  }
623
615
  } else {
624
616
  if (state.val !== false) {
@@ -626,11 +618,11 @@ function setVoltageOnOff(voltageOnOff) {
626
618
  val: false ,
627
619
  ack: false
628
620
  });
629
- adapter.log.info('#2.04 Set voltage off');
621
+ adapter.log.info('Set voltage off');
630
622
  }
631
623
  }
632
624
  } else if (err) {
633
- adapter.log.error('#2.13 triggerControlVoltage is not available (ist nicht erreichbar): ' + err);
625
+ adapter.log.error('triggerControlVoltage is not available (ist nicht erreichbar): ' + err);
634
626
  }
635
627
  });
636
628
  }
@@ -678,8 +670,8 @@ function addConsumedAndTime(entry) {
678
670
  /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
679
671
 
680
672
  /**
681
- *
682
- * @type {{clearEntireList: valveControl.clearEntireList, initValveControl: valveControl.initValveControl, setFillLevelCistern: valveControl.setFillLevelCistern, addList: valveControl.addList}}
673
+ * -- externe Funktionen -> initValveControl - addList - clearEntireList - setFillLevelCistern --
674
+ * @type {{clearEntireList(): void, initValveControl(ioBroker.Adapter): void, setFillLevelCistern(number): void, addList(Array<{auto: Boolean, sprinkleID: Number, wateringTime: Number}>): void}}
683
675
  */
684
676
  const valveControl = {
685
677
  /**
@@ -687,7 +679,7 @@ const valveControl = {
687
679
  * => Initialisieren Sie die Startkonfiguration von ventilControl
688
680
  * @param {ioBroker.Adapter} myAdapter
689
681
  */
690
- initValveControl: (myAdapter) => {
682
+ initValveControl (myAdapter) {
691
683
  adapter = adapter || myAdapter;
692
684
  currentPumpUse.pumpCistern = false;
693
685
  currentPumpUse.pumpName = adapter.config.triggerMainPump || '';
@@ -703,7 +695,7 @@ const valveControl = {
703
695
  val: 0 + ' : ' + adapter.config.maximumParallelValves,
704
696
  ack: true
705
697
  });
706
- /* Pumpe ausschalter wenn vorhanden */
698
+ /* Pumpe ausschalter, wenn vorhanden */
707
699
  if (adapter.config.triggerMainPump !== '') {
708
700
  adapter.getState('adapter.config.triggerMainPump', (err, state) => {
709
701
  if (state) {
@@ -714,7 +706,7 @@ const valveControl = {
714
706
  }
715
707
  });
716
708
  }
717
- /* Pumpe (Zisterne) ausschalter wenn vorhanden */
709
+ /* Pumpe (Zisterne) ausschalter, wenn vorhanden */
718
710
  if (adapter.config.triggerCisternPump !== '') {
719
711
  adapter.getState('adapter.config.triggerCisternPump', (err, state) => {
720
712
  if (state) {
@@ -728,7 +720,7 @@ const valveControl = {
728
720
  /* alle Ventile (.name = "hm-rpc.0.MEQ1234567.3.STATE") in einem definierten Zustand (false) versetzen*/
729
721
  const result = adapter.config.events;
730
722
  if (result) {
731
- for(const res of result) {
723
+ for (const res of result) {
732
724
  adapter.getState(res.name, (err, state) => {
733
725
  if (state) {
734
726
  adapter.setState(res.name, {
@@ -743,19 +735,19 @@ const valveControl = {
743
735
 
744
736
  /**
745
737
  * Add Sprinkle
746
- * => Sprinkle hinzufügen
747
- * - auto => Automatik == (true), Handbetrieb == (false)
748
- * - sprinkleID => zugriff auf myConfig.config[sprinkleID].???
749
- * - wateringTime => Bewässerungszeit in min
738
+ * Sprinkle hinzufügen
739
+ * - auto Automatik == (true), Handbetrieb == (false)
740
+ * - sprinkleID zugriff auf myConfig.config[sprinkleID]. xyz
741
+ * - wateringTime Bewässerungszeit in min
750
742
  * @param {Array.<{auto: Boolean, sprinkleID: Number, wateringTime: Number}>} sprinkleList
751
743
  */
752
- addList: (sprinkleList) => {
744
+ addList (sprinkleList) {
753
745
  //
754
746
  for (const res of sprinkleList) {
755
747
  const sprinkleName = myConfig.config[res.sprinkleID].objectName;
756
748
  /**
757
749
  * add done
758
- * => hinzufügen erledigt (Sprenger bereits aktive)
750
+ * hinzufügen erledigt (Sprenger bereits aktive)
759
751
  * @type {boolean}
760
752
  */
761
753
  let addDone = false;
@@ -774,9 +766,7 @@ const valveControl = {
774
766
  ack: false
775
767
  });
776
768
  addDone = true; // Sprinkle found
777
- if (adapter.config.debug) {
778
- adapter.log.info('#2.14 update ID: ' + entry.sprinkleName + ' new time: ' + addTime(res.wateringTime, ''));
779
- }
769
+ adapter.log.debug(`update ID: ${entry.sprinkleName} new time: ${addTime(res.wateringTime, '')}`);
780
770
  break;
781
771
  }
782
772
  }
@@ -821,9 +811,7 @@ const valveControl = {
821
811
  val: addTime(res.wateringTime, ''),
822
812
  ack: false
823
813
  });
824
- if (adapter.config.debug) {
825
- adapter.log.info('#2.15 ID: ' + sprinkleName + 'new order created: ' + JSON.stringify(threadList[newThread.id]));
826
- }
814
+ adapter.log.debug(`ID: ${sprinkleName} new order created: ${JSON.stringify(threadList[newThread.id])}`);
827
815
  }
828
816
  }
829
817
  updateList();
@@ -833,7 +821,7 @@ const valveControl = {
833
821
  * switch off all devices, when close the adapter
834
822
  * => Beim Beenden des adapters alles ausschalten
835
823
  */
836
- clearEntireList: () => {
824
+ clearEntireList () {
837
825
  if (boostListTimer) {
838
826
  clearTimeout(boostListTimer);
839
827
  }
@@ -873,9 +861,7 @@ const valveControl = {
873
861
  entry.times.boostTime2 = null;
874
862
  }
875
863
  threadList.pop();
876
- if (adapter.config.debug) {
877
- adapter.log.info('#2.16 order deleted Stop all ID: ' + entry.sprinkleName + ' ( rest orders: ' + threadList.length + ')');
878
- }
864
+ adapter.log.debug(`order deleted Stop all ID: ${entry.sprinkleName} ( rest orders: ${threadList.length} )`);
879
865
  }
880
866
  updateList();
881
867
  }, // End clearEntireList
@@ -884,11 +870,11 @@ const valveControl = {
884
870
  * Änderungen des Füllstands setzen + Vorrang der Pumpe setzen
885
871
  * @param {number} levelCistern
886
872
  */
887
- setFillLevelCistern: (levelCistern) => {
873
+ setFillLevelCistern (levelCistern) {
888
874
  fillLevelCistern = (typeof levelCistern === 'number') ? levelCistern : 0 ;
889
875
  setActualPump();
890
876
  } // End setFillLevelCistern
891
- }; // End valveControl
877
+ } // End valveControl
892
878
 
893
879
  /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
894
880