NEWS
[Vorlage] Gartenbewässerung mit 6 Ventilen
-
@Kuddel etwas OT:
Ich passe mir dein Skript immer auf meine Aktoren an (Relais an einem RPI) , wenn ich es mal aktualisiere.
Da das Skript aber sehr groß ist "kämpfe" ich immer mit einem sich aufhängenden Browser um die passenden Blöcke hinzuzufügen bzw. zu ändern.Wie machst du das denn, wenn du in dem Blockly etwas bearbeitest?
Danke & Gruß
-
@kuddel mir ist noch was eingefallen, was im Script an Fehlern war..
Im Bereich Datenpunkt erstellen...
////////////////// // Ventil Namen // ////////////////// if(basic_vars_anzahl_ventile > 0) { // Name Ventil 1 if(basic_vars_anzahl_ventile > 0) { let name_ventil_1 = [[basic_vars_pfad+'.ventile.ventil_1.ventil_1_name', {'name':'ventil_1_name','type':'string','read':true,'write':true,'role':'text','def':basic_vars_kreis1_name}],]; await createUserStates(basic_vars_speicherort, name_ventil_1) aktueller_wert = getState(basic_vars_speicherort + '.' + basic_vars_pfad +'.ventile.ventil_1.ventil_1_name').val; if(aktueller_wert != basic_vars_kreis1_name) {setState(basic_vars_speicherort + '.' + basic_vars_pfad +'.ventile.ventil_1.ventil_1_name', basic_vars_kreis1_name);}; };
so läuft es bei mir auf einen Bug und erstellt die Ventile nicht..
da fehlt das "let" bei "aktueller wert" ...
////////////////// // Ventil Namen // ////////////////// if(basic_vars_anzahl_ventile > 0) { // Name Ventil 1 if(basic_vars_anzahl_ventile > 0) { let name_ventil_1 = [[basic_vars_pfad+'.ventile.ventil_1.ventil_1_name', {'name':'ventil_1_name','type':'string','read':true,'write':true,'role':'text','def':basic_vars_kreis1_name}],]; await createUserStates(basic_vars_speicherort, name_ventil_1) let aktueller_wert = getState(basic_vars_speicherort + '.' + basic_vars_pfad +'.ventile.ventil_1.ventil_1_name').val; if(aktueller_wert != basic_vars_kreis1_name) {setState(basic_vars_speicherort + '.' + basic_vars_pfad +'.ventile.ventil_1.ventil_1_name', basic_vars_kreis1_name);}; };
-
@pasakel ich bearbeite das Skript im Firefox und ja auch bei mir braucht der Brwoser immer ein wenig Bedenkzeit.
@mameier1234 vielen Dank für den Hinweis.
Neue Version kommt sofort
-
Hallo Kuddel, erstmal vielen Dank für dieses umfangreiche und tolle Skript. Ich erweitere es gerade um die Nutzung für die GPIOs eines Raspi, da ich diesen zur Steuerung meiner Ventile verwenden will. Soweit klappt das auch, nur habe ich den Fehler, dass wenn ich Ventil 2 aktiviere (unabhängig von parallelem Betrieb), wird die Zeit dort immer um minus 1 Minute berechnet/gesetzt. Ich verwende noch die Version 4.3.4. Ist das in der aktuellsten Version gefixt oder tritt das bei Dir gar nicht auf? Ich habe schon viel Zeit mit dem Finden des Fehler verbracht, komme aber nicht dahinter. Eventuell hast Du eine Idee woher das kommen kann?
Sobald ich alles sauber am Laufen habe, teile ich meine Version gern. Ergänze das Ganze noch um die Funktion eines sequentiellen Ablaufs, da ich jeden Kanal gerne direkt nacheinander ablaufen lassen möchte.
Danke Dir und Gruß
-
@bjoern-kunder wann genau ist die Berechnung nicht korrekt ?
Wenn man die Bewässerung startet und Ventil 1 nicht aktiviert ist und der Durchlauf direkt mit Ventil 2 anfängt ?
-
@kuddel Es hängt nur an Ventil 2 - alle anderen Ventile funktionieren alleine und in Kombi hinsichtlich der Zeit Berechnung tadellos. Lediglich V2 wird immer mit negativem Vorzeichen berechnet. Die Darstellung in VIS habe ich angehängt.
-
@bjoern-kunder hmm ich kann dein Problem leider nicht nachstellen:
-
@kuddel habe auf die aktuellste Version 4-4-1 umgestellt und nun klappt es mit den Berechnungen. Dafür bekomme ich im Log folgende Meldungen. Eventuell hattest Du das auch schonmal? Ich habe es noch nicht gefunden, wo es hier klemmt.
-
@bjoern-kunder die Timer per Cron konnte nicht korrekt erstellt werden.
Dem Skript fehlt warscheinlich noch irgendweine Info
-
@kuddel vielen Dank - der Hinweis hat geholfen. Nun ist nur noch ein Fehler übrig. Ne Idee?
-
@bjoern-kunder hatte ich auch.
Seit ich den javascript Adaptet aktualisiert habe, ist der Fehler auch weg
-
@kuddel danke probier ich aus
-
@bjoern-kunder es läuft nun so wie es soll...musste noch viel in der VIS nachziehen, da ich javascript anstelle von 0_userdata verwende. Stelle das angepasste Skript (Integration Raspberry GPIOS) gerne zur Verfügung.
-
Guten Tag, ich habe soeben den Admin aktualisiert auf Version 6.2.20 und habe nun folgende Fehlermeldung beim Start des Scriptes:
script.js.Bewässerung.Steuerung_4_4_1 Error by subscription: ID of type boolean or number is not supported.
-
@idefix01 jo den Fehler habe ich auch, aber noch überhaupt keine Lösungsansätze
-
habe gerade dein Script in einer neuen Instanz integriert und erhalte folgenden Fehler:
in meiner alten iobroker Instanz lief alles.
Edit: zu spät den letzen Post gesehen.
-
@benziman jop, den Fehler hab ich auch.
Das Skript funzt aber.
Habe aktuell noch keine Idee, woran das liegt.
-
Hi Kuddel, ich möchte das Skript gerne um eine weitere Möglichkeit ergänzen, dass die einzelnen Ventile an unterschiedlichen Tagen aktiv werden können.
Hierzu habe ich eine zusätzliche Auswahl von Wochentagen ergänzt und möchte die Ventile per zusätzlichem Schalter (WT2) diesen zuweisen.Aktuell habe ich in Block 9 "Wochentage für Cron" entsprechend dupliziert, ebenso bei Block 17 "Ventil Steuerung". Zum Testen habe ich 9.3. "Feste Uhrzeit" so angepasst, dass dort ebenfalls die Einträge für die 2. Wochenreihe ergänzt.
Soweit funktioniert das Skript aber nicht ganz so wie ich es erwarte. Es wird in Abhängigkeit von WT2 entweder in die ursprüngliche Ventil Steuerung oder die Neue gesprungen, was so sein soll. Allerdings laufen die Ventile der ersten Woche immer mit, auch wenn dort kein Haken ist, dafür aber in der 2. Wochenreihe. Dementsprechend läuft natürlich auch die prozentuale Abarbeitung mit.Hast Du eine Idee, wie ich dass sehr elegant implementieren kann?
Danke Dir.
Gruß
-
@bjoern-kunder das einfachste wäre, das Skript einfach 2x zu verwenden.
Dann muss nichts dazu gebastelt werden und man kann unterschiedliche Werktage ansprechen
-
@kuddel - wie ist das mit 2x verwenden zu verstehen? Einfach eine Dublette und dann wie einbinden?