Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Yahka Sprinkler mit Zeitsteuerung

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Yahka Sprinkler mit Zeitsteuerung

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
homekit yahka bewässerung zeitremaining duration homekit
76 Beiträge 14 Kommentatoren 10.7k Aufrufe 11 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Marsel

    @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 active

    Wenn 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 active

    Wenn 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 active

    Was 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?

    cashC Offline
    cashC Offline
    cash
    Most Active
    schrieb am zuletzt editiert von
    #54

    @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

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      Marsel
      schrieb am zuletzt editiert von
      #55

      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. :neutral_face:
      Gibt es noch eine andere Möglichkeit den zu aktivieren?

      Okay hätte ja sein können. :confused:

      1 Antwort Letzte Antwort
      0
      • cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #56

        Zeile 24 auf true stellen.

        Ich vermute das er nicht synronisiert. Bitte mal folgendes testen:

        1. 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.

        1. 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.

        2. 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.

        3. 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.

        4. 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.

        5. 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.

        M 1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          peer69
          Forum Testing
          schrieb am zuletzt editiert von
          #57

          @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.

          cashC 1 Antwort Letzte Antwort
          0
          • P peer69

            @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.

            cashC Offline
            cashC Offline
            cash
            Most Active
            schrieb am zuletzt editiert von
            #58

            @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.

            P 1 Antwort Letzte Antwort
            0
            • cashC cash

              Zeile 24 auf true stellen.

              Ich vermute das er nicht synronisiert. Bitte mal folgendes testen:

              1. 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.

              1. 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.

              2. 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.

              3. 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.

              4. 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.

              5. 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.

              M Offline
              M Offline
              Marsel
              schrieb am zuletzt editiert von
              #59

              @cash Ich werde aus der Sache nicht schlau. Hoffe du kannst mir da noch helfen.

              Zeile 24 ist auf true.

              Ist=0
              Soll=0
              Status=1
              Ziel_Status=1

              LOG:
              2019-06-25 11:37:52.748 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
              2019-06-25 11:37:52.741 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
              2019-06-25 11:37:52.740 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist

              Ist=0
              Soll=0
              Status=0
              Ziel_Status=0

              LOG:
              2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
              2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
              2019-06-25 11:40:30.610 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist

              Ist=Zählt hoch
              Soll=0
              Status=1
              Ziel_Status=1

              LOG:
              2019-06-25 11:46:06.147 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
              2019-06-25 11:46:06.146 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
              2019-06-25 11:46:05.142 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
              2019-06-25 11:46:05.141 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

              Ist=0
              Soll=0
              Status=0
              Ziel_Status=0

              LOG:
              2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf 0. Magnetventil wurde ausgeschaltet.
              2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 0 nachdem das Magnetnvetil ausgeschaltet wurde
              2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geschlossen werden.
              2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] id_Ist ist nicht null und wird auf 0 gesetzt.
              2019-06-25 11:48:41.818 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Es läuft ein Timer. Magnetventil soll per Homekit ausgeschaltet werden

              1. Beim Einschalten
                Ist=Zählt Runter
                Soll=300
                Status=1
                Ziel_Status=1

              LOG:
              2019-06-25 11:51:58.084 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
              2019-06-25 11:51:58.083 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
              2019-06-25 11:51:57.050 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
              2019-06-25 11:51:56.542 info script.js.Wassersprenger-skript: [countdown] Timer für Magnetventil wird gestartet für 300 Sekunden.

              1. Wenn der Timer ende ist
                Ist=0
                Soll=0
                Status=0 und nach ca. 5 sek steht wieder ein 1 da
                Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

              LOG:
              2019-06-25 11:57:34.967 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
              2019-06-25 11:57:34.945 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
              2019-06-25 11:57:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
              2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
              2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
              2019-06-25 11:56:56.732 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
              2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [countdown] Magnetventil war noch nicht ausgeschaltet und wird nun ausgeschaltet
              2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [Status_Sync] Timer für Magnetventil abgelaufen

              1. Beim Einschalten
                Ist=Zählt Hoch
                Soll=0
                Status=1
                Ziel_Status=1

              LOG:
              2019-06-25 12:00:28.678 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
              2019-06-25 12:00:28.677 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
              2019-06-25 12:00:27.649 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
              2019-06-25 12:00:27.647 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

              1. Nach der Automatischen Abschaltung
                Ist=0
                Soll=0
                Status=0 und nach ca. 5 sek steht wieder ein 1 da
                Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

              LOG:
              2019-06-25 12:05:34.964 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
              2019-06-25 12:05:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
              2019-06-25 12:05:34.942 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
              2019-06-25 12:05:32.687 sonoff.0 info Client [Küche LED Stripe] connection closed: closed
              2019-06-25 12:05:27.850 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
              2019-06-25 12:05:27.844 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
              2019-06-25 12:05:27.843 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
              2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Magnetventil soll automatisch ausschalten.
              2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Stoppuhr abgelaufen. Magnetventil ist offen. Evtl vergessen
              2019-06-25 12:05:27.797 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Stoppuhr für Magnetventil abgelaufen.

              cashC 3 Antworten Letzte Antwort
              0
              • M Marsel

                @cash Ich werde aus der Sache nicht schlau. Hoffe du kannst mir da noch helfen.

                Zeile 24 ist auf true.

                Ist=0
                Soll=0
                Status=1
                Ziel_Status=1

                LOG:
                2019-06-25 11:37:52.748 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                2019-06-25 11:37:52.741 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                2019-06-25 11:37:52.740 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist

                Ist=0
                Soll=0
                Status=0
                Ziel_Status=0

                LOG:
                2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                2019-06-25 11:40:30.610 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist

                Ist=Zählt hoch
                Soll=0
                Status=1
                Ziel_Status=1

                LOG:
                2019-06-25 11:46:06.147 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                2019-06-25 11:46:06.146 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                2019-06-25 11:46:05.142 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
                2019-06-25 11:46:05.141 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

                Ist=0
                Soll=0
                Status=0
                Ziel_Status=0

                LOG:
                2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf 0. Magnetventil wurde ausgeschaltet.
                2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 0 nachdem das Magnetnvetil ausgeschaltet wurde
                2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geschlossen werden.
                2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] id_Ist ist nicht null und wird auf 0 gesetzt.
                2019-06-25 11:48:41.818 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Es läuft ein Timer. Magnetventil soll per Homekit ausgeschaltet werden

                1. Beim Einschalten
                  Ist=Zählt Runter
                  Soll=300
                  Status=1
                  Ziel_Status=1

                LOG:
                2019-06-25 11:51:58.084 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                2019-06-25 11:51:58.083 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                2019-06-25 11:51:57.050 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
                2019-06-25 11:51:56.542 info script.js.Wassersprenger-skript: [countdown] Timer für Magnetventil wird gestartet für 300 Sekunden.

                1. Wenn der Timer ende ist
                  Ist=0
                  Soll=0
                  Status=0 und nach ca. 5 sek steht wieder ein 1 da
                  Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

                LOG:
                2019-06-25 11:57:34.967 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                2019-06-25 11:57:34.945 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                2019-06-25 11:57:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
                2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                2019-06-25 11:56:56.732 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
                2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [countdown] Magnetventil war noch nicht ausgeschaltet und wird nun ausgeschaltet
                2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [Status_Sync] Timer für Magnetventil abgelaufen

                1. Beim Einschalten
                  Ist=Zählt Hoch
                  Soll=0
                  Status=1
                  Ziel_Status=1

                LOG:
                2019-06-25 12:00:28.678 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                2019-06-25 12:00:28.677 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                2019-06-25 12:00:27.649 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
                2019-06-25 12:00:27.647 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

                1. Nach der Automatischen Abschaltung
                  Ist=0
                  Soll=0
                  Status=0 und nach ca. 5 sek steht wieder ein 1 da
                  Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

                LOG:
                2019-06-25 12:05:34.964 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                2019-06-25 12:05:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                2019-06-25 12:05:34.942 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
                2019-06-25 12:05:32.687 sonoff.0 info Client [Küche LED Stripe] connection closed: closed
                2019-06-25 12:05:27.850 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                2019-06-25 12:05:27.844 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                2019-06-25 12:05:27.843 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
                2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Magnetventil soll automatisch ausschalten.
                2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Stoppuhr abgelaufen. Magnetventil ist offen. Evtl vergessen
                2019-06-25 12:05:27.797 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Stoppuhr für Magnetventil abgelaufen.

                cashC Offline
                cashC Offline
                cash
                Most Active
                schrieb am zuletzt editiert von
                #60

                @Marsel Deine Yahka Einstellungen sind wahrscheinlich falsch?

                Bei 3 müsste sowas kommen wie Magnetventil soll per Homekit geschaltet werden...

                So sieht es bei mir aus: Alles immer ioBroker.State

                RemainingDuration: Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Timer_Ist_Homekit
                SetDuration: Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Timer_Soll_Homekit
                Active: Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Ziel_Status_Homekit
                InUse: Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Status_Homekit
                ValveType: Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Magnetventil_Icon_Homekit

                1 Antwort Letzte Antwort
                0
                • cashC cash

                  @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.

                  P Offline
                  P Offline
                  peer69
                  Forum Testing
                  schrieb am zuletzt editiert von
                  #61

                  @cash Vielen Dank für die ausführlich Erläuterung! Das lasse ich gern so drin, als quasi dritte Sicherheitsstufe. Ich nehme die Brunnenpumpe außerhalb der vorgesehenen Bewässerungszeiten zusätzlich vom Strom, da die Pumpe druckschaltergesteuert ist und bei einem Leck lustig vor sich hin pumpen und die Nachbarschaft unter Wasser setzen würde. Leider alles mittels HM RF und ich ärgere mich, dass ich nicht auch zum Pumpenhaus Leitungen für HM-Wired bzw. für KNX gelegt habe. Damit hätte ich ein besseres Gefühl aber das ist ein anderes Thema. :)

                  1 Antwort Letzte Antwort
                  0
                  • M Marsel

                    @cash Ich werde aus der Sache nicht schlau. Hoffe du kannst mir da noch helfen.

                    Zeile 24 ist auf true.

                    Ist=0
                    Soll=0
                    Status=1
                    Ziel_Status=1

                    LOG:
                    2019-06-25 11:37:52.748 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                    2019-06-25 11:37:52.741 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                    2019-06-25 11:37:52.740 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist

                    Ist=0
                    Soll=0
                    Status=0
                    Ziel_Status=0

                    LOG:
                    2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                    2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                    2019-06-25 11:40:30.610 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist

                    Ist=Zählt hoch
                    Soll=0
                    Status=1
                    Ziel_Status=1

                    LOG:
                    2019-06-25 11:46:06.147 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                    2019-06-25 11:46:06.146 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                    2019-06-25 11:46:05.142 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
                    2019-06-25 11:46:05.141 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

                    Ist=0
                    Soll=0
                    Status=0
                    Ziel_Status=0

                    LOG:
                    2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf 0. Magnetventil wurde ausgeschaltet.
                    2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 0 nachdem das Magnetnvetil ausgeschaltet wurde
                    2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geschlossen werden.
                    2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] id_Ist ist nicht null und wird auf 0 gesetzt.
                    2019-06-25 11:48:41.818 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Es läuft ein Timer. Magnetventil soll per Homekit ausgeschaltet werden

                    1. Beim Einschalten
                      Ist=Zählt Runter
                      Soll=300
                      Status=1
                      Ziel_Status=1

                    LOG:
                    2019-06-25 11:51:58.084 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                    2019-06-25 11:51:58.083 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                    2019-06-25 11:51:57.050 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
                    2019-06-25 11:51:56.542 info script.js.Wassersprenger-skript: [countdown] Timer für Magnetventil wird gestartet für 300 Sekunden.

                    1. Wenn der Timer ende ist
                      Ist=0
                      Soll=0
                      Status=0 und nach ca. 5 sek steht wieder ein 1 da
                      Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

                    LOG:
                    2019-06-25 11:57:34.967 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                    2019-06-25 11:57:34.945 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                    2019-06-25 11:57:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
                    2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                    2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                    2019-06-25 11:56:56.732 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
                    2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [countdown] Magnetventil war noch nicht ausgeschaltet und wird nun ausgeschaltet
                    2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [Status_Sync] Timer für Magnetventil abgelaufen

                    1. Beim Einschalten
                      Ist=Zählt Hoch
                      Soll=0
                      Status=1
                      Ziel_Status=1

                    LOG:
                    2019-06-25 12:00:28.678 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                    2019-06-25 12:00:28.677 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                    2019-06-25 12:00:27.649 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
                    2019-06-25 12:00:27.647 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

                    1. Nach der Automatischen Abschaltung
                      Ist=0
                      Soll=0
                      Status=0 und nach ca. 5 sek steht wieder ein 1 da
                      Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

                    LOG:
                    2019-06-25 12:05:34.964 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                    2019-06-25 12:05:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                    2019-06-25 12:05:34.942 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
                    2019-06-25 12:05:32.687 sonoff.0 info Client [Küche LED Stripe] connection closed: closed
                    2019-06-25 12:05:27.850 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                    2019-06-25 12:05:27.844 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                    2019-06-25 12:05:27.843 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
                    2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Magnetventil soll automatisch ausschalten.
                    2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Stoppuhr abgelaufen. Magnetventil ist offen. Evtl vergessen
                    2019-06-25 12:05:27.797 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Stoppuhr für Magnetventil abgelaufen.

                    cashC Offline
                    cashC Offline
                    cash
                    Most Active
                    schrieb am zuletzt editiert von
                    #62

                    @Marsel

                    Teste mal das Script:

                    const logging = true;
                    
                    const id_Magnetventil = 'hm-rpc.0.LEQ1316331.1.STATE'/*Terrasse Bewässerung:1 STATE*/;
                    const ACK = true;
                    
                    function func_test(){
                       if(getState(id_Magnetventil).val){
                           if(logging){
                               log('[Test] ' +'Status beim Start: ein');
                           }
                           if(ACK){
                               setState(id_Magnetventil,false,true);
                               if(logging){
                                   log('[Test] ' +'Gerät per ACK true ausgeschaltet');
                               }
                           }
                           if(!ACK){
                               setState(id_Magnetventil,false);
                               if(logging){
                                   log('[Test] ' +'Gerät ohne ACK true ausgeschaltet');
                               }
                           }
                               
                       }
                       else{
                           if(logging){
                               log('[Test] ' +'Status beim Start: aus');
                           }
                           if(ACK){
                               setState(id_Magnetventil,true,true);
                               if(logging){
                                   log('[Test] ' +'Gerät per ACK true eingeschaltet');
                               }
                           }
                           if(!ACK){
                               setState(id_Magnetventil,true);
                               if(logging){
                                   log('[Test] ' +'Gerät ohne ACK true eingeschaltet');
                               }
                           }
                           
                       }
                    
                       
                       
                       
                    }   
                    
                    //beim Start
                    func_test();
                    

                    1. Das Script einfach starten. Schaltet das Ventil? Ändert sich der Status vom Ventil unter den Objekten und bleibt er so wie er ist?

                    Danach im Script ACK = false; setzen und neu starten. Gleiche Frage wie oben?

                    1 Antwort Letzte Antwort
                    0
                    • M Marsel

                      @cash Ich werde aus der Sache nicht schlau. Hoffe du kannst mir da noch helfen.

                      Zeile 24 ist auf true.

                      Ist=0
                      Soll=0
                      Status=1
                      Ziel_Status=1

                      LOG:
                      2019-06-25 11:37:52.748 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                      2019-06-25 11:37:52.741 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                      2019-06-25 11:37:52.740 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist

                      Ist=0
                      Soll=0
                      Status=0
                      Ziel_Status=0

                      LOG:
                      2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                      2019-06-25 11:40:30.613 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                      2019-06-25 11:40:30.610 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist

                      Ist=Zählt hoch
                      Soll=0
                      Status=1
                      Ziel_Status=1

                      LOG:
                      2019-06-25 11:46:06.147 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                      2019-06-25 11:46:06.146 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                      2019-06-25 11:46:05.142 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
                      2019-06-25 11:46:05.141 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

                      Ist=0
                      Soll=0
                      Status=0
                      Ziel_Status=0

                      LOG:
                      2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf 0. Magnetventil wurde ausgeschaltet.
                      2019-06-25 11:48:42.303 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 0 nachdem das Magnetnvetil ausgeschaltet wurde
                      2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geschlossen werden.
                      2019-06-25 11:48:41.819 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] id_Ist ist nicht null und wird auf 0 gesetzt.
                      2019-06-25 11:48:41.818 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Es läuft ein Timer. Magnetventil soll per Homekit ausgeschaltet werden

                      1. Beim Einschalten
                        Ist=Zählt Runter
                        Soll=300
                        Status=1
                        Ziel_Status=1

                      LOG:
                      2019-06-25 11:51:58.084 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                      2019-06-25 11:51:58.083 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                      2019-06-25 11:51:57.050 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.
                      2019-06-25 11:51:56.542 info script.js.Wassersprenger-skript: [countdown] Timer für Magnetventil wird gestartet für 300 Sekunden.

                      1. Wenn der Timer ende ist
                        Ist=0
                        Soll=0
                        Status=0 und nach ca. 5 sek steht wieder ein 1 da
                        Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

                      LOG:
                      2019-06-25 11:57:34.967 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                      2019-06-25 11:57:34.945 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                      2019-06-25 11:57:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
                      2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                      2019-06-25 11:56:56.733 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                      2019-06-25 11:56:56.732 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
                      2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [countdown] Magnetventil war noch nicht ausgeschaltet und wird nun ausgeschaltet
                      2019-06-25 11:56:56.709 info script.js.Wassersprenger-skript: [Status_Sync] Timer für Magnetventil abgelaufen

                      1. Beim Einschalten
                        Ist=Zählt Hoch
                        Soll=0
                        Status=1
                        Ziel_Status=1

                      LOG:
                      2019-06-25 12:00:28.678 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet
                      2019-06-25 12:00:28.677 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war bereits auf 1. Magnetventil ist an
                      2019-06-25 12:00:27.649 info script.js.Wassersprenger-skript: Es wurde kein Countdown gestartet. Starte Stopuhr.
                      2019-06-25 12:00:27.647 info script.js.Wassersprenger-skript: Magnetventil soll per Homekit geöffnet werden.

                      1. Nach der Automatischen Abschaltung
                        Ist=0
                        Soll=0
                        Status=0 und nach ca. 5 sek steht wieder ein 1 da
                        Ziel_Status=0 und nach ca. 5 sek steht wieder ein 1 da

                      LOG:
                      2019-06-25 12:05:34.964 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (angeschaltet)
                      2019-06-25 12:05:34.943 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert
                      2019-06-25 12:05:34.942 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist
                      2019-06-25 12:05:32.687 sonoff.0 info Client [Küche LED Stripe] connection closed: closed
                      2019-06-25 12:05:27.850 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Magnetventil wurde nicht über Homekit bedient (geschlossen)
                      2019-06-25 12:05:27.844 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert
                      2019-06-25 12:05:27.843 info script.js.Wassersprenger-skript: [DEBUG] [Status_Sync] Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist
                      2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Magnetventil soll automatisch ausschalten.
                      2019-06-25 12:05:27.798 info script.js.Wassersprenger-skript: Stoppuhr abgelaufen. Magnetventil ist offen. Evtl vergessen
                      2019-06-25 12:05:27.797 info script.js.Wassersprenger-skript: [DEBUG] [Ziel_Status] Stoppuhr für Magnetventil abgelaufen.

                      cashC Offline
                      cashC Offline
                      cash
                      Most Active
                      schrieb am zuletzt editiert von
                      #63

                      @Marsel nach etwas Recherche habe ich das Problem hoffentlich gefunden. Es hängt mit dem Testscript zusammen. Ich habe schon eine neue Version geschrieben die ich derzeit teste. Ich stelle die Version heute Abend online dann sollte es bei Dir auch funktionieren...

                      1 Antwort Letzte Antwort
                      0
                      • cashC Offline
                        cashC Offline
                        cash
                        Most Active
                        schrieb am zuletzt editiert von
                        #64

                        Hier nun die aktuelle Version:

                        
                        /**************************
                        * Script Gartenbewässerung per Homekit schalten incl Timer
                        *
                        * 08.06.19 V1.00    Erste Version
                        * 09.06.19 V1.01    Stoppuhr eingebaut wenn kein Countdown gestartet wurde
                        * 10.06.19 V1.02    Logging optimiert und Variablen zum einfachen steuern eingebaut
                        * 11.06.19 V1.03    Logging präzisiert
                        *                   kleinere Syntaxfehler behoben
                        *                   set_on_time hinzugefügt um Funktion zu deaktivieren
                        * 13.06.19 V1.04    Logging reduziert
                        * 18.06.19 V1.05    Stoppuhr Dauer geändert auf 1200 Sekunden // Pushover alle 5 Minunten für 40 Minuten. Somit erfolgt max eine Stunde lange eine Errinnerung
                        * 23.06.19 V1.06    Beim Datenpunkt on_time eine Abfrage auf set_on_time vergessen
                        * 25.06.19 V1.07    Loggingfehler korrigiert
                        *                   Schaltbefehle immer per ack:false
                        *
                        * der Ziel Status wird durch Homekit geändert
                        * func_Status_Syncronisierung synronisiert den realen Status 
                        * vom Magnetventil mit den beiden Pseudo Stati von Homekit
                        * 0 = Bewässerung ist aus
                        * 1 = Bewässerung ist eingeschaltet
                        * wichtig der Ziel Status wird durch Homekit ohne ack:true geändert
                        **************************/
                        
                        const logging = true;
                        const debugging = false;
                        
                        const Stoppuhr_Dauer = 1200;       //Dauer in Sekunden wie lange die Stopuhr läuft max. 3600
                        const Stoppuhr_Wasser_off = false;  //Schaltet das Magnetventil nach Ablauf der Stoppuhr automatisch aus
                        const set_on_time = true;           //Wenn ein Countdown gesetzt wird wird die Dauer direkt im Gerät gesetzt
                        
                        //Variablen für Pushover
                        const sendpush = true;     //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                        const pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                        const pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                        const pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                        const pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                        let _prio = 1;
                        let _titel = 'Bewässerung';
                        let _message;
                        let _device = 'TPhone'; 
                        //var device = 'All'; 
                        
                        const id_Status = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Status_Homekit'/*Status Homekit*/;
                        const id_Ziel_Status = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Ziel_Status_Homekit'/*Ziel Status Homekit*/;
                        const id_Ist = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Timer_Ist_Homekit'/*Timer Ist Homekit*/;
                        const id_Soll = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Timer_Soll_Homekit'/*Timer Soll Homekit*/;
                        const id_Magnetventil = 'hm-rpc.0.LEQ1316331.1.STATE'/*Terrasse Bewässerung:1 STATE*/;
                        const id_Magnetventil_on_time = 'hm-rpc.0.LEQ1316331.1.ON_TIME'/*Terrasse Bewässerung:1 ON TIME*/;
                        //const id_Magnetventil = 'hm-rpc.0.LEQ0929723.1.STATE'/*Wohnzimmer GSV-Licht:1 STATE*/;
                        //const id_Magnetventil_on_time = 'hm-rpc.0.LEQ0929723.1.ON_TIME'/*Wohnzimmer GSV-Licht:1 ON TIME*/;
                        
                        let timer = null;
                        
                        function send_pushover (_device, _message, _titel, _prio) {
                           // Version 4.00 vom 15.01.19
                           var pushover_Instanz =  'pushover.0';
                           if (_prio === 0){pushover_Instanz =  'pushover.0'}
                           else if (_prio == 1){pushover_Instanz =  'pushover.1'}
                           else if (_prio == 2){pushover_Instanz =  'pushover.2'}
                           else {pushover_Instanz =  'pushover.3'}
                               sendTo(pushover_Instanz, { 
                               device: _device,
                               message: _message, 
                               title: _titel, 
                               priority: _prio,
                               retry: 300,
                               expire: 2400,
                               html: 1
                           }); 
                        }
                        
                        function func_Ziel_Status(){
                           var Ziel_Status =  getState(id_Ziel_Status).val;
                           var Status = getState(id_Status).val;
                           var Soll = Number(getState(id_Soll).val);
                           var Ist = Soll;
                           var Ist_real = getState(id_Ist).val;
                        
                           
                           //Magnetventil soll geschlossen werden
                           if(Ziel_Status === 0){
                               if(timer){ 
                                   clearInterval(timer); // Stopp Timer
                                   timer = null;
                                   if(debugging){
                                       log('[DEBUG] '+'[Ziel_Status] ' +'Es läuft ein Timer. Magnetventil soll per Homekit ausgeschaltet werden');
                                   }
                               }
                               if(Ist_real !== 0){
                                   if(debugging){
                                       log('[DEBUG] '+'[Ziel_Status] ' +'id_Ist ist nicht null und wird auf 0 gesetzt.');
                                   }
                                   setState(id_Ist,0,true);
                               }
                               if(Soll !== 0){
                                   if(debugging){
                                       log('[DEBUG] '+'[Ziel_Status] ' +'id_Soll ist nicht null und wird auf 0 gesetzt.');
                                   }
                                   setState(id_Soll,0,true);
                               }
                               if(Status == 1){
                                   if(logging){
                                       log('Magnetventil soll per Homekit geschlossen werden.');
                                   }
                                   setStateDelayed(id_Magnetventil,false,500);
                                   setState(id_Status,0);
                               }
                               else{
                                   if(debugging){
                                       log('[DEBUG] '+'[Ziel_Status] ' +'Magnetventil wurde nicht über Homekit bedient (geschlossen)');
                                   }
                               }
                        
                           }
                           //Magnetventil soll geöffnet werden werden
                           else if(Ziel_Status === 1){
                               if(Status === 0){
                                   if(logging){
                                       log('Magnetventil soll per Homekit geöffnet werden.');
                                   }
                                   setStateDelayed(id_Magnetventil,true,1000);
                                   setState(id_Status,1);
                        
                                   if(Soll === 0){
                                       log('Es wurde kein Countdown gestartet. Starte Stopuhr.');
                                       if(timer){ 
                                           clearInterval(timer); // Stopp Timer
                                           timer = null;
                                           if(debugging){
                                               log('[DEBUG] '+'[Ziel_Status] ' +'Stoppuhr soll gestartet werden. Es existiert ein Timer. Der Timer wird abgebrochen.');
                                           }
                                       }
                                       timer = setInterval(function() {
                                           Ist++;
                                           //if(debugging){
                                           //    log('Countdown bei ' +Ist +' Sekunden');
                                           //}    
                                           setState(id_Ist,Ist);
                                           if(Ist >= Stoppuhr_Dauer) {
                                               if(debugging){
                                                   log('[DEBUG] '+'[Ziel_Status] ' +'Stoppuhr für Magnetventil abgelaufen.');
                                               }
                                               clearInterval(timer);
                                               timer = null;
                                               setState(id_Ist, 0, true);
                                       
                                       
                                               if(getState(id_Magnetventil).val){
                                                   if(logging){
                                                       log('Stoppuhr abgelaufen. Magnetventil ist noch offen.');
                                                   }
                                                   if(Stoppuhr_Wasser_off){
                                                       if(logging){
                                                           log('Magnetventil soll automatisch ausschalten.');
                                                       }
                                                       setState(id_Soll, 0, true);
                                                       setState(id_Ist, 0, true);
                                                       setState(id_Magnetventil,false);
                                                   }
                                                   //Push verschicken
                                                   if(sendpush){
                                                       _prio = 2;
                                                       _message = 'Magnetventil ist immer noch offen. Vergessen?';
                                                       send_pushover(_device, _message, _titel, _prio);
                                                   } 
                                               }
                                               else{
                                                   if(debugging){
                                                       log('[DEBUG] '+'[Ziel_Status] ' +'Stopuhr abgelaufen Magnetventil war bereits ausgeschaltet');
                                                   }
                                               }
                                           }   
                                       }, 1000);
                                   }
                               }
                               else{
                                   if(debugging){
                                       log('[DEBUG] '+'[Ziel_Status] ' +'Magnetventil wurde nicht über Homekit bedient (angeschaltet)');
                                   }
                               }
                        
                           }
                           else{
                               if(debugging){
                                   log('[DEBUG] '+'[Ziel_Status] ' +'Fehler der Zielstatus ist ungleich 0 oder 1. Das darf eigentlich nicht passieren');
                               }
                           }
                        }
                        
                        function func_Status_Syncroniserung(){
                           var Status = getState(id_Status).val;
                           var Ziel_Status = getState(id_Ziel_Status).val;
                           var Magnetventil = getState(id_Magnetventil).val;
                        
                           if(Magnetventil){
                               if(Status === 0){
                                   setState(id_Status,1);
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist');
                                   }
                                   
                               }
                               else{
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Status war bereits auf 1. Magnetventil ist an');
                                   } 
                               }
                               if(Ziel_Status === 0){
                                   setState(id_Ziel_Status,1);
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert');
                                   }
                               }
                               else{
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet'); 
                                   }
                               }
                           }
                           else{
                               if(Status == 1){
                                   setState(id_Status,0);
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist');
                                   }
                                   
                               }
                               else{
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Status war bereits auf 0 nachdem das Magnetnvetil ausgeschaltet wurde'); 
                                   }
                               }
                               if(Ziel_Status == 1){
                                   setState(id_Ziel_Status,0);
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert');
                                   }
                               }
                               else{
                                   if(debugging){
                                       log('[DEBUG] '+'[Status_Sync] ' +'Ziel_Status war bereits auf 0. Magnetventil wurde ausgeschaltet.'); 
                                   }   
                               }
                        
                           }
                        }
                        
                        function func_countdown(){
                           var Status = getState(id_Status).val;
                           var Soll = Number(getState(id_Soll).val);
                           var Ist = Soll;
                           //ontime 5 Sekunden kürzer
                           var ontime = Soll - 10;
                           setState(id_Ist,Ist);
                        
                           if(set_on_time){
                               setState(id_Magnetventil_on_time,ontime);
                           }
                           setStateDelayed(id_Ziel_Status,1,500);
                           
                           if(logging){
                               log('Timer für Magnetventil wird gestartet für ' +Soll +' Sekunden.');
                           }
                           
                           if(timer){ 
                               clearInterval(timer); // Stopp Timer
                               timer = null;
                               if(logging){
                                   log('[countdown] ' +'Es besteht schon ein Timer für das Magnetventil. Ggf prüfen');
                               }
                           }
                        
                           if(Soll !== 0){
                               timer = setInterval(function() {
                                   Ist--;
                                   //if(debugging){
                                   //    log('Countdown bei ' +Ist +' Sekunden');
                                   //}    
                                   setState(id_Ist,Ist);
                                   if(Ist <= 0) {
                                       if(logging){
                                           log('Timer für Magnetventil abgelaufen');
                                       }
                                       clearInterval(timer);
                                       timer = null;
                                       setState(id_Soll, 0, true);
                                       setState(id_Ist, 0, true);
                                       if(set_on_time){
                                           setState(id_Magnetventil_on_time,0);
                                       }
                                       if(getState(id_Magnetventil).val){
                                           if(set_on_time){
                                               if(logging){
                                                   log('Achtung: Magnetventil war noch nicht ausgeschaltet. Es wird nun ausgeschaltet.');
                                               }
                                           }
                                           else{
                                               if(logging){
                                                   log('Magnetventil wird ausgeschaltet');
                                               }
                                               
                                           }
                                           setState(id_Magnetventil,false);
                                           //Push verschicken
                                           if(sendpush){
                                               if(set_on_time){
                                                   _message = 'Magnetventil war nicht geschlossen. on_Befehl hat nicht funktioniert';
                                               }
                                               else{
                                                   _message = 'Magnetventil wurde ausgeschaltetn.';    
                                               }
                                               send_pushover(_device, _message, _titel, _prio);
                                           } 
                                       }
                                       else{
                                           if(debugging){
                                               log('[countdown] ' +'Magnetventil war bereits ausgeschaltet');
                                           }
                                       }
                                   }   
                               }, 1000);
                           }
                           else{
                               if(debugging){
                                   log('[countdown] ' +'Soll ist gleich 0');
                               }
                           }
                        } 
                        
                        
                        //beim Start
                        //func_countdown();
                        
                        on({id: id_Soll, valGt: 0 ,change: "ne"}, func_countdown);
                        on({id: id_Ziel_Status, change: "ne"}, func_Ziel_Status);
                        on({id: id_Magnetventil, change: "ne"}, func_Status_Syncroniserung);
                        

                        M 1 Antwort Letzte Antwort
                        1
                        • cashC cash

                          Hier nun die aktuelle Version:

                          
                          /**************************
                          * Script Gartenbewässerung per Homekit schalten incl Timer
                          *
                          * 08.06.19 V1.00    Erste Version
                          * 09.06.19 V1.01    Stoppuhr eingebaut wenn kein Countdown gestartet wurde
                          * 10.06.19 V1.02    Logging optimiert und Variablen zum einfachen steuern eingebaut
                          * 11.06.19 V1.03    Logging präzisiert
                          *                   kleinere Syntaxfehler behoben
                          *                   set_on_time hinzugefügt um Funktion zu deaktivieren
                          * 13.06.19 V1.04    Logging reduziert
                          * 18.06.19 V1.05    Stoppuhr Dauer geändert auf 1200 Sekunden // Pushover alle 5 Minunten für 40 Minuten. Somit erfolgt max eine Stunde lange eine Errinnerung
                          * 23.06.19 V1.06    Beim Datenpunkt on_time eine Abfrage auf set_on_time vergessen
                          * 25.06.19 V1.07    Loggingfehler korrigiert
                          *                   Schaltbefehle immer per ack:false
                          *
                          * der Ziel Status wird durch Homekit geändert
                          * func_Status_Syncronisierung synronisiert den realen Status 
                          * vom Magnetventil mit den beiden Pseudo Stati von Homekit
                          * 0 = Bewässerung ist aus
                          * 1 = Bewässerung ist eingeschaltet
                          * wichtig der Ziel Status wird durch Homekit ohne ack:true geändert
                          **************************/
                          
                          const logging = true;
                          const debugging = false;
                          
                          const Stoppuhr_Dauer = 1200;       //Dauer in Sekunden wie lange die Stopuhr läuft max. 3600
                          const Stoppuhr_Wasser_off = false;  //Schaltet das Magnetventil nach Ablauf der Stoppuhr automatisch aus
                          const set_on_time = true;           //Wenn ein Countdown gesetzt wird wird die Dauer direkt im Gerät gesetzt
                          
                          //Variablen für Pushover
                          const sendpush = true;     //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                          const pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                          const pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                          const pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                          const pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                          let _prio = 1;
                          let _titel = 'Bewässerung';
                          let _message;
                          let _device = 'TPhone'; 
                          //var device = 'All'; 
                          
                          const id_Status = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Status_Homekit'/*Status Homekit*/;
                          const id_Ziel_Status = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Ziel_Status_Homekit'/*Ziel Status Homekit*/;
                          const id_Ist = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Timer_Ist_Homekit'/*Timer Ist Homekit*/;
                          const id_Soll = 'Systemvariable.0.Terrasse.Bewässerung.Magnetventil.Timer_Soll_Homekit'/*Timer Soll Homekit*/;
                          const id_Magnetventil = 'hm-rpc.0.LEQ1316331.1.STATE'/*Terrasse Bewässerung:1 STATE*/;
                          const id_Magnetventil_on_time = 'hm-rpc.0.LEQ1316331.1.ON_TIME'/*Terrasse Bewässerung:1 ON TIME*/;
                          //const id_Magnetventil = 'hm-rpc.0.LEQ0929723.1.STATE'/*Wohnzimmer GSV-Licht:1 STATE*/;
                          //const id_Magnetventil_on_time = 'hm-rpc.0.LEQ0929723.1.ON_TIME'/*Wohnzimmer GSV-Licht:1 ON TIME*/;
                          
                          let timer = null;
                          
                          function send_pushover (_device, _message, _titel, _prio) {
                             // Version 4.00 vom 15.01.19
                             var pushover_Instanz =  'pushover.0';
                             if (_prio === 0){pushover_Instanz =  'pushover.0'}
                             else if (_prio == 1){pushover_Instanz =  'pushover.1'}
                             else if (_prio == 2){pushover_Instanz =  'pushover.2'}
                             else {pushover_Instanz =  'pushover.3'}
                                 sendTo(pushover_Instanz, { 
                                 device: _device,
                                 message: _message, 
                                 title: _titel, 
                                 priority: _prio,
                                 retry: 300,
                                 expire: 2400,
                                 html: 1
                             }); 
                          }
                          
                          function func_Ziel_Status(){
                             var Ziel_Status =  getState(id_Ziel_Status).val;
                             var Status = getState(id_Status).val;
                             var Soll = Number(getState(id_Soll).val);
                             var Ist = Soll;
                             var Ist_real = getState(id_Ist).val;
                          
                             
                             //Magnetventil soll geschlossen werden
                             if(Ziel_Status === 0){
                                 if(timer){ 
                                     clearInterval(timer); // Stopp Timer
                                     timer = null;
                                     if(debugging){
                                         log('[DEBUG] '+'[Ziel_Status] ' +'Es läuft ein Timer. Magnetventil soll per Homekit ausgeschaltet werden');
                                     }
                                 }
                                 if(Ist_real !== 0){
                                     if(debugging){
                                         log('[DEBUG] '+'[Ziel_Status] ' +'id_Ist ist nicht null und wird auf 0 gesetzt.');
                                     }
                                     setState(id_Ist,0,true);
                                 }
                                 if(Soll !== 0){
                                     if(debugging){
                                         log('[DEBUG] '+'[Ziel_Status] ' +'id_Soll ist nicht null und wird auf 0 gesetzt.');
                                     }
                                     setState(id_Soll,0,true);
                                 }
                                 if(Status == 1){
                                     if(logging){
                                         log('Magnetventil soll per Homekit geschlossen werden.');
                                     }
                                     setStateDelayed(id_Magnetventil,false,500);
                                     setState(id_Status,0);
                                 }
                                 else{
                                     if(debugging){
                                         log('[DEBUG] '+'[Ziel_Status] ' +'Magnetventil wurde nicht über Homekit bedient (geschlossen)');
                                     }
                                 }
                          
                             }
                             //Magnetventil soll geöffnet werden werden
                             else if(Ziel_Status === 1){
                                 if(Status === 0){
                                     if(logging){
                                         log('Magnetventil soll per Homekit geöffnet werden.');
                                     }
                                     setStateDelayed(id_Magnetventil,true,1000);
                                     setState(id_Status,1);
                          
                                     if(Soll === 0){
                                         log('Es wurde kein Countdown gestartet. Starte Stopuhr.');
                                         if(timer){ 
                                             clearInterval(timer); // Stopp Timer
                                             timer = null;
                                             if(debugging){
                                                 log('[DEBUG] '+'[Ziel_Status] ' +'Stoppuhr soll gestartet werden. Es existiert ein Timer. Der Timer wird abgebrochen.');
                                             }
                                         }
                                         timer = setInterval(function() {
                                             Ist++;
                                             //if(debugging){
                                             //    log('Countdown bei ' +Ist +' Sekunden');
                                             //}    
                                             setState(id_Ist,Ist);
                                             if(Ist >= Stoppuhr_Dauer) {
                                                 if(debugging){
                                                     log('[DEBUG] '+'[Ziel_Status] ' +'Stoppuhr für Magnetventil abgelaufen.');
                                                 }
                                                 clearInterval(timer);
                                                 timer = null;
                                                 setState(id_Ist, 0, true);
                                         
                                         
                                                 if(getState(id_Magnetventil).val){
                                                     if(logging){
                                                         log('Stoppuhr abgelaufen. Magnetventil ist noch offen.');
                                                     }
                                                     if(Stoppuhr_Wasser_off){
                                                         if(logging){
                                                             log('Magnetventil soll automatisch ausschalten.');
                                                         }
                                                         setState(id_Soll, 0, true);
                                                         setState(id_Ist, 0, true);
                                                         setState(id_Magnetventil,false);
                                                     }
                                                     //Push verschicken
                                                     if(sendpush){
                                                         _prio = 2;
                                                         _message = 'Magnetventil ist immer noch offen. Vergessen?';
                                                         send_pushover(_device, _message, _titel, _prio);
                                                     } 
                                                 }
                                                 else{
                                                     if(debugging){
                                                         log('[DEBUG] '+'[Ziel_Status] ' +'Stopuhr abgelaufen Magnetventil war bereits ausgeschaltet');
                                                     }
                                                 }
                                             }   
                                         }, 1000);
                                     }
                                 }
                                 else{
                                     if(debugging){
                                         log('[DEBUG] '+'[Ziel_Status] ' +'Magnetventil wurde nicht über Homekit bedient (angeschaltet)');
                                     }
                                 }
                          
                             }
                             else{
                                 if(debugging){
                                     log('[DEBUG] '+'[Ziel_Status] ' +'Fehler der Zielstatus ist ungleich 0 oder 1. Das darf eigentlich nicht passieren');
                                 }
                             }
                          }
                          
                          function func_Status_Syncroniserung(){
                             var Status = getState(id_Status).val;
                             var Ziel_Status = getState(id_Ziel_Status).val;
                             var Magnetventil = getState(id_Magnetventil).val;
                          
                             if(Magnetventil){
                                 if(Status === 0){
                                     setState(id_Status,1);
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Status war 0 wird auf 1 gesetzt, da das Magnetventil an ist');
                                     }
                                     
                                 }
                                 else{
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Status war bereits auf 1. Magnetventil ist an');
                                     } 
                                 }
                                 if(Ziel_Status === 0){
                                     setState(id_Ziel_Status,1);
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Magnetventil wurde nicht über Homekit eingeschaltet. Ziel_Status wird von 0 auf 1 geändert');
                                     }
                                 }
                                 else{
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Ziel_Status war bereits auf true. Magnetventil wurde eingeschaltet'); 
                                     }
                                 }
                             }
                             else{
                                 if(Status == 1){
                                     setState(id_Status,0);
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Status war 1 und wird auf 0 geändert weil das Magnetventil aus ist');
                                     }
                                     
                                 }
                                 else{
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Status war bereits auf 0 nachdem das Magnetnvetil ausgeschaltet wurde'); 
                                     }
                                 }
                                 if(Ziel_Status == 1){
                                     setState(id_Ziel_Status,0);
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Magnetventil wurde nicht über Homekit ausgeschaltet. Ziel_Status wird von 1 auf 0 geändert');
                                     }
                                 }
                                 else{
                                     if(debugging){
                                         log('[DEBUG] '+'[Status_Sync] ' +'Ziel_Status war bereits auf 0. Magnetventil wurde ausgeschaltet.'); 
                                     }   
                                 }
                          
                             }
                          }
                          
                          function func_countdown(){
                             var Status = getState(id_Status).val;
                             var Soll = Number(getState(id_Soll).val);
                             var Ist = Soll;
                             //ontime 5 Sekunden kürzer
                             var ontime = Soll - 10;
                             setState(id_Ist,Ist);
                          
                             if(set_on_time){
                                 setState(id_Magnetventil_on_time,ontime);
                             }
                             setStateDelayed(id_Ziel_Status,1,500);
                             
                             if(logging){
                                 log('Timer für Magnetventil wird gestartet für ' +Soll +' Sekunden.');
                             }
                             
                             if(timer){ 
                                 clearInterval(timer); // Stopp Timer
                                 timer = null;
                                 if(logging){
                                     log('[countdown] ' +'Es besteht schon ein Timer für das Magnetventil. Ggf prüfen');
                                 }
                             }
                          
                             if(Soll !== 0){
                                 timer = setInterval(function() {
                                     Ist--;
                                     //if(debugging){
                                     //    log('Countdown bei ' +Ist +' Sekunden');
                                     //}    
                                     setState(id_Ist,Ist);
                                     if(Ist <= 0) {
                                         if(logging){
                                             log('Timer für Magnetventil abgelaufen');
                                         }
                                         clearInterval(timer);
                                         timer = null;
                                         setState(id_Soll, 0, true);
                                         setState(id_Ist, 0, true);
                                         if(set_on_time){
                                             setState(id_Magnetventil_on_time,0);
                                         }
                                         if(getState(id_Magnetventil).val){
                                             if(set_on_time){
                                                 if(logging){
                                                     log('Achtung: Magnetventil war noch nicht ausgeschaltet. Es wird nun ausgeschaltet.');
                                                 }
                                             }
                                             else{
                                                 if(logging){
                                                     log('Magnetventil wird ausgeschaltet');
                                                 }
                                                 
                                             }
                                             setState(id_Magnetventil,false);
                                             //Push verschicken
                                             if(sendpush){
                                                 if(set_on_time){
                                                     _message = 'Magnetventil war nicht geschlossen. on_Befehl hat nicht funktioniert';
                                                 }
                                                 else{
                                                     _message = 'Magnetventil wurde ausgeschaltetn.';    
                                                 }
                                                 send_pushover(_device, _message, _titel, _prio);
                                             } 
                                         }
                                         else{
                                             if(debugging){
                                                 log('[countdown] ' +'Magnetventil war bereits ausgeschaltet');
                                             }
                                         }
                                     }   
                                 }, 1000);
                             }
                             else{
                                 if(debugging){
                                     log('[countdown] ' +'Soll ist gleich 0');
                                 }
                             }
                          } 
                          
                          
                          //beim Start
                          //func_countdown();
                          
                          on({id: id_Soll, valGt: 0 ,change: "ne"}, func_countdown);
                          on({id: id_Ziel_Status, change: "ne"}, func_Ziel_Status);
                          on({id: id_Magnetventil, change: "ne"}, func_Status_Syncroniserung);
                          

                          M Offline
                          M Offline
                          Marsel
                          schrieb am zuletzt editiert von
                          #65

                          @cash Du bist mein Held!!! Ich habe es grade ausprobiert und jetzt Funktioniert alles ohne Problem! :rolling_on_the_floor_laughing: Ich Danke dir, das ist echt Cool!!!

                          cashC 1 Antwort Letzte Antwort
                          0
                          • M Marsel

                            @cash Du bist mein Held!!! Ich habe es grade ausprobiert und jetzt Funktioniert alles ohne Problem! :rolling_on_the_floor_laughing: Ich Danke dir, das ist echt Cool!!!

                            cashC Offline
                            cashC Offline
                            cash
                            Most Active
                            schrieb am zuletzt editiert von
                            #66

                            @Marsel Danke für die Rückmeldung.

                            1 Antwort Letzte Antwort
                            0
                            • P Offline
                              P Offline
                              porto
                              schrieb am zuletzt editiert von
                              #67

                              Hallo Leute. Habt ihr das Script auch vielleicht in Blockly? In Javascript habe ich absolut keine Ahnung :/
                              Ich versuche schon seid tagen das irgendwie hin zu bekommen. aber völlig ohne erfolg. Da die Materie für mich komplettes Neuland ist. Kenn ich mich nicht gut aus.

                              B 1 Antwort Letzte Antwort
                              0
                              • P porto

                                Hallo Leute. Habt ihr das Script auch vielleicht in Blockly? In Javascript habe ich absolut keine Ahnung :/
                                Ich versuche schon seid tagen das irgendwie hin zu bekommen. aber völlig ohne erfolg. Da die Materie für mich komplettes Neuland ist. Kenn ich mich nicht gut aus.

                                B Offline
                                B Offline
                                berlinerbart
                                schrieb am zuletzt editiert von
                                #68

                                An einem Blockly wäre ich auch sehr interessiert. Ich versuche genau das was Ihr umgesetzt habt mit seit geraumer Zeit aber es will mir einfach nicht so recht gelingen. Die Idee, mit dem hochzählen der Zeit wenn nur eingeschaltet wurde bekomme ich bei Yahka einfach nicht hin und der Rest eher schlecht als recht.

                                Wäre toll wenn Ihr uns helfen könntet.

                                P 1 Antwort Letzte Antwort
                                0
                                • B berlinerbart

                                  An einem Blockly wäre ich auch sehr interessiert. Ich versuche genau das was Ihr umgesetzt habt mit seit geraumer Zeit aber es will mir einfach nicht so recht gelingen. Die Idee, mit dem hochzählen der Zeit wenn nur eingeschaltet wurde bekomme ich bei Yahka einfach nicht hin und der Rest eher schlecht als recht.

                                  Wäre toll wenn Ihr uns helfen könntet.

                                  P Offline
                                  P Offline
                                  porto
                                  schrieb am zuletzt editiert von
                                  #69

                                  @berlinerbart
                                  Hey Berlinerbart. Hast du schon was hin bekommen?
                                  ich hab es jetzt selber in angriff genommen. immer mal wieder am Abend etwas rechachiert und in Blockly umgesetzt. hab es jetzt auch seid gestern fertig. bin gerade noch alles am testen aber scheint alles super zu funktionieren :)
                                  Kann dir gerne dabei helfen.

                                  K 1 Antwort Letzte Antwort
                                  0
                                  • P Offline
                                    P Offline
                                    Patte82
                                    schrieb am zuletzt editiert von
                                    #70

                                    Ich versuche verzweifelt das Script auf einen Sonoff Basic mit angeschlossenem Magentventil umzustellen.

                                    Leider ohne großen Erfolg.

                                    Die eingestellte Zeit aus der Home App wird in den passenden Wert Übertagen. mehr passiert aber leider nicht :(

                                    Hat jemand die Nerven mir zu helfen? :)

                                    1 Antwort Letzte Antwort
                                    0
                                    • P porto

                                      @berlinerbart
                                      Hey Berlinerbart. Hast du schon was hin bekommen?
                                      ich hab es jetzt selber in angriff genommen. immer mal wieder am Abend etwas rechachiert und in Blockly umgesetzt. hab es jetzt auch seid gestern fertig. bin gerade noch alles am testen aber scheint alles super zu funktionieren :)
                                      Kann dir gerne dabei helfen.

                                      K Offline
                                      K Offline
                                      Kochen
                                      schrieb am zuletzt editiert von
                                      #71

                                      @porto Kannst du dein Blockly ggf. zur Verfügung stellen? Ich komme mit dem JavaSkript nicht weiter...

                                      P 1 Antwort Letzte Antwort
                                      0
                                      • J jack99n

                                        Als erstes müsst ihr euch ein Datenpunkt vom Typ Zahl anlegen, Min 0 und Max 3600 außer ihr wollt über die Eve App die Zeit einstellen dann bei Max 14400.
                                        A69BC1AF-EDF9-4AD3-A197-EB86F932D7D9.jpeg

                                        Die erzeugte Variable verknüpft ihr bei Yahka unter RemainingDuration und SetDuration.
                                        D3F3F59E-6B6C-4B0F-8215-AA60A672393C.jpeg 20796D37-7DE5-47F1-BFC3-9378305E0AD9.jpeg

                                        Bei Active und InUse kommt ja euer Datenpunkt für das Ventil rein, und unter ValveType kann man auch mit einem selbst erstellten Datenpunkt Typ Werteliste mit 2 Werten. 0 für ein Wasserhahn Icon oder 1 für ein Sprenger Icon!

                                        Jetzt müsst ihr nur noch mit Blockly dieses Skript erstellen, und dann könnt ihr die Zeit in der App einstellen.

                                        14F9446B-DE50-4AB3-AA22-F7D589F72F76.jpeg

                                        H Offline
                                        H Offline
                                        HuegelJ
                                        schrieb am zuletzt editiert von HuegelJ
                                        #72

                                        @jack99n Hi, bei mir gibt es in der Apple Home App jetzt lediglich 5min und 10min Aktivezeit zum auswählen. Der Datenpunkt vom Typ Zahl ändert sich von 300 auf 600. Das passt soweit aber wieso kann ich lediglich die beiden Zeiten auswählen ?
                                        Bitte um Hilfe.... ich finde es alleine nicht herraus!
                                        Danke im Vorraus... :D
                                        023af361-1a29-4712-b82c-9dc201f56f48-grafik.png

                                        H 1 Antwort Letzte Antwort
                                        0
                                        • H HuegelJ

                                          @jack99n Hi, bei mir gibt es in der Apple Home App jetzt lediglich 5min und 10min Aktivezeit zum auswählen. Der Datenpunkt vom Typ Zahl ändert sich von 300 auf 600. Das passt soweit aber wieso kann ich lediglich die beiden Zeiten auswählen ?
                                          Bitte um Hilfe.... ich finde es alleine nicht herraus!
                                          Danke im Vorraus... :D
                                          023af361-1a29-4712-b82c-9dc201f56f48-grafik.png

                                          H Offline
                                          H Offline
                                          HuegelJ
                                          schrieb am zuletzt editiert von
                                          #73

                                          @HuegelJ Hab gerade herrausgefunden das ich am Ipad bis 1h einzustellen kann. Muss ein Bug im neuen IOS14 sein....

                                          J 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          396

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe