Ankündigung

Einklappen
Keine Ankündigung bisher.

Auf KNX-Szenen in HA reagieren

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

    Auf KNX-Szenen in HA reagieren

    Hallo,

    ich bin etwas verwirrt.
    Ohne die Dokumentation zu lesen, hätte ich erwartet, dass
    Code:
    scene:
    - name: "Zocken"
    address: 10/1/2
    scene_number: 3
    Read und Write ist. Ist aber nur Write, ich kann also nur eine Szene Auslösen.
    Warum ist das so?

    Wie auch immer, da ich auf eine KNX Szene reagieren möchte, habe ich angefangen zu lesen:
    Hier https://community.home-assistant.io/...vent/276749/12 wird vorgeschlagen, eine Automation mit dem knx_event zu machen.
    Code:
    trigger:
      - platform: event
        event_type: knx_event
        event_data:
          destination: 10/1/2
          data: 3
    condition: []​


    Da war ich mir jetzt nicht sicher, ob data=3 oder 2 sein sollte (KNX Szene ist 3, aber auf dem Bus kommt ja eine 2).
    Also mal in den Entwickleroptionen gehört:
    chrome_8XyHdlB3Vq.png
    Da kommt aber garnix. Auch wenn ich normal das Licht schalte.

    Nun gut. Was sagt Youtube?
    https://youtu.be/L3O59IK4Si8?t=1165
    Hier wird vorgeschlagen in der knx.yaml ein Event anzulegen (type: scene)
    Aber natürlich lesen wir vorher die Dokumentation zu Event. Aber huch, da steht
    For automation triggers, it is recommended to use the knx.telegram trigger instead of knx_event​
    Jetzt bin ich total verwirrt.
    Also: Es gibt knx_event in der knx.yaml UND in der Automation als trigger.
    Aber nutzen soll ich lieber knx.telegram.

    Warum?

    Intuitiv fänd ich es, das, worauf ich reagieren will in der knx.yaml einzurichten.
    In der automation auf Events zu reagieren wirkt ein wenig, als würde man auf die Roh-Daten zugreifen und es wirkt wie ein Hack.

    Sorry, ist jetzt ein wenig lang geworden... Aber vielleicht kann jemand Licht ins Dunkel bringen.

    Gruß,
    Hendrik

    #2
    Hallo,

    ich habe jetzt eine Lösung, die funktioniert:
    Code:
    trigger:
      - platform: device
        domain: knx
        device_id: f1fd5e024c692c7c40f8f3b2c1809934
        type: telegram
        group_value_write: true
        group_value_response: false
        group_value_read: false
        incoming: true
        outgoing: false
        destination:
          - 10/1/2
    condition:
      - condition: template
        value_template: "{{trigger.value.scene_number==3 and not trigger.value.learn }}"​
    hat jemand Feedback?

    Aber die Fragen oben bleiben: Warum so und nicht anders? Warum kann ich keine "lesende" entity für Szenen haben?

    Gruß,
    Hendrik

    Kommentar


      #3
      Weil es noch keiner programmiert hat?

      KNX ist im HA halt nicht die Basisfunktion.
      ----------------------------------------------------------------------------------
      "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
      Albert Einstein

      Kommentar


        #4
        Kann sein, würde mich aber wundern.
        Denn es gibt ja Szenen in HA KNX. Aber hald nur hörend, nicht schreibend.

        Kommentar


          #5
          Zitat von henfri Beitrag anzeigen
          Warum kann ich keine "lesende" entity für Szenen haben?
          Ich weiss nicht, ob ich deine Frage richtig verstehe, aber dein trigger soll doch auf das Auslösen einer KNX-Szene reagieren. Dann ist doch "trigger wenn group_value_write (der Szenenbefahl auf den Bus) = true naheliegend? Hatte ich ja auch im anderen thread schon geschrieben.

          Wenn ein trigger auf group_value_read (oder response) reagiert, reagiert der ja nicht auf irgendeinen aktiven "KNX-Trigger" (z.B. Szene auslösen, Licht einschalten etc.), sondern auf eine KNX-Funktion, die z.B. einen Status abfragt (auf zyklisches Senden reagieren wäre ja auch wieder group_value_write).

          Zitat von henfri Beitrag anzeigen
          Denn es gibt ja Szenen in HA KNX. Aber hald nur hörend, nicht schreibend.
          Weil im Datenmodell HA selbst die Szenen definiert/setzt/schreibt. Da kommen ja ganz viele Protokolle und Standards zusammen, die gar keine Szenen können. Deshalb kannst du existierende KNX Szenen einbinden (darauf reagieren, sie auslösen), aber nicht erstellen. Aber vielleicht verstehe ich auch einfach deinen Anwendungsfall nicht. Ist ja ähnlich in KNX selber, wenn du z.B. KNX-Szenen in einem TS3 erstellst, der dann die entsprechenden GAs and die Aktoren sendet, anstatt die Szenen in allen Aktoren anzulegen und nur die GA der Szene aufzurufen (du kannst über eine DPT 17 GA die Szene im TS3 aufrufen, aber der löst dann GAs an alle beteiligten Aktoren aus, die die Funktionen direkt steuern, also s.B. Licht an, Steckdose aus und Rollladen runter und sendet nicht nur die Szenen-ID).

          Kommentar


            #6
            Zitat von henfri Beitrag anzeigen
            Es gibt knx_event in der knx.yaml UND in der Automation als trigger.
            Aber nutzen soll ich lieber knx.telegram.
            Ja. Steht ja auch so in der Doku.
            `knx.telegram` Trigger gibts erst seit irgendwann dieses Jahres.
            `knx_event` ist Legacy - ist auch umständlich weil man das halt erst in yaml registrieren muss um es in Automations zu benutzen.

            Zitat von henfri Beitrag anzeigen
            Intuitiv fänd ich es, das, worauf ich reagieren will in der knx.yaml einzurichten.
            Ist mit `knx.telegram` nicht nötig.

            Kommentar


              #7
              Hallo,

              danke für Eure Antworten.

              Zitat von DiMa Beitrag anzeigen
              Ich weiss nicht, ob ich deine Frage richtig verstehe, aber dein trigger soll doch auf das Auslösen einer KNX-Szene reagieren. Dann ist doch "trigger wenn group_value_write (der Szenenbefahl auf den Bus) = true naheliegend?
              Ja, näherliegend ist aber noch das, was ich bei einem Binary auch mache
              Code:
              trigger:
                - platform: state
                  entity_id:
                    - switch.gosund8​
              Warum geht das bei allen KNX-Entitäten, aber nicht bei der KNX-Szene?

              Zitat von DiMa Beitrag anzeigen
              Deshalb kannst du existierende KNX Szenen einbinden (darauf reagieren, sie auslösen), aber nicht erstellen.
              Das erstellen hab ich nicht vor. Aber das "darauf reagieren" funktioniert einfach anders, als z.B. bei einem Binary. Warum?

              Zitat von meti Beitrag anzeigen
              Ja. Steht ja auch so in der Doku.
              ​Daher hab ich's auch ;-)

              ​`knx.telegram` Trigger gibts erst seit irgendwann dieses Jahres.
              `knx_event` ist Legacy
              Ah. Das verstehe ich - das wiederum hatte ich nicht gesehen.

              Gruß,
              Hendrik

              Kommentar


                #8
                Zitat von henfri Beitrag anzeigen
                Warum geht das bei allen KNX-Entitäten, aber nicht bei der KNX-Szene?
                Weil HA Szenen Entities keinen Zustand haben. Sie sind "ein Knopf" der es erlaubt einen definierten Zustand bei anderen Entitäten herbeizuführen.

                Kommentar


                  #9
                  Ja, das verstehe ich.
                  In KNX ist das ja genau so.
                  Aber ich will ja gerade auf den Knopf (mit einer Automatisierung) reagieren. Und das geht nicht so, wie es bei (allen?) anderen Entitäten geht.

                  Kommentar


                    #10
                    meti kannst du sagen, warum in HA Scenen nicht ohne Automation ihren Status nicht vom Bus bekommen?

                    Kommentar


                      #11
                      Seit wann hat eine Szene einen Status?
                      ----------------------------------------------------------------------------------
                      "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
                      Albert Einstein

                      Kommentar


                        #12
                        Wüsste nicht was ich zenvys Erklärung noch hinzufügen könnt 🤷 Ist halt wie Button - write only.

                        Kommentar


                          #13
                          Ich als Anfänger hätte Mal eine Frage zum KNX Telegram.

                          Wenn ich das KNX Telegram ohne spezifische Gruppenadresse verwende, dann ist jedes KNX-Event ein Trigger.

                          Generell wäre das eine sehr einfache Lösung, dass man damit einfach größere Skripten für Beschattung, Licht und Sonstiges bei jeder Änderung auf dem Bus aufruft.
                          Alles andere wird im Skript abgehandelt.

                          Macht ihr das ggf. vielleicht sogar so oder ist das unschön und führt zu einer sehr großen Last in Home Assistent?

                          Ist es besser mehrere spezifischen Trigger für verschiedene Skripten zu setzten?

                          Kommentar


                            #14
                            Wie willst denn du ohne GA identifizieren für welche Lampe der Trigger gelten soll?

                            ​​​​​​Die GA legt die Funktion fest und Lampe Küche AN/AUS ist ne andere Funktion als Lampe WC AN/AUS.

                            Das letzte was ich anstreben würde wäre ein dummer KNX und alles in Funktion in einer zentralen Logik wie HA. Wenn Du das willst kauf Loxone oder ne SPS. Wobei letzteres gar nicht mit einer grünen Leitung also Bus funktioniert.
                            ----------------------------------------------------------------------------------
                            "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
                            Albert Einstein

                            Kommentar


                              #15
                              Ich mache es in einer Automation so, wie von dir beschrieben. Allerdings nur, um die Anzahl der Telegramme pro physikalischer Adresse zu zählen. Hierdurch erkenne ich Spammer aufgrund von Fehlkonfiguration oder auch Ausfälle…

                              Grundsätzlich würde ich die GA aber sonst immer in den Trigger einbauen, um es übersichtlicher zu halten.
                              Viele Grüße ... Rudi

                              Kommentar

                              Lädt...
                              X