NEWS
[Vorlage] Gartenbewässerung mit 6 Ventilen
-
Hallo verzeihung für meine späte Antwort aber ich glaube ich habe den Fehler gefunden.
Wetterdaten verwenden war auf falsch gesetzt. -
Vielen Dank für deine super Arbeit !
Geniales Skript + Visualisierung.Ich hab beides seit ein paar Tagen bei mir erfolgreich in Betrieb.
Ich nutze aktuell allerdings noch keine Automatik Funktion, sondern starte manuell per VIS.Die Kreise bewässern schön alle nacheinander für 10min wie eingestellt...
Heute hatte ich allerdings ein Problem und hatte Glück das ich zu Hause war.
Hab die Bewässerung manuell per VIS gestartet wie immer. Hat auch gestartet wie gewünscht.
Nach einer knappen Stunde hab ich zufällig wieder einen Blick drauf geworfen und gemerkt, dass das letzte Ventil immer noch bewässert und nicht wie eingestellt nach 10min wieder gestoppt hat.
Dazu kommt noch, dass er trotzdem ein Mail verschickt hat mit "Gartenbewaesserung beendet" ...
Gut dass ich zu Hause war...
Außer einigen Pfützen im Rasen und der Wasserverschwendung Gott sei Dank nicht mehr passiert...Ein Blick im Log zeigt folgende Warnungen:
javascript.0 2021-06-07 13:40:33.739 info (5820) script.js.Bewässerung.Bewässerung_V1: Bewaesserung: Vorgang beendet javascript.0 2021-06-07 13:40:33.739 warn (5820) at process.topLevelDomainCallback (domain.js:126:23) javascript.0 2021-06-07 13:40:33.739 warn (5820) at processImmediate (timers.js:658:5) javascript.0 2021-06-07 13:40:33.739 warn (5820) at tryOnImmediate (timers.js:676:5) javascript.0 2021-06-07 13:40:33.739 warn (5820) at runCallback (timers.js:705:18) javascript.0 2021-06-07 13:40:33.739 warn (5820) at Immediate.setImmediate (C:\iobroker\iob01\node_modules\iobroker.js-controller\lib\adapter.js:5555:41) javascript.0 2021-06-07 13:40:33.739 warn (5820) at Object.stateChange (C:\iobroker\iob01\node_modules\iobroker.javascript\main.js:502:29) javascript.0 2021-06-07 13:40:33.739 warn (5820) at Object.callback (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1075:38) javascript.0 2021-06-07 13:40:33.739 warn (5820) at Object.<anonymous> (script.js.Bewässerung.Bewässerung_V1:1830:13) javascript.0 2021-06-07 13:40:33.739 warn (5820) at setStateDelayed (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1471:25) javascript.0 2021-06-07 13:40:33.739 warn (5820) at Object.setState (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1427:20) javascript.0 2021-06-07 13:40:33.739 warn (5820) State "hm-rpc.0.MEQ1534614.18.ON_TIME" not found javascript.0 2021-06-07 13:30:32.635 info (5820) script.js.Bewässerung.Bewässerung_V1: Bewaesserung: Ventil 2 - Pool aktiv javascript.0 2021-06-07 13:30:31.801 warn (5820) at process.topLevelDomainCallback (domain.js:126:23) javascript.0 2021-06-07 13:30:31.801 warn (5820) at processImmediate (timers.js:658:5) javascript.0 2021-06-07 13:30:31.801 warn (5820) at tryOnImmediate (timers.js:676:5) javascript.0 2021-06-07 13:30:31.801 warn (5820) at runCallback (timers.js:705:18) javascript.0 2021-06-07 13:30:31.801 warn (5820) at Immediate.setImmediate (C:\iobroker\iob01\node_modules\iobroker.js-controller\lib\adapter.js:5555:41) javascript.0 2021-06-07 13:30:31.801 warn (5820) at Object.stateChange (C:\iobroker\iob01\node_modules\iobroker.javascript\main.js:502:29) javascript.0 2021-06-07 13:30:31.801 warn (5820) at Object.callback (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1075:38) javascript.0 2021-06-07 13:30:31.801 warn (5820) at Object.<anonymous> (script.js.Bewässerung.Bewässerung_V1:1804:13) javascript.0 2021-06-07 13:30:31.801 warn (5820) at setStateDelayed (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1471:25) javascript.0 2021-06-07 13:30:31.801 warn (5820) at Object.setState (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1427:20) javascript.0 2021-06-07 13:30:31.801 warn (5820) State "hm-rpc.0.MEQ1534614.17.ON_TIME" not found javascript.0 2021-06-07 13:30:30.800 warn (5820) at process.topLevelDomainCallback (domain.js:126:23) javascript.0 2021-06-07 13:30:30.800 warn (5820) at processImmediate (timers.js:658:5) javascript.0 2021-06-07 13:30:30.800 warn (5820) at tryOnImmediate (timers.js:676:5) javascript.0 2021-06-07 13:30:30.800 warn (5820) at runCallback (timers.js:705:18) javascript.0 2021-06-07 13:30:30.800 warn (5820) at Immediate.setImmediate (C:\iobroker\iob01\node_modules\iobroker.js-controller\lib\adapter.js:5555:41) javascript.0 2021-06-07 13:30:30.800 warn (5820) at Object.stateChange (C:\iobroker\iob01\node_modules\iobroker.javascript\main.js:502:29) javascript.0 2021-06-07 13:30:30.800 warn (5820) at Object.callback (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1075:38) javascript.0 2021-06-07 13:30:30.800 warn (5820) at Object.<anonymous> (script.js.Bewässerung.Bewässerung_V1:1804:13) javascript.0 2021-06-07 13:30:30.800 warn (5820) at setStateDelayed (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1471:25) javascript.0 2021-06-07 13:30:30.800 warn (5820) at Object.setState (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1427:20) javascript.0 2021-06-07 13:30:30.800 warn (5820) State "hm-rpc.0.MEQ1534614.17.ON_TIME" not found
Kannst du dir auf die Warnungen einen Reim machen wo hier das Problem gelegen hat ?
Wäre es möglich eine Art Sicherheitscheck einzubauen, der überprüft ob tatsächlich alle Ventile geschlossen sind und erst danach eine Mail verschickt, bzw. falls ein Ventil länger offen ist als eingestellt ein entsprechender Hinweis verschickt wird ?
Beste Grüße
-
@qlink das Skript hatte Probleme beim Setzen der Laufzeit
State "hm-rpc.0.MEQ1534614.17.ON_TIME" not found
Der Datenpunkt ON_TIME wird immer direkt vorm Aktivieren des jweiligen Ventils (des HM Aktors) gesetzt.
Diese schaltet den Aktor für X Minuten ein.
Wäre der Wert korrekt gesetzt worden, dann schaltet der Aktor automatisch aus, egal was das Skript macht. So kann der komplette ioBroker abstürzen, ohne dass die Ventile den Garten fluten.
Du solltest auf jeden Fall mal schauen, ob bei dir die ON_TIME Datenobjekte fehlen.
Die sind wichtig.
Evtl. mal den HM Adapter neu installieren und vorher alle DPs löschen.
So sieht es bei meinen 4CH HM Aktor aus:
EDIT:
Wenn mich nicht alles täuscht ist im Skript sogar ein Check drin. In Block 21 werden noch aktive Ventile ausgeschaltet, wenn die Bewässerung aus ist und die Restzeit 0
-
Hab grad wieder was dazugelernt.
Den ON_TIME Parameter gibt es anscheinend bei Homematic Wired nicht. Den gibts nur bei Homematic Funk...
Da ich Homematic Wired 12/7er Module für meine Magnetventile einsetze... klappts wohl auch deswegen nicht mit dem Sicherheitscheck.
Folgende DPs hab ich zur Verfügung:
Verstehe nur nicht wieso es die letzten 5 Tage normal funktioniert hat ... da war der DP ja auch nicht da... ?
Frage: Hast du eine Idee wie man den Fall Bewässerungsscript + Homematic Wired trotzdem lösen könnte ?
Beste Grüße
-
@qlink da ich selber kein HM-IP Wired habe, konnte ich es nicht testen.
Ist jetzt die Frage, ob HM-IP generell keinen Einschaltdauer kennt. Kann man die Einschaltdauer in der CCU einstellen?
Problematisch ist natürlich jetzt auch, dass man auf Grund der DPs nicht automatisch erkennen kann, dass es sich um HM-IP handelt.
Iwie bekommt das aber sicherlich auch hin.
-
keine Ahnung wie es bei HM-IP oder bei HM-IP-Wired ausschaut, hab ich selber nicht im Einsatz.
Ich hab klassisches HM-Wired bei mir im Einsatz... -
@qlink oh, da habe ich mich vertan.
Naja kommt aufs gleiche raus.
Ohne ON_TIME funzt mein Skript nicht sicher, wie du ja schon festgestellt hast.
Kannst du bei HM-Wired in deiner CCU in einem Testprogramm eine Einschaltdauer definieren?
-
Nein, Einschaltdauer kann ich in einem Programm nicht definieren.
Das einzige was scheinbar möglich ist, ist eine statische Einschaltverzögerung bzw. Ausschaltverzögerung auf eine Direktverknüpfung mit den Magnetventilausgängen ...
-
@qlink ich glaube du bist da falsch unterwegs. Prüfe mal bitte folgendes:
Das ist jetzt Beispielhaft für Kanal 1 von meinem 4CH Aktor.
Wenn du das mit deinen Wired-Aktoren auch machen kannst, dann müssen wir nur schauen, wie wir die fehlenden DPs sichtbar machen können.
-
Nein, das war schon Absicht mit dem Screenshot in den Direktverknüpfungen, da das die einzige Möglichkeit ist bei den 12/7er HM Wired Modulen Verzögerungen im Modul einzubauen.
Wie gesagt bei Programmen habe ich die Auswahlmöglichkeit der Einschaltdauer nicht:
Warum auch immer hat EQ3 das nur bei HM Funk Komponenten umgesetzt, aber nicht bei HM-Wired...
-
@qlink hmm blöd, dann funktioniert meine Skriptlogik leider nicht komplett mit HW Wired.
Leider kann man anhand der DPs auch nicht erkennen, dass es sich um HM Wired handelt, da ich keinen Check drin habe, der die prüft, ob die DPs ON_TIME vorhanden sind
-
Könntest du dein Script entsprechend erweitern, dass da z.B. ein Check durchgeführt wird ob HM oder HM-Wired Aktoren verwendet werden und falls HM-Wired dann die ON_TIME Logik nicht verwendet wird... ?
-
@qlink aktuell fehler mit der Ansatz, wie ich per Blockly prüfen kann, ob die ON_TIME DPs vorhanden sind.
Man könnte es natürlich am Anfang mit angeben.
HM-Tp = Wired
Aber eine automatische Erkennung wäre natürlich schöner. Ich muss da nochmal bisschen testen
-
Alles klar danke.
Ich vermute die Anpassungen im Script werden aber ein Weilchen dauern oder ?
Weil dann muss ich mir für unseren Urlaub in einer Woche etwas einfallen lassen, da ich mich aktuell auf das Script nicht verlassen kann ...Eine andere Frage hätte ich noch.
Ich hab gestern in vis ein paar Größen der Widgets etc. angepasst und jetzt stimmt auf einmal die Anzeige im vis Editor nicht mehr mit der vis runtime überein.
Im Editor werden mir noch alle Elemente angezeigt wie es eigentlich sein sollte, aber in der vis runtime fehlt z.B. das Log Element oder das Ventil 1 Element:
Editor:
Runtime:
Hab auch schon probiert die Bewässerungs 5200 view zu löschen und komplett neu zu importieren, aber ohne Erfolg.
Hätte schon alle Einstellungen durchgesucht, finde aber den Fehler nicht. Wie kann ich Ventil 1 und das Log wieder einblenden bzw. einstellen, dass es angezeigt wird ?Beste Grüße
-
@qlink für das Skript habe ich bzgl. HM-Wired leider noch keinen neuen Ansatz gefunden.
Zur VIS:
Ventil 1 wird angezeigt wenn:
javascript.0.bewaesserung.ventile.anzahl_ventile > 0
Bitte mal den DP prüfen.
Die Log-Seite hat keine Sichtbarkeitssteuerung.
Bitte einmal prüfen, ob auf der Seite 5200_Bewässerung in den einzelnen View in Widget die richtigen seiten Namen hinterlegt sind
-
der DP passt:
auch die Widget Namen sollten passen:
Wenn hier etwas nicht stimmen würde, dann dürfte ich die Widgets auch im Editor nicht sehen oder ?
Mit welcher Funktion in vis hast du denn die einzelnen Widget Views in der 5200 View gesamt verlinkt ?
Bin nicht so der vis Experte. Ich verstehe nicht woher die 5200er View weiß, welche "Unterview" (=z.B. Log) wo angezeigt werden soll ? -
@qlink stimmt, wenn der Editor alles korrekt anzeigt, dann ist der Fehler eher die Runtime.
Mal die Instanz neu gestartet oder einen anderen Brwoeder ausprobiert?
Auf der Seite 5200 ist pro Unterseite jeweils ein Widget, dass die Unerseite anzeigt
-
Bin mittlerweile echt ratlost.
Hab den kompletten iobroker Host neu gestartet.
Hab die 5200er View, sowie die nicht angezeigten Views in der Runtime komplett gelöscht und neu importiert.
Hab den Cache gelöscht, anderen Browser und anderen Client zum Anzeigen probiert.Nichts hilft
Hab keine Idee mehr wo ich noch ansetzen könnte... -
Hallo,
erstmal vielen Dank für das klasse Skript. Es macht genau das, was ich suche.
Im Einsatz: 6 Magnetventile (über 8er relais und nodemcu+Tasmota, Spannungsversorgung manuell über Schalter), 1 Grundwasserpumpe (An/Aus über shelly). Bewässert wird einer nach dem anderen.Nun habe ich 2 Verständnisfragen (getestet mit 3 Ventilen und Version 2.10.4) :
-
Wenn ich in der VIS auf Pause drücke, geht das aktuell offene Magnetventil zu, die Pumpe bleibt an. Soll das so sein? An der Pumpe ist zwar ein Druckschalter, aber eigentlich müsste doch die Pumpe ausgehen (stoppen). Das Ventil kann doch ruhig auf bleiben. Nur die Laufzeit müsste stoppen.
-
Wenn der Gesamt-Vorgang beendet ist, bleibt die Pumpe an.
Bei mir wäre es eigentlich besser (da Druckschalter) das das nächste Ventil eine kurze Zeit (2 sek.?) vor dem Schließen des letzten aufgeht, damit nicht der Druckschalter irrtümlicherweise auslöst. Aber die stelle im Blockly habe ich noch nicht gefunden... Bin da nicht der Experte...
VG
-
-
zu 1.
Die Pause für den Pumpenaktor habe ich bisher einfach nicht berücksichtigt. Werde ich in der nächsten Version einbauen.
Das Ventil geht zu, da meine Pumpe dann ausgeht.Zu 2.
Muss ich prüfen, ob da noch ein Fehler ist
EDIT:
eigentlich müsste der Aktor für die Pumpe am Ende abschalten
Das öffnen des Ventils 2 Sekunden vor dem Schließen des nächsten ist nicht umsetzbar, da ich dann die komplette Logik vom gesammten Skript umbauen müsste.