NEWS
[Vorlage] Gartenbewässerung mit 6 Ventilen
-
@stratos-gkrekidis achja die PW Problematik.
Sorry habe ich ganz vergessen.
Baue ich dann direkt in v3.1.0 mit ein.
Wie besprochen, pro Tasmota Aktor einen User und ein PW.
Die neuen DP-Namen ab Tasmota 9.4.0 habe ich heute in Version 3.0.0 eingebaut
-
@kuddel said in [Vorlage] Gartenbewässerung mit 6 Ventilen:
@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
Hi Kuddel, wegen dem Thema Homematic Wired und keine ON_TIME DPs hätte ich folgenden Beitrag gefunden:
https://forum.iobroker.net/topic/27985/prüfen-ob-datenpunkt-existiert/13
Mit existState kann man anscheinend prüfen, ob ein Datenpunkt vorhanden ist oder nicht und dann entsprechend weitere Schritte setzen...
Wäre das nicht ein Ansatz, wie man automatisch in deinem Script checken kann ob Homematic Funk oder Homematic Wired im Einsatz ist ?
Also, falls ON_TIME DP nicht existiert, dann ...
Bete Grüße
-
@qlink werde ich mir mal anschauen.
Danke
-
@stratos-gkrekidis ich habe jetzt PulseTime für Tasmota bis PulseTime8 berücksichtig für alle Ventil-Aktoren sowie Pumpen-Aktor und Netzteil-Aktor.
Des Weiteren habe ich jetzt die Credentials für Tasmota berücksichtigt
Da ich weder einen Tasmota Aktor mit 8 Kanälen haben, noch eine Anmeldung an meinen Tasmota-Aktoren, wäre es klassen, wenn du die neue Version 3.1.0 einmal testen könntest:
-
@qlink habe mal eben kurz mit einem HomeMatic Heizkörper Aktor geprüft.
Ergenis: "DP nicht vorhanden"
Funzt also.
D.h. ich würde jetzt für jeden Ventil-Aktor prüfen, ob der DP vorhanden ist.
Falls nicht, wird der Typ von "HM" auf "HM-Wired" geändert.Somit wird der Aktor aktiviert und bekommt keine OnTime.
Somit müssten die Fehlermeldungen im Log verschwinden.
Wäre das dann eine Lösung für dein Problem ?
-
Das wäre super und würde mir schonmal gut helfen
Das Thema mit der fehlenden Sicherheitsschicht ohne OnTime beschäftigt mich allerdings noch ...
Die einzige Möglichkeit bei den 12/7er HM Wired Modulen eine ähnliche Sicherheit wie deine OnTime Variante bei der Funk-Version einzubauen wäre die Nutzung von Direktverknüpfungen mit einer fix eingestellten Ausschaltverzögerung.
Dazu könnte ich auf der CCU eine Direktverknüpfung zwischen einem virtuellen Taster (z.B. mit dem Namen "Ventil1_10min") und dem Ausgang an dem das Ventil angeschlossen ist erstellen. Bei dieser DV stelle ich in der CCU eine fixe Ausschaltverzögerung von 10min ein.
Wäre es möglich dein Skript so zu erweitern, dass man, falls die Prüfung HM-Wired ergibt, die Möglichkeit hat, alternativ zu den normalen Ventil Aktoren States, die States dieser virtuellen Taster angibt ?
In der VIS müsste man natürlich die gleichwertige Dauer der Bewässerung trotzdem angeben, damit die % Anzeigen, die Bewässerungsmengen etc. stimmen ...
Damit wäre dein Script bei HM-Wired zwar nicht mehr ganz so komfortabel, aber zumindest genauso sicher wie bei Einsatz von HM-Funk... sprich die Ventile würde fix nach 10min schließen, auch wenn in der Zwischenzeit iobroker aus irgendeinem Grund nicht mehr erreichbar wäre.
Beste Grüße
-
@qlink sollte es nicht funktionieren, wenn du als Aktor nich den HM-Wired Aktor, sondern direkt den virtuellen Taster hinterlegst ?
Dann schaltet das Skript den virtuellen Taster ein, und der Taster über die CCU den Aktor
-
Würde das Skript nicht nach Ablauf der 10min wieder eine Aktion bei dem Taster setzen ?
-
Beispiel Laufzeit Ventil 1 = 10 Min
HM-Wired:
Start Bewässerung: Ventil 1 anschalten -> set Aktor true
Ende Laufzeit Ventil 1: Ventil 1 ausschalten -> set Aktor falseWas für ein Typ ist der virtuelle Taster ?
Hat der true / false oder steht der immer auf false und ist nur beim Betätigten true ?Ich bräuchte mal einen Screenshot vom virtuellen Taster
-
in iobroker schaut das so aus
-
@qlink das habe ich befürchtet.
Mein Skript würde aktuell den Aktor starten und beim stoppen den virtuellen Taster noch einmal auslösen.
Ich könnte jetzt natürlich noch eine Falls-Abfrage beim Ausschalten einbauen, dass das Ausschalten nur bei Aktoren ausgeführt wird, die ungleich HM-Wired sind, aber das wäre dann eine absolute Sonderlocke.
Für jeden weiteren User, der HM-Wired Aktoren verwenden will, würde das Skript dann die Aktore nicht mehr abschalten.
Das mit den Virtuellen Tastern funzt also nicht sauber.
-
@kuddel said in [Vorlage] Gartenbewässerung mit 6 Ventilen:
@stratos-gkrekidis ich habe jetzt PulseTime für Tasmota bis PulseTime8 berücksichtig für alle Ventil-Aktoren sowie Pumpen-Aktor und Netzteil-Aktor.
Des Weiteren habe ich jetzt die Credentials für Tasmota berücksichtigt
Da ich weder einen Tasmota Aktor mit 8 Kanälen haben, noch eine Anmeldung an meinen Tasmota-Aktoren, wäre es klassen, wenn du die neue Version 3.1.0 einmal testen könntest:
Hallo @kuddel dein letztes update funktioniert prima.Vielen Dank
-
@kuddel
Hey Kuddel, gibt es auch die Möglichkeit alle 2 oder 3 Tagen automatisch die Bewässerung zu starten?Gruß SiKo
-
@siko du meinst unabhängig von den Wochentagen ?
Ist aktuell nicht berücksichtigt.
Müsste mir Gedanken machen, wie ich den CRON Job bauen, dann könnte ich das implementieren
-
@kuddel
Ja genau. Wenn man feste Tage wählt, egal ob alle 2 oder 3, geht es ja nie auf. Aktuell bewässere ich alle 3 Tage. Ich möchte noch einen Regensensor involvieren. Dann soll z.B. wenn dieser auslöst erst wieder 3 Tage danach bewässert werden. Bin selbst noch am testen, da mein CRON nicht zuverlässig läuft. -
@siko die Tage könnte man in einem DP eintragen und daraus den CRON Job bauen.
Beispiel: alle 3 Tage -> Tage = 3
Der Cron sieht dann so aus:
Er ist dann abhängig vom Kalendertag.
-
@kuddel
hab es aktuell so: Allerdings tut sich nichts -
@kuddel Irgendwie habe ich Probleme beim Script import.
Ist es normal, dass alle Blöcke überlagert sind und ich jetzt versuchen muss diese wieder auseinander zu pflücken? Hast du eine Idee warum die Darstellung ist wie auf dem untenstehenden Bild. Das macht es ungemein schwierig, das Skript auf meine Situation anzupassen.
Vielen Dank und besten Gruß,
Eric -
@estegemann schaue ich mir morgen mal an
-
@kuddel ich habe dein Script Version 3.1.0. das erste Mal getestet
Bevor ich tief ins Detail gehe muss ich erstmal klären ob es überhaupt bei mir funktionieren kann/wird. Du schreibst ja explizit dass es für HM, tasmota und shellys ist.
Deswegen erste Frage: können Aliases benutzt werden? Ich nutze linkeddevices:
Ich könnte auch umstellen, und die direkten DPs von tasmota nehmen, die die Ventile steuern und bei der Gartenpumpe ist ein shelly im Einsatz. Wohingegen das 24V-Netzteil durch eine zigbee Steckdose gesteuert wird (STATE true/false).
Was sind die genauen Anforderungen an die DPs? Ich hätte vermutet ".Power" mit true/false bei den tasmota und "Switch" bei shelly und "STATE" bei HM!?
Vielleicht läuft das Script ja auch schon, nur ich weiß nicht wie ich es testen kann.
Sorry, habe die ersten 12 Seiten nur gelesen... bin dann auf S. 25 gesprungen und paar Seiten gelesen... ist wahrscheinlich schon alles irgendwo beantwortet worden.
3.1.0. ist zwar noch beta, aber paar Tage vorher sah es ähnlich aus mit 2.7.xFehlerlog:
javascript.1 2021-07-07 22:34:06.742 error (24868) script.js.common.Garten.Bewaesserung-Ventile: schedule(cron=32 22 * * ): cannot create schedule javascript.1 2021-07-07 22:34:06.740 error (24868) script.js.common.Garten.Bewaesserung-Ventile: schedule(cron=26 05 * * ): cannot create schedule javascript.1 2021-07-07 22:34:05.679 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "1" javascript.1 2021-07-07 22:34:05.676 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:34:05.675 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:33:41.274 error (24868) script.js.common.Garten.Bewaesserung-Ventile: schedule(cron=32 22 * * ): cannot create schedule javascript.1 2021-07-07 22:33:41.273 error (24868) script.js.common.Garten.Bewaesserung-Ventile: schedule(cron=25 05 * * ): cannot create schedule javascript.1 2021-07-07 22:33:40.176 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:33:40.175 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:33:40.174 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:31:02.068 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:31:02.066 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:31:02.065 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:30:58.195 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:58.189 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:58.188 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:30:56.695 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:56.692 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:56.691 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:30:55.507 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:55.504 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:55.502 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:30:48.957 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:48.956 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:48.955 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:30:20.185 warn (24868) Read-only state "0_userdata.0.Bewaesserung.restlaufzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:20.183 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit_in_sek" has been written without ack-flag with value "0" javascript.1 2021-07-07 22:30:20.182 warn (24868) Read-only state "0_userdata.0.Bewaesserung.ventile.ventil_1.ventil_1_restzeit" has been written without ack-flag with value "0:00" javascript.1 2021-07-07 22:25:58.362 warn (24868) Read-only state "0_userdata.0.Bewaesserung.vis.aktuelle_skript_version" has been written without ack-flag with value "v3.1.0" javascript.1 2021-07-07 22:25:53.196 info (24868) script.js.common.Garten.Bewaesserung-Ventile: registered 0 subscriptions and 0 schedules javascript.1 2021-07-07 22:25:52.708 info (24868) Start javascript script.js.common.Garten.Bewaesserung-Ventile javascript.1 2021-07-07 22:16:13.276 info (24868) Stop script script.js.common.Garten.Bewaesserung-Ventile