Ankündigung

Einklappen
Keine Ankündigung bisher.

Nur True auf den Bus senden

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

    Nur True auf den Bus senden

    Moin zusammen,
    ich möchte gern von einem Item aus, dass nur das True auf den Bus gesendet wird. Nicht aber das False. Geht das irgendwie?
    Bei True sollen dann diverse Komponenten angehen. Aber wenn ich das zurücknehme, sollen die Komponenten nicht ausgehen.

    Sicherlich geht das mit Szenen auch, aber das würde ich gern vermeiden. Dann muss ich alle Aktoren neu laden.
    Vielleicht gibt es da eine einfache Lösung mit smarthome.py.

    Würde das folgende ggf. gehen? Kann ich einen eval ohne Else Zweig erstellen?

    Code:
    [ZENTRAL]
        [[FUNKTION1]]
            [[[FUNKTION1_AUSGELOEST]]]
                name = Funktion kann 1 und 0 werden
                type = bool
                visu_acl = rw
                enforce_updates = True
                [[[[SENDE_AUF_BUS]]]]
                    name = Sendet nur die 1 Signale auf den Bus
                    type = bool
                    visu_acl = rw
                    enforce_updates = True
                    knx_dpt = 1
                    knx_listen = 0/0/1
                    knx_send = 0/0/1
                    knx_init = 0/0/1
                    eval = True if sh.ZENTRAL.FUNKTION1.FUNKTION1_AUSGELOEST
                    eval_trigger = ZENTRAL.FUNKTION1.FUNKTION1_AUSGELOEST

    #2
    Zitat von loeserman Beitrag anzeigen
    Würde das folgende ggf. gehen? Kann ich einen eval ohne Else Zweig erstellen?
    Teste es halt!

    Sicher hat es noch einen Fehler: Um den Wert eines Items zu lesen, braucht es dahinter (), also
    Code:
    eval = True if sh.ZENTRAL.FUNKTION1.FUNKTION1_AUSGELOEST()
    Aber anstatt das Trigger-Item zu wiederholen, kannst du unter Umständen im eval auch einfach value verwenden:
    Code:
    eval = True if value
    Brauchst du knx_listen und knx_init auf dem Item tatsächlich? Dies bewirkt nämlich, dass bei einer externen Änderung das eval ebenfalls ausgeführt wird.

    Alternativ geht sicher:
    Code:
    eval = True if value else None
    Bei beiden Varianten wird übrigens eine Warning geloggt.



    Kommentar

    Lädt...
    X