NEWS
[Vorlage] Gartenbewässerung mit 6 Ventilen
-
javascript.0 (321) script.js.PRODUKTIV.Garten.Bewaesserung.01_v4-3-3 Error by subscription: ID of type boolean or number is not supported.
Ist dir das schon bekannt? Scheint sich mit dem JS Adapter 5.8.x eingeschlichen zu haben.
-
@darkiop ja die Fehler bekomme ich auch.
Habe aber leider noch überhaupt keinen Ansatz für die Lösung.
Das Skript funktioniert ja trotzdem ^^
-
@kuddel Ja, das kann ich bestätigen
-
@kuddel Hallo Kuddel,
ich habe mich, da ich bisher den "alten" Gartenbewässerungsadapter" eingesetzt habe, aber der ja nicht mehr weiterentwickelt wird heute mal mit deinem Skript auseinandergesetzt...
Mein lieber Schwan !! Respekt!!
Da ich selber die SmartIrigationControl von Gardena einsetze und das bisher ja noch nicht unterstützt wurde.. habe ich das mal eingebaut.
Das sind dann doch schon ein paar.... Änderungen .
Wie sollen wir es denn machen, wenn hier Interesse besteht ? Ich hab auch noch einige andere Fehler mit Datentype usw. gefunden und gefixt. (nur den gerade besprochenen Error by subscription...noch nicht)
Soll ich das Skript erstmal Dir schicken damit du nochmal checken kannst, oder hier reinstellen ?
-
@mameier1234 wow, vielen Dank für die Unterstützung.
Prinzipiell spricht natürlich nichts dagegen die IrrigationControl mit zu unterstützen.
Allerdings bin ich dann bei jeder neuen Version auf Zuarbeit angewiesen, da ich kein Gardena System zum testen habe.
Du kannst die Version hier gerne hochladen, dann schaue ich mir das Ganze mal an.
Wenn möglich, wäre es klasse, wenn noch auflisten könntest, welche Bugs / Fehler du noch bei mir gefunden hast
-
Hauptsächlich ,wenn du die aktive Anzahl an Ventilen zählst.. klappt nicht, da man einen Bool-Wert nicht so in eine Zahl umwandeln kann wie du es machst.. (und du hast es ab dem 2. Ventil ganz vergessen umzuwandeln....)
Ich hoffe das mit dem Upload klappt...
854a8d36-cac3-4ea1-88bb-14514745a4e9-Bewässerung.txt.zip Bewässerung.txt.zip
-
@mameier1234 schaue ich in deiner Version mal besonders drauf. Sollte ja bei die gefixt sein.
Hast du sonst noch Groß etwas geändert, worauf ich besonders achten muss?
-
@kuddel ... ganz ehrlich ? Ich bin den ganzen Tag drann gehängt, bis ich durchgestiegen bin und es bei mir lief.. ich weiss es nicht mehr genau...
Lass es doch durch notepad ++ laufen und schau dir die Diffs an..?
-
@mameier1234 ich vergleiche einfach die blocklys und gut.
Was macht denn die neue Variable "vars_ventil_x_aktor_activity" ?
Die gab's bei mir ja noch nicht
-
@kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:
Was macht denn die neue Variable "vars_ventil_x_aktor_activity" ?
Die gab's bei mir ja noch nicht
Bei Gardena wird nicht ein Aktor von false auf True gesetzt, sondern es wird ein "duration_Value" mit der Laufzeit gesteuert ... oder mit Stop until next Task ... zum beenden...
In dem DP Activity steht dann der Zustand (Closed, opened usw..). Zum Bewässern prüfe ich jetzt, ob der Aktor auf True steht ODER Activity Closed ist, wenn das entsprechende Ventil gestartet werden soll...
-
Guten Abend, mir ist aufgefallen das bei der neuen Version Ventil 5 und 6 noch immer den selben Namen erhalten. Ventil 5 hat den Namen von Ventil 6
-
@idefix01 Ja.. das ist mir heute auch aufgefallen... ich dachte schon ich habe nen Fehler gemacht..
-
@idefix01 @mameier1234 , hmm ich dachte eigentlich, dass der Fehler weg ist
Dann muss ich morgen wohl wieder testen. Verdammt ^^
-
hab ihn gefunden...
Linke Seite .. im Block Ventile ganz unten.. Ventil 6 , da wird der Variable Ventil5-Name zugewiesen...
-
@mameier1234 ah super, danke.
Das ist der große Nachteil von Blockly, man verklickt sich sehr schnell, wenn man mit Variablen arbeitet, nur in Javascript hätte ich das nicht hinbekommen ^^
-
@kuddel
Ich klicke in der VIS immer mal wieder "intuitiv" auf ein einzelnes Ventil... Das wird brav "grün", ich würde jetzt aber erwarten, dass ich dieses Ventil hiermit mal kurz "manuel" (und zwar nur dieses eine) anschalten kann...
Ist warhscheinlich so nicht vorgesehen, müsste aber doch leicht möglich sein ?Auch... Wenn ein Bewässerungslauf über Alle Ventile läuft.. würde ich mir manchmal wünschen, dass ich jetzt doch einfach das erste (das gerade grün ist) anlicke und dieses damit beendet wird und direkt zum nächsten Ventil gesprungen wird..
Wurde darüber schonmal diskutiert / Wünsche geäußert ?
-
@mameier1234 das Umbauen der VIS bekomme ich relativ leicht hin.
Nehme ich mal mit für die nächste Version.
Den Sprung von z.B Ventil 1 auf Ventil 2, wenn man Ventil 1 ausschaltet ist dann doch mehr als kompliziert.
Ich wüsste jetzt auch gerade gar nicht, wie man das umsetzen könnte, da ja alles neu berechnet werden muss wie Dauer, Rest etc. -
@mameier1234 ich habe gerade auf Seite 1 Version 4.4.0 hochgeladen.
Jetzt werden die Namen / Pfade zu den Ventil Aktoren in DPs geschrieben, die dann in der VIS angesteuert werden können.
Auch die VIS hat jetzt eine neue Version und muss einmal neu importiert werden, bzw. der in den Ventil Icons hinterlegte Aktor / Schalter muss aktualisiert werden.
-
@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);}; };