Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - eval und eval_trigger

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

    - √ - eval und eval_trigger

    Ich komme hier an einer Stelle mit eval und eval_trigger nicht weiter

    Code:
    [Licht]
    type = bool
    knx_send = 1/2/10
    knx_listen = 1/2/11
    knx_dpt = 1
    eval_trigger = A1
    eval = ???
    
    [A1]
    type = bool
    enforce_updates = true
    enocean_id = 00:22:60:37
    enocean_rorg = F6_02_02
    enocean_value = A1
    A1 sendet bei Tastendruck 'True' und wenn ich die Taste los lasse 'False', nun möchte ich nur das 'True' auswerten und das item Licht umschalten.
    Grundsätzlich hatte ich es schon fast geschafft nur dass das KNX-Plugin natürlich auch durch eval läuft.

    Vorgestellt hatte ich mir so etwas beim Licht, wobei ich hier schon im EnOcean-Plugin nur ein 'True' für A1 senden lasse:

    eval = if trigger['source'] == 'EnOcean' (value if (not sh.Licht()) else False) else value

    Irgendwie will es aber nicht. Ich will eval also nur bei trigger['source'] == 'EnOcean' ausführen und dann den momentan vorhandenen Wert invertieren. Am besten wenn A1 auch False annehmen könnte was dann einfach ignoriert wird.

    Gruß Mirko
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    #2
    ^self () if (trigger ['source'] == 'enocean') and value else self ()

    Ungetestet.

    Grüße aus Toronto
    Robert
    HM-KNX - KNX-Interface für Hörmann Garagentorantriebe: http://www.ing-budde.de

    Kommentar


      #3
      Hi,

      zwar formal nicht ganz korrekt da eval None zurück liefert, aber eine einfache pragmatische Lösung.

      Code:
      [Licht]
      type = bool
      knx_send = 1/2/10
      knx_listen = 1/2/11
      knx_dpt = 1
      
      
      [A1]
      type = bool
      enocean_id = 00:22:60:37
      enocean_rorg = F6_02_02
      enocean_value = A1
      eval = sh.Licht(True)
      Bis bald

      Marcus

      Kommentar


        #4
        Wie geht das Licht denn dann wieder per Enocean aus? Oder steh ich grad voll auf dem Schlauch?
        HM-KNX - KNX-Interface für Hörmann Garagentorantriebe: http://www.ing-budde.de

        Kommentar


          #5
          Über A1 geht das Licht nicht aus. Es soll ja das False ignoriert werden. Dazu benötigt man A2.

          Kommentar


            #6
            Naja ich möchte möglichst mit A1 das Licht UMschalten.
            Ich könnte für AUS natürlich auch A0 verwenden.

            Wichtig ist dass nur auf ein True von A1 reagiert wird und das False verworfen wird.
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #7
              Hi Mirko,

              das umschalten ist eine neue Anforderung. Seis drum. Das müsste klappen:

              Code:
              eval = if value: sh.Licht(! sh.Licht())
              Vorausgesetzt, das enocean Plugin setzt eine 0/1 oder True/False.

              Bis bald

              Marcus

              Kommentar


                #8
                Funktionierte mein Vorschlag nicht?
                HM-KNX - KNX-Interface für Hörmann Garagentorantriebe: http://www.ing-budde.de

                Kommentar


                  #9
                  Hi Robert,

                  nein.

                  Code:
                  trigger ['source'] == 'enocean'
                  trigger['source'] gibt es beim eval nicht. Und als Trigger funktioniert ja auch ein Item und nicht enocean.

                  Bis bald

                  Marcus

                  Kommentar


                    #10
                    Als eval ohne eval_trigger?

                    Aber gut, das macht es noch kürzer. Dann ohne.

                    Grüße vom Toronto Airport - daher kann ich das leider nicht checken
                    Robert
                    HM-KNX - KNX-Interface für Hörmann Garagentorantriebe: http://www.ing-budde.de

                    Kommentar


                      #11
                      Ich konnte heute nur kurz testen, bislang hat aber nichts funktioniert .

                      Morgen Abend hab ich Zeit dazu .. vielleicht kommt bis dahin ja was raus ... A1 wird nur mit 'True' aktualisiert. Stellt euch einfach ein item vor das nur 'True' in die smarthome-Welt sendet.

                      Danke für Eure Gedanken!

                      Gruß Mirko
                      Umgezogen? Ja! ... Fertig? Nein!
                      Baustelle 2.0 !

                      Kommentar


                        #12
                        Hallo Ihr beiden,

                        ich denke wir verfolgen hier den falschen Ansatz.
                        Das sollte besser das Plugin abfangen und das Item 'Licht' Umschalten. Also nicht den Umweg über A1 gehen.
                        Der Anwendungsfall dürfte doch relativ häufig vorkommen und dafür immer ein Zusatz-Item mit 'komplexer' Eval-Logik? Naaah.

                        Bis bald

                        Marcus

                        P.S. Robert guten Rückflug

                        Kommentar


                          #13
                          Ich denke das kann das Plugin gar nicht abfangen:

                          Drücke Schalter A1 -> (Schalter sendet A1)
                          Löse Schalter A1 -> (Schalter sendet 0)
                          Drücke Schalter B0 -> (Schalter sendet B0)
                          Löse Schalter B0 -> (Schalter sendet 0)

                          Daher hab ich dort nun schon das False gefiltert. A1 sendet also nur True. Ein Byte kann ich mir noch mal ansehen, das ist nicht vernünftig dokumentiert.
                          Umgezogen? Ja! ... Fertig? Nein!
                          Baustelle 2.0 !

                          Kommentar


                            #14
                            Also mal ehrlich Jungs, was war daran so schwer?

                            Code:
                            [Licht]
                            type = bool
                            knx_send = 1/2/10
                            knx_listen = 1/2/11
                            knx_dpt = 1
                            eval_trigger = A1
                            eval = value
                            
                            [A1]
                            type = bool
                            enforce_updates = true
                            enocean_id = 00:22:60:37
                            enocean_rorg = F6_02_02
                            enocean_value = A1
                            eval = not(sh.Licht())
                            Manchmal hat man auch nen Brett vorm Kopf ... in diesem Sinne Danke!


                            Grüße
                            Umgezogen? Ja! ... Fertig? Nein!
                            Baustelle 2.0 !

                            Kommentar


                              #15
                              JuMi2006

                              Zitat von JuMi2006 Beitrag anzeigen
                              Also mal ehrlich Jungs, was war daran so schwer?

                              ...

                              Manchmal hat man auch nen Brett vorm Kopf ... in diesem Sinne Danke!


                              Grüße
                              Vielleicht kannst du mir dabei helfen das Brett vorm Kopf zu entfernen - hab mit dem Thema hier in dem Thread gestartet: https://knx-user-forum.de/forum/supportforen/smarthome-py/1058815-hilfe-zur-inbetriebnahme-von-enocean-plugin-gesucht/page2

                              Meine Items sehen wie folgt aus, jedoch bleibt das schalten ohne Erfolg...


                              Code:
                                
                               Lampen:
                                  Schlafzimmer:
                                      Deckenlampe:
                                          schalten:
                                              name: Deckenlicht
                                              type: bool
                                              knx_dpt: 1
                                              knx_send: 0/0/1
                                              knx_init: 0/0/1
                                              eval_trigger: AI
                                              eval: value
                              Code:
                                
                               # enocean.yaml Enocean_devices:
                                  Schalter:
                                      Schlafzimmer:
                                          AI:
                                              enocean_rx_id: FEF59C60
                                              enocean_rx_eep: F6_02_01
                                              type: bool
                                              enocean_rx_key: AI
                                              eval: not(sh.Lampen.Schlafzimmer.Deckenlampe.schalten())
                              Siehst du das Brett an meiner Stirn?

                              VG Jannis

                              Kommentar

                              Lädt...
                              X