Ankündigung

Einklappen
Keine Ankündigung bisher.

Nachricht bei zu lange geöffnetem Fenster

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Nachricht bei zu lange geöffnetem Fenster

    Hallo zusammen,

    ich versuche schon seit ein paar Tagen etwas zu basteln, dass mir eine pushbullet note schickt, falls ein Fenster (auf: 1; zu:0) länger als zb. 30 Minuten auf ist und die Außen-Temperatur unter zb. 20 Grad ist.
    Ich habe ewig mit triggern in den Items rumgespielt, aber ich kriege es irgendwie nicht hin.
    Habt ihr mir ein paar Absätze und Ideen?

    #2
    Du kannst bspw. das Alter eines Items mit einer Logik/eval auswerten. Das Alter ist eine Itemfunktio (siehe hier).

    So als Idee:

    Code:
    fensterkontakt:[INDENT]type: bool
    
    watchdog:[/INDENT][INDENT=2]type: bool[/INDENT][INDENT=2]eval: 1 if (sh.fensterkontakt.age() > 1200 && sh.fensterkontakt() == 1) else 0[/INDENT][INDENT=2]cylce: 60[/INDENT]
    fensterkontakt ist Dein Item, für den Fensterkontakt selbst. Watchdog ist Dein Item für Fenster zu lange auf. Der eval darin wird alle 60s gestartet. Ist das Fenster offen (1) und das Alter des Items > 1200s, dann wird der Watchdog "True".

    So mal als erste Anregung. Geht aber bestimmt noch besser.

    Kommentar


      #3
      Danke, von age wusste ich bislang noch nichts. Das bringt mich natürlich sehr weit.

      Kommentar


        #4
        Ich würde einfach das watchdog item in einer Logik, getriggert vom Fenster, mit einem Timer starten (...watchdog.timer(1200,1)
        Und beim schließen des Fensters den Timer wieder zurücksetzen: ...watchdog.timer(0,0)

        Wenn Watchdog dann 1 wird die Nachricht absetzen und Watchdog auf 0 setzen.

        Kommentar


          #5
          schuma

          Das mit watchdog.timer(1200,1) interessiert mich auch.
          Muss man das mit einer Logik lösen, oder geht es auch mit eval?

          Kommentar


            #6
            Einfach in eine Logik schreiben
            Kann aber auch sein, dass das mit eval funktioniert. Weiß ich aber nicht.
            Ich würde es einfach in der Logik machen.

            Kommentar


              #7
              Hi,

              hier eine Alternative mit Items, habe ich bei jedem Fenster. Ausgangslage ist ein Item "Geschlossen", dass immer true wird, wenn ein Fenster geschlossen ist und false, wenn es offen ist.
              Code:
                      [Fenster]
                          [[Geschlossen]]
                              type = bool
                          [[Stosslueften]]
                              type = bool
                              name = Stoßlüften
                              eval = not value
                              eval_trigger = ..Geschlossen
                              autotimer = 30m = 1
                          [[Auskuehlalarm]]
                              type = bool
                              name = Raum kühlt aus
                              knx_dpt = 1
                              knx_status = 2/1/1
                              knx_reply = 2/1/1
                              eval = not (sh...Geschlossen() or sh...Stosslueften())
                              eval_trigger = ..Stosslueften | ..Geschlossen
              Folgendes passiert:
              1. Geschlossen = 1, Stosslueften = 0, Auskuehlalarm = 0 (Ausgangssituation)
              2. Geschlossen wird 0, Stosslueften = not 0, wird also 1, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (0 or 1) = 0, ändert sich nicht.
              3. Nach 30 Minuten feuert autotimer eine 1: Stosslueften = not 1 = 0, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (0 or 0) = 1, Du hast Deinen Alarm.
              4. Jetzt wird das Fenster geschlossen: Geschlossen = 1, Stosslueften = not 1 = 0, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (1 or 0) = 0, Alarm ist wieder weg.
              Die anderen Fälle:
              • Vor 30 Minuten wird das Fenster geschlossen: Geschlossen wird 1, Stosslueften = not 1 = 0, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (1 or 0) = 0, ändert sich nicht.
              • Bei geschlossenem Fenster feuert der autotimer nochmal nach 30 Minuten mit einer 1 (passiert immer): Stosslueften = not 1 = 0 (war schon vorher 0), Wert hat sich somit nicht geändert und damit wird weder ein neuer autotimer noch Auskuehlalarm getriggert. Es passiert somit nichts.
              Das sind alle Fälle die mir hierbei einfallen. Hast Du mehrere Fenster im Raum, darf "Geschlossen" erst true werden, wenn alle Fenster im Raum zu sind.

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar


                #8
                Danke danke für die Top-Lösungen und Lösungs-Ansätze.

                Fürs erste habe ich es wie von Sisamiwe vorgeschlagen wie folgt gelöst:

                item:
                Code:
                    [[Fenster]]
                        type = bool
                        [[[Alarm]]]
                            type = bool
                            cycle = 180
                            eval = 1 if (sh.Fenster.age() >= 1500 and sh.Fenster() == 1) else 0
                logic:
                Code:
                if sh.Fenster.Alarm() == 1 and sh.Status.Wetterstation.Temperatur() <= 22:
                  sh.pushbullet.note('Fenster geöffnet', body='Fenster zu lange geöffnet')
                if sh.Fenster() == 1 and sh.Status.Regen() == 1:
                  sh.pushbullet.note('Fenster offen und Regen', body='Fenster offen und Regen')
                Vielen herzlichen Dank an alle.

                Kommentar


                  #9
                  Hat schon jemand eine "zu-lang-geöffnetess-Fenster-Erkennung" über das Abfallen Raumtemperatur realisiert?
                  Gruß Ivan

                  Kommentar


                    #10
                    Hallo,

                    ich finde die Lösung von Waldemar super und plädiere dafür, die in der Doku unter Docs » Konfiguration » Items » Tipps und Tricks oder einen eigenen Rubrik "Beispiele" zu veröffentlichen oder zu verewigen.
                    Hier geht es unter, denke ich.


                    Zitat von mumpf Beitrag anzeigen
                    Hi,

                    hier eine Alternative mit Items, habe ich bei jedem Fenster. Ausgangslage ist ein Item "Geschlossen", dass immer true wird, wenn ein Fenster geschlossen ist und false, wenn es offen ist.
                    Code:
                    [Fenster]
                    [[Geschlossen]]
                    type = bool
                    [[Stosslueften]]
                    type = bool
                    name = Stoßlüften
                    eval = not value
                    eval_trigger = ..Geschlossen
                    autotimer = 30m = 1
                    [[Auskuehlalarm]]
                    type = bool
                    name = Raum kühlt aus
                    knx_dpt = 1
                    knx_status = 2/1/1
                    knx_reply = 2/1/1
                    eval = not (sh...Geschlossen() or sh...Stosslueften())
                    eval_trigger = ..Stosslueften | ..Geschlossen
                    Folgendes passiert:
                    1. Geschlossen = 1, Stosslueften = 0, Auskuehlalarm = 0 (Ausgangssituation)
                    2. Geschlossen wird 0, Stosslueften = not 0, wird also 1, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (0 or 1) = 0, ändert sich nicht.
                    3. Nach 30 Minuten feuert autotimer eine 1: Stosslueften = not 1 = 0, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (0 or 0) = 1, Du hast Deinen Alarm.
                    4. Jetzt wird das Fenster geschlossen: Geschlossen = 1, Stosslueften = not 1 = 0, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (1 or 0) = 0, Alarm ist wieder weg.
                    Die anderen Fälle:
                    • Vor 30 Minuten wird das Fenster geschlossen: Geschlossen wird 1, Stosslueften = not 1 = 0, triggert autotimer auf 30 Minuten. Auskuehlalarm = not (1 or 0) = 0, ändert sich nicht.
                    • Bei geschlossenem Fenster feuert der autotimer nochmal nach 30 Minuten mit einer 1 (passiert immer): Stosslueften = not 1 = 0 (war schon vorher 0), Wert hat sich somit nicht geändert und damit wird weder ein neuer autotimer noch Auskuehlalarm getriggert. Es passiert somit nichts.
                    Das sind alle Fälle die mir hierbei einfallen. Hast Du mehrere Fenster im Raum, darf "Geschlossen" erst true werden, wenn alle Fenster im Raum zu sind.

                    Gruß, Waldemar
                    Was meint ihr?

                    Kommentar

                    Lädt...
                    X