NEWS
Yahka Sprinkler mit Zeitsteuerung
-
@cash Okay versteh. Schade aber das geht dann wohl bei mir nicht.
Wenn ich das Ventil öffne dann steht 00:00 in Homekit aber der läuft nicht an. Im Log wenn ich das Script starte steht das drin:
22:43:34.189 info javascript.0 Stop script script.js.common.Timer-Ventil-1
22:43:34.213 info javascript.0 Start javascript script.js.common.Timer-Ventil-1
22:43:34.213 info javascript.0 script.js.common.Timer-Ventil-1: registered 3 subscriptions and 0 scheduleswenn ich das Ventil dann einschalte ändert sich nichts. Von der Stoppuhr kommt nichts. Wenn ich jetzt den Timer in Homekit auf 5 min stelle dann kommt ein Eintrag im Log.
22:45:48.913 info javascript.0 script.js.common.Timer-Ventil-1: [countdown] Timer für Magnetventil wird gestartet für 300 Sekunden.
Datenpunkt IST: Zählt die Zeit runter
Datenpunkt SOLL: Stehen die 5 min drin vom Countdown
Datenpunkt STATUS: steht eine 1 drin
Datenpunkt ZIEL_STATUS: steht eine 1 drin -
Was steht denn im Datenpunkt ist und soll Timer wenn Du das Ventil nur öffnest (natürlich per Homekit). Zeig mal Deine Yahka Config.
Ich prüfe Morgen auch nochmal das Script. Ich denke aber das bei Dir irgend etwas anders eingestellt ist wie bei mir.
Beim Countdown funktioniert das automatische ausschalten?
-
@cash
Das steht in den Datenpunkte wenn ich keine Aktivzeit im Homekit einstelle.
So sieht die Yahka Config aus. Nicht wundern, ich habe zum Testen ein Relais von Sonoff genommen.
-
Ok da liegt das Problem. Active und inuse müssen die angelgten Systemvariablen rein.
Jetzt ist mir auch klar warum er so wenig logt. Denn normalerweise müsste im log ein Eintrag auftauchen sobald Du das Gerät über Homekit schaltest. Egal ob mit oder ohne Timer...
-
@cash Das hätte mir auch auffallen können SORRY!!!
Jetzt habe ich das Problem, wenn ich im Homekit die Aktivezeit einstelle und diese dann abgelaufen ist, das er dann nicht abschaltet. Die Zeit bleibt bei 00:00 stehen.
LOG:
Bei Yahka sieht es jetzt so aus:
Was mir noch aufgefallen ist, wenn er Runterzählt dann Zeigt er es in Homekit sauber an. Wenn er jetzt aber Hochzählt dann sieht es nicht ganz so sauber aus. Der Datenpunkt wenn ich den dabei beobachte der Zählst vernünftig.
-
@cash So sieht jetzt sein Script bei mir aus.
-
Das mit dem unsauberen hochzählen ist leider so. Anscheinend war das von Apple nicht so vorgesehen... Damit kann ich leben.
Beim countdown geht das Ventil nicht aus? Aber ausschalten per Homekit geht?
-
Das Script muss ich nochmal anpassen wegen den on-Datenpunkt damit die warnings verschwinden.
Vielleicht schaffe ich es heute Abend sonst Montag oder Dienstag. -
@cash Nein schlimm ist es nicht, hätte ja nur sein können das bei mir noch was falsch ist.
Wenn ich per Hand AN uns AUS mache geht es ohne Probleme. Soll jetzt die Stoppuhr oder Aktivzeit das Ventil Ausschalten passiert nichts.
-
@cash Okay schön. Mach dir bloß keinen Stress! Lass dir Zeit!
-
Hier eine kleine Änderung. Die ist aber nicht fürs ausschalten zuständig...
Wie schaltet man dein Magnetventil aus? mit true und false oder 0 und 1?
Gggf. auch mal Debug auf true stellen. Dann sollte im Log ein paar mehr Infos kommen damit man genauer sieht was ioBroker da so treibt...
-
@cash Das neue Script baue ich morgen ein und dann schau ich mal was im Debug Modus steht.
Wenn ich den direkt in den Sonoff Objekten schalten möchte muss ich true und false eingeben. Und für deine Ventile wird 0 und 1 verwendet wie ich sehe. Kann ich das im Script ändern oder ist es besser ein Brücke zu bauen die den Befehl umformt?
-
Nein bei mir wird auch mit true und false geschaltet. Nur die angelegten Homekit Stati werden mit 0 und 1 geschaltet weil Homekit das so nutzt...
Schade ich hatte gehofft das es daran liegt das er nicht schaltet. Dann warten wir mal was im log steht. Denn ich kann es mir erstmal nicht erklären warum es nicht geht. Vielleicht lag es auch an den on_time Befehl und den warnings im Log...
-
@cash Das wäre zu schön gewesen, wenn es das gewesen wäre.
Wenn ich per Hand in Homekit den Sprenger ein und ausschelte. Das
funktioniert auch Ordnungsgemäß.
2019-06-24 20:03:53.206 - info: javascript.0 script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
2019-06-24 20:03:53.207 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.STATUS, state=1) - was not executed, while debug mode is active
2019-06-24 20:03:53.207 - info: javascript.0 script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
2019-06-24 20:03:54.207 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=sonoff.0.Küchenzeile.POWER, state={"val":true,"ack":false}) - was not executed, while debug mode is active
2019-06-24 20:03:54.209 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=1) - was not executed, while debug mode is active
2019-06-24 20:03:55.210 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=2) - was not executed, while debug mode is active
2019-06-24 20:03:56.211 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=3) - was not executed, while debug mode is activeWenn ich per Hand ohne Aktivzeit einzuschalten starte und die Stoppuhr auf 5 sek stelle. Funktionier nur das einschalten aber er schaltet nicht ab. In Homekit versucht er abzuschalten aber das gerät macht es nicht.
2019-06-24 20:06:59.063 - info: javascript.0 script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
2019-06-24 20:06:59.064 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.STATUS, state=1) - was not executed, while debug mode is active
2019-06-24 20:06:59.064 - info: javascript.0 script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
2019-06-24 20:07:00.065 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=sonoff.0.Küchenzeile.POWER, state={"val":true,"ack":false}) - was not executed, while debug mode is active
2019-06-24 20:07:00.066 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=1) - was not executed, while debug mode is active
2019-06-24 20:07:01.067 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=2) - was not executed, while debug mode is active
2019-06-24 20:07:02.068 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=3) - was not executed, while debug mode is active
2019-06-24 20:07:03.069 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=4) - was not executed, while debug mode is active
2019-06-24 20:07:04.070 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=5) - was not executed, while debug mode is active
2019-06-24 20:07:04.071 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state={"val":0,"ack":true}) - was not executed, while debug mode is activeWenn ich per Hand mit 1 min Aktivzeit starte. Geht auch wieder an aber nach 1 min nicht mehr aus.
undefined2019-06-24 20:10:19.656 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=60) - was not executed, while debug mode is active
2019-06-24 20:10:19.657 - info: javascript.0 script.js.Wassersprenger-skript: [countdown] Timer für Magnetventil wird gestartet für 60 Sekunden.
2019-06-24 20:10:19.745 - info: javascript.0 script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
2019-06-24 20:10:19.746 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.STATUS, state=1) - was not executed, while debug mode is active
2019-06-24 20:10:20.158 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.ZIEL_STATUS, state={"val":1,"ack":false}) - was not executed, while debug mode is active
2019-06-24 20:10:20.658 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=59) - was not executed, while debug mode is active
2019-06-24 20:10:20.746 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=sonoff.0.Küchenzeile.POWER, state={"val":true,"ack":false}) - was not executed, while debug mode is active
2019-06-24 20:10:21.658 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=58) - was not executed, while debug mode is active
2019-06-24 20:10:22.659 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=57) - was not executed, while debug mode is active
2019-06-24 20:10:23.659 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=56) - was not executed, while debug mode is active
2019-06-24 20:10:24.659 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=55) - was not executed, while debug mode is active
.
.
.
.
2019-06-24 20:11:14.684 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=5) - was not executed, while debug mode is active
2019-06-24 20:11:15.684 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=4) - was not executed, while debug mode is active
2019-06-24 20:11:16.686 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=3) - was not executed, while debug mode is active
2019-06-24 20:11:17.687 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=2) - was not executed, while debug mode is active
2019-06-24 20:11:18.688 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=1) - was not executed, while debug mode is active
2019-06-24 20:11:19.688 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state=0) - was not executed, while debug mode is active
2019-06-24 20:11:19.689 - info: javascript.0 script.js.Wassersprenger-skript: [Status_Sync] Timer für Magnetventil abgelaufen
2019-06-24 20:11:19.690 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.SOLL, state={"val":0,"ack":true}) - was not executed, while debug mode is active
2019-06-24 20:11:19.690 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.IST, state={"val":0,"ack":true}) - was not executed, while debug mode is active
2019-06-24 20:11:40.572 - warn: javascript.0 script.js.Wassersprenger-skript: setForeignState(id=javascript.0.Bewässerung.SOLL, state={"val":0,"ack":true}) - was not executed, while debug mode is activeWas mir aufgefallen ist, wenn ich einschalte steht im LOG:
setForeignState(id=sonoff.0.Küchenzeile.POWER, state={"val":true,"ack":false})
und wenn ich ausschalte:
setForeignState(id=javascript.0.Bewässerung.SOLL, state={"val":0,"ack":true})Bei "val" steht beim einschalten true und beim ausschalten 0. Das könnte das Problem sein oder?
-
Ähm. Was sind denn das für komische Fehler? Wo hast Du den Debug Mode aktiviert? Ich wollte nur das Du im Script oben bei debug = true machst :-))
Falls ich gleich noch am Rechner gehe gucke ich mir Dein Post nochmal genauer an. Ist am Smartphone etwas viel
-
@Marsel Beim einschalten kommt korrekt sonof = true. Beim ausschalten wird nicht das Gerät geschaltet sondern der Soll Datenpunkt und der ist 0. Das passt also
-
Ich habe ganz normal im Script oben Rechts bei Debug das häkchen gesetzt und bin dann in LOG gegangen und hab die Zeilen da raus kopiert.
Gibt es noch eine andere Möglichkeit den zu aktivieren?Okay hätte ja sein können.
-
Zeile 24 auf true stellen.
Ich vermute das er nicht synronisiert. Bitte mal folgendes testen:
- Gerät nicht über Homekit einschaltenschalten. Welche Werte haben danach die 4 manuell angelegten Datenpunkte?
Wenn alles richtig ist sollten die Datenpunkte Status und Ziel_Status auf 1 stehen. Wenn Zeile 24 vorher auf true steht sollte es auch Einträge im log geben.
-
Danach Gerät nicht über Homekit ausschalten. Welche Werte haben nun die 4 manuell angelegten Datenpunkte? Wenn alles richtig ist sollten die Datenpunkte Status und Ziel_Status auf 0 stehen. Wenn Zeile 24 vorher auf true steht sollte es auch Einträge im log geben.
-
Danach Gerät über Homekit einschalten. Welche Werte haben nun die 4 manuell angelegten Datenpunkte? Wenn alles richtig ist sollten die Datenpunkte Status und Ziel_Status auf 1 stehen. Wenn Zeile 24 vorher auf true steht sollte es auch Einträge im log geben.
-
Danach Gerät über Homekit ausschalten. Welche Werte haben nun die 4 manuell angelegten Datenpunkte? Wenn alles richtig ist sollten die Datenpunkte Status und Ziel_Status auf 0 stehen. Wenn Zeile 24 vorher auf true steht sollte es auch Einträge im log geben.
-
Danach Gerät über Homekit einschalten mit Laufzeit von 5 Minuten. Welche Werte haben nun die 4 manuell angelegten Datenpunkte? Wenn alles richtig ist sollten die Datenpunkte Status und Ziel_Status auf 1 stehen. Das Datenfeld aus Zeile 45 Timer Soll Homekit sollte auf 300 stehen. Das Datenfeld aus Zeile 44 sollte runterzählne von 300 (Timer Ist Homekit) Wenn Zeile 24 vorher auf true steht sollte es auch Einträge im log geben.
Nach 5 Minuten was steht im Log? Welche Werte haben nun die 4 manuell angelegten Datenpunkte. -
Danach Gerät über Homekit einschalten (vorher Zeile 26 auf 300 stellen). Welche Werte haben nun die 4 manuell angelegten Datenpunkte? Wenn alles richtig ist sollten die Datenpunkte Status und Ziel_Status auf 1 stehen. Das Datenfeld aus Zeile 45 Timer Soll Homekit sollte auf 0 stehen. Das Datenfeld aus Zeile 44 sollte hochzählen auf 300 (Timer Ist Homekit) Wenn Zeile 24 vorher auf true steht sollte es auch Einträge im log geben.
Nach 5 Minuten was steht im Log? Welche Werte haben nun die 4 manuell angelegten Datenpunkte.
-
@cash Vielen Dank für die Arbeit, bei mir funktionierts sehr gut.
Eine Frage allerdings: Warum kürzt Du die ON_TIME für dem HM-Aktor um 10 Sekunden? Gibts da irgendeine Abhängigkeit? Ich war kurz verwirrt, als schon 10 Sekunden früher plötzlich alles aus ging. -
@peer69 ja der Grund ist simpel. Angenommen der on_Time Befehl wird nicht richtig ausgeführt, also das ausschalten durch die Steckdose hat nicht funktioniert, wäre das ja irgendwie nicht so gut. Bei einer Lampe wäre das ja nicht weiter tragisch bei Wasser finde ich das nicht so gut.
Deshalb prüft das Script nach dem regulären Ablauf (also 10 Sekunden später) ob das Ventil lt. Steckdose wirklich ausgeschaltet ist. Falls nicht gibt es eine Push bzw es wird noch ein normaler ausschalt-Befehl gesendet.
Ich hatte ein Script geschrieben für die Ansaat dort kann ich 24 Bewässerungszeiten festlegen wo das Ventil i. d. R. für 5 Minuten laufen soll. Dort hatte ich in der Anfangszeit das Problem das anscheinend das setzen des on-Befehls nicht funktioniert hat und somit das Ventil nicht ausgegangen wäre hätte ich nicht diese zusätzliche Sicherheit eingebaut. Sicher ist Sicher. Ist ein kleines Schönheitsmanko. Wenn Du den Befehl nicht nutzt (Zeile28 auf false) würde das Script Sekundengenau ausschalten.