Ankündigung

Einklappen
Keine Ankündigung bisher.

Wiederkehrende Warnung erzeugen

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

    Wiederkehrende Warnung erzeugen

    Hi Zusammen,

    ich habe bei meinen Reeds der Fenster ein Warn Item, welches true wird, wenn ein Fenster 10 min geöffnet ist.

    Darauf lauscht eine Logik, welche mir dann per Telegram ein Nachricht sendet, dass das Fenster XY 10 min auf ist.

    Nun passiert es aber immer mal wieder, dass trotz der Meldung ein Fenster "vergessen" wird zu schließen.

    Was möchte ich erreichen?

    Ich möchte nach den 10 min eine wiederkehrende Warnung ausgeben im 5min Takt, quasi lernen die Fenster zu schließen durch "Penetration"

    (Noch cooler wärs natrülich, wenn die Warnung mit der Dauer öfters kommt. Quasi erste nach 10min zweite 5min später dann 4,3,2,1,1,1,1 oder so ähnlich)

    Wo ist mein Problem?

    Mir fehlt gerade irgendwie der Ansatzpunkt wie ich dies umsetzen kann.

    Anbei mal meine Item Struktur:


    Code:
    Fenster:
        Gaeste_WC:
            status_v:
                type: bool
                knx_dpt: 1
                knx_cache: 4/1/1
                visu_acl: rw
                
            status_g:
                type: bool
                knx_dpt: 1
                knx_cache: 4/1/2
                visu_acl: rw
                
            zu:
                type: bool
                enforce_updates: yes
                eval: True if sh...status_v() == 1 and sh...status_g() == 1 else False
                eval_trigger:
                  - ..status_v
                  - ..status_g
    
            gekippt:
                type: bool
                enforce_updates: yes
                eval: True if sh...status_v() == 0 and sh...status_g() == 1 else False
                eval_trigger:
                  - ..status_v
                  - ..status_g
    
            offen:
                type: bool
                enforce_updates: yes
                eval: True if sh...status_v() == 0 and sh...status_g() == 0 else False
                eval_trigger:
                  - ..status_v
                  - ..status_g
                  
            
            state:
                type: num
                visu_acl: r
                autotimer: 10m = 2
                eval: int(value) if int(value) < 2 or sh...state() == 1 else sh...state()
                eval_trigger:
                 - ..offen
                
            warn:
                type: bool
                visu_acl: r
                eval: value == 2
                eval_trigger:
                 - ..state
    Die Logik dazu welche als watch_item '*.warn' hat

    Code:
    #!/usr/bin/env python3
    # fensterwarnung.py
    
    
    
    source_item = trigger['source']
    
    message = '{0}'.format(source_item)
    message_array = message.split(".")
    
    message = 'Fensterwarnung! Fenster {0} laenger als 10 min offen. Bitte schliessen'.format(message_array[1])
    
    
    
    if trigger['value'] == True:
        sh.telegram._msg_broadcast(message)
    Irgendwie bräucht ich ein Item, welches nach 10 minuten gesetzt wird und alle 5 Minuten eine Logik lostritt?!
    Zuletzt geändert von magiczambo; 28.01.2021, 22:44.
    Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

    #2
    Hi magiczambo ,

    schau mal hier , das sollte mit einem angepassten Interval je Durchlauf Deine Anforderungen erfüllen und die entsprechende "Penetration" möglich machen

    Gruss Andre

    Kommentar


      #3
      Hihi :-)

      Wenn Du da was baust solltest Du gleich noch eine Abhängigkeit einfügen. Z.B. wie bei mir die Außentemperatur, denn manchmal soll das Fenster ja auch länger offen sein, in kühlen Sommernächten z.B.

      Mit der Blinker Logik funktioniert es bei mir pima.

      Gruß Jürgen

      Kommentar


        #4
        Mh, sorry aber mir fehlt gerade der Ansatz zur Transformation auf meinen Anwendungsfall. Ich will ja nichts blinken lassen ( im Blogbeitrag steht: Alles Items müssen vom Typ Boolean sein...) und zudem soll sich ja quasi meine cycle Time verringern nach jedem Durchgang.

        mal davon abgesehen, dass ich ja für alle 16 Fenster eine Logik anlegen müsste, oder?
        Zuletzt geändert von magiczambo; 29.01.2021, 22:13.
        Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

        Kommentar

        Lädt...
        X