Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. zigbee2mqtt Datenpunkt hinzufügen - TS0004

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    zigbee2mqtt Datenpunkt hinzufügen - TS0004

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Malaus last edited by

      Hallo Zusammen,

      ich habe zigbee2mqtt als container laufen mit folgender Version:
      Bildschirm­foto 2023-01-07 um 14.05.30.png

      Im ioBroker läuft der zigbee2mqtt Adapter.

      Es ist ein Tuya TS0004 4CH eingebunden und ich erhalte im ioBroker die Zustände der Relais..
      Jetzt möchte ich gerne die Zustände der Schalter wissen.
      Wenn ich beim Gerät auf Entwickler Konsole gehe, kann ich dort mit Endpunkt 4, OnOff, OnOff die Schalterstellung auslesen.
      Bildschirm­foto 2023-01-07 um 14.10.50.png

      Wie muss ich nun vorgehen, damit ich das ganze auch über mqtt erhalte? Ich gehe mal davon aus, dass ich dafür einen Eintrag in der configuration.yaml durchführen muss. Leider weiß ich nicht so genau, was ich dort eintragen soll.

      Ich habe folgendes mal ausprobiert:
      Bildschirm­foto 2023-01-07 um 14.16.05.png

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Malaus last edited by mickym

        @malaus Nein Du erstellst einfach unter dem Gerät ein get Datenpunkt - genauso wie ein set Datenpunkt. Im Prinzip habe ich festgestellt - hängt vielleicht auch nur vom Gerät ab, dass dann das komplette JSON aktualisiert wird. Mit get kannst Du also aktiv das JSON aktualisieren lassen - ist im Prinzip auch egal.

        das funktioniert sowohl mit Gruppen, als auch mit Einzelgeräten (s. Screenshot)

        e559eb4a-f58e-4a91-bfe8-34ab59dc21db-image.png

        Normalerweise triggert das Gerät ja selbst - insofern ist das sehr selten, dass man mit get nochmal den Zustand lesen will. 😉

        Steht aber auch so in der Beschreibung - das hat nichts mit der yaml zu tun oder Entwicklerkonsole:
        953a3bf6-c43b-4154-90e9-3f7fc5a5ca5f-image.png

        oben drüber siehst Du das set Kommando - ist also nichts weiter als den JSON an das entsprechende topic zu schicken.

        M 1 Reply Last reply Reply Quote 0
        • M
          Malaus @mickym last edited by

          @mickym vielen Dank für deine Antwort.

          Das habe ich in der Doku auch entdeckt aber leider konnte ich damit nichts anfangen. Also ich habe nicht verstanden, wo ich das eintrage.
          Ich habe jetzt mal die Datenpunkte erstellt und das {"state": ""} abgeändert auf "state_l4". Wie erhalte ich aber nun eine Antwort?

          Bildschirm­foto 2023-01-07 um 14.45.14.png

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Malaus last edited by mickym

            @malaus Nun ich hoffe du nutzt reines mqtt und nicht den Adapter - der Dir die Datenpunkte zerlegt. Ich bin auch nicht sicher ob state_i4 richtig ist oder ob Du nicht lieber nur state eingibst. Die Antwort erhälst Du normalerweise in dem aktualisierten JSON zu Deinem Gerät:

            051ecca8-f502-41e2-bc9c-15e76436427d-image.png

            Also entweder da wo ich markiert habe - wenn Du den zigbee2mqtt Adapter verwendest und diese Datenpunkte aufgedröselt sind schau - ob Dein Datenpunkt mit dem state_I4 nicht aktualisiert wurde. Das ist die Antwort.

            Das sehe ich auf Deinem Screenshot ggf. rudimentär. Das Problem ist aber auch ggf. wenn Du hier nicht reines mqtt verwendest, sondern wieder Adapter, die Nachrichten auseinanderreißen.

            Wie gesagt ich nutze aber auch keine zigbee Adapter, sondern arbeite mit originalem mqtt.

            M 1 Reply Last reply Reply Quote 0
            • M
              Malaus @mickym last edited by

              @mickym dann liegt es daran. Ich nutze den zigbee2mqtt Adapter und nicht den mqtt Adapter

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Malaus last edited by mickym

                @malaus Ja dann musst Dich mit dem Entwickler mal zusammensetzen, wie man das dort machen kann. Aber das ist genau der Grund, warum ich keine Adapter mag, die mqtt sprechen, da nutze ich lieber das Original. Wenn Du einen externen Broker (z.Bsp. mosquitto) mit dem zigbee2mqtt Adapter verwendest, dann müsste es aber gehen, da dann der Adapter das JSON erneut zum Zerlegen bekommt.

                M 1 Reply Last reply Reply Quote 0
                • M
                  Malaus @mickym last edited by Malaus

                  @mickym ich habe das ganze mal auf den mqtt Adapter umgestellt.
                  Leider kann ich dort keinen Datenpunkt erstellen - auch nicht per Skript. Wie hast du das gemacht?

                  Bildschirm­foto 2023-01-07 um 15.13.18.png
                  Bildschirm­foto 2023-01-07 um 15.14.12.png

                  Gelöst:
                  In dem ich eine Etage höher gehe und dort einen Datenpunkt erstelle - mit Punkt um im richtigen Ordner zu kommen.
                  Bildschirm­foto 2023-01-07 um 15.18.29.png

                  Wenn Du einen externen Broker (z.Bsp. mosquitto) mit dem zigbee2mqtt Adapter verwendest, dann müsste es aber gehen, da dann der Adapter das JSON erneut zum Zerlegen bekommt.

                  Bedeutet, es geht auch nicht mit dem mqtt Adapter?

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Malaus last edited by mickym

                    @malaus Doch mit dem mqtt Adapter geht es schon. Nur mach mal die ganzen Haken weg - damit machst Du Dir Endlosschleifen ohne Ende.

                    Das mit dem eine Ebene höher gehen, hast Du ja rausbekommen.

                    Mit dem externen Broker wäre nur eine Lösung gewesen, wenn Du den zigbee2mqtt Adapter unbedingt hättest behalten wollen. Dieser arbeitet in sofern nämlich vorbildlich, dass er auch einen externen Broker verwenden kann. Ich glaube sogar, dass er an den mqtt-Adapter als Broker andocken kann. Aber wie gesagt ich brauche das nicht. Ich hab allerdings einen mosquitto mit dem mqtt-Adapter laufen. Aber mit dem mqtt-Adapter alleine als Broker geht es sicher auch. Mach nur die Haken weg, wenn Du nicht weißt was sie bedeuten. Solche Dinge wie nur Änderungen publishen und Zustände publishen sind einfach Gift - wenn man nicht weiß was man tut.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Malaus @mickym last edited by

                      @mickym das mit get und set funktioniert nun.

                      Jetzt stellt sich mir nur noch die Frage, wie erhalte ich den Wert vom Schalter.

                      Das Gerät schaltet sobald sich der Zustand des Schalters ändert. Ich möchte aber den Schalter vom Relais trennen und dessen Zustand auslesen.
                      Wenn ich diesen Zustand unter Entwickler Konsole auslesen kann, kann ich diesen dann auch über Mqtt empfangen?

                      Bei Eingabe von "state_4" passiert nichts.

                      mickym 1 Reply Last reply Reply Quote 0
                      • M
                        Malaus last edited by Malaus

                        @mickym wenn ich unter set folgendes eintrage:

                        {
                          "read": {
                            "attributes": [
                              "onOff"
                            ],
                            "cluster": "genOnOff",
                            "options": {}
                          }
                        }
                        

                        Erhalte ich auf der zigbee2mqtt Seite die Antwort des Zustands.

                        2023-01-07 17:56:44Received MQTT message on 'zigbee2mqtt/Fußbodenheizung/4/set' with data '{"read":{"attributes":["onOff"],"cluster":"genOnOff","options":{}}}'
                        2023-01-07 17:56:44Publishing 'set' 'read' to 'Fußbodenheizung'
                        2023-01-07 17:56:45Received Zigbee message from 'Fußbodenheizung', type 'readResponse', cluster 'genOnOff', data '{"onOff":1}' from endpoint 4 with groupID 0
                        

                        Jetzt stellt sich mir die Frage, wie kann ich das bei get einbauen bzw. so das ich diesen Wert dauerhaft zusammen mit den anderen Werten erhalte.
                        Hast du Erfahrung damit?

                        1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Malaus last edited by mickym

                          @malaus Gib doch nur mal state ein - was Du in den get Punkt eingeben kannst steht genau in der Beschreibung der Devices zu zigbee2mqtt. Den Zustand Deiner Schalter solltest DU doch in dem übergeordneten JSON erhalten.

                          Poste halt mal Dein Gerät - so wie es unter den supported DEvices unter zigbee2mqtt auftaucht. Da steht doch auch drin, was für Befehle valide sind.

                          https://www.zigbee2mqtt.io/supported-devices/#v=TuYa

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            Malaus @mickym last edited by

                            @mickym wenn ich state eingebe, passiert nichts.

                            Das Gerät ist hier:

                            https://www.zigbee2mqtt.io/devices/TS0004_switch_module.html

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Malaus last edited by mickym

                              @malaus Ok verstehe - steht ja auch drin Du musst die 4 Endpunkte einzeln abfragen. Trotzdem in dem übergeordneten JSON müssten doch alle drin stehen?

                              Poste doch den ganzen JSON mal.

                              ANsonsten steht es ja genau so drin:

                              The current state of this switch is in the published state under the state_l1 property (value is ON or OFF). To control this switch publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state_l1": "ON"}, {"state_l1": "OFF"} or {"state_l1": "TOGGLE"}. To read the current state of this switch publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"state_l1": ""}

                              Die Frage ist doch nur musst Du diese Werte auslesen oder werden die nicht automatisch im oberen JSON gesetzt, nachdem die geschaltet sind. Pollen ist in meinen Augen immer die schlechteste Lösung.

                              Sprich wenn Du in den get DP

                              {"state_l1": ""}
                              

                              eingibst, sollte eigentlich in dem JSON obendrüber der Status von Relay1 auftauchen. GEnauso, wenn Du mit set schaltest. Das Lesen braucht man doch nur in Ausnahmefällen. Oben sollte wie gesagt immer der letzte Status drin stehen.

                              Also nicht state_4, sonder state_l4. Denke ist ein kleines L - kann aber auch großes I sein - musst halt ausprobieren.

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                Malaus @mickym last edited by Malaus

                                @mickym

                                das ist der JSON:

                                {
                                  "last_seen": "2023-01-07T17:47:12+00:00",
                                  "linkquality": 120,
                                  "power_on_behavior": "off",
                                  "power_on_behavior_l1": "off",
                                  "state_l1": "OFF",
                                  "state_l2": "OFF",
                                  "state_l3": "OFF",
                                  "state_l4": "OFF",
                                  "switch_type": "state"
                                }
                                

                                Ich erhalte die Werte von den Relais aber nicht von den Schaltern.

                                Mit den Schaltern, bin ich auf die Idee gekommen, da ich unter Konsole, diese auslesen kann. Da ich ja den Wert des Schalters und nicht des Relais möchte, setze ich nur die 4 ein - ohne zu wissen ob das richtig ist.
                                Und da ich den Zustand des Schalters abfragen kann, habe ich mich gefragt, ob ich diesen auch als JSON erhalten kann.

                                Getestet habe ich das ganze natürlich auch, ob ich wirklich nur den Zustand erhalte und nicht das Relais. Aber ich vermute, dass das ganze einfach nicht geht. Also das ich den Schalter nicht vom Relais koppeln kann.

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Malaus last edited by

                                  @malaus In meinen Augen bekommst Du immer nur den Zustand des Relais - der Schalter geht in meinen Augen nicht bzw. das musst erfragen. Der Schalter wäre in meinen Augen nur dann identisch und somit abfragbar, wenn Du den switch-type state nimmst. Momentary - verstehe ich einen Taster und Toogle heißt das Relais wird geschalten egal welche Stellung der Schalter hat. Insofern macht das keinen Sinn. Bei den Shellies kann man das zwar glaub zusätzlich sehen, aber normal fragt man nur das Relay ab.

                                  Wenn man da mehr möchte - dann könntest du ggf. ein neues Devices erstellen: https://www.zigbee2mqtt.io/advanced/support-new-devices/02_support_new_tuya_devices.html
                                  und dann auf die zigbee-Nachrichten hören, ob da Nachrichten dabei sind, die man dann auswerten könnte, aber da bin ich raus - da muss dann einer von den zigbee Spezialsiten wie @Asgothian was dazu sagen.

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    Malaus @mickym last edited by

                                    @mickym ja ich kenne das auch von Shelly, das man den Schalter vom Relais trennen kann. Daher war meine Überlegung, ob das hier auch möglich ist.

                                    Trotz allem, vielen Dank für Deine Hilfe!

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Malaus last edited by mickym

                                      @malaus Ich gehe mal davon aus, dass wenn man die Relais unabhängig von den Schaltern überwachen könnte, dann gäbe es wie bei den Shellies auch den Detached Mode. Und wie gesagt vielleicht kann man das auch sehen, aber dann müsste man in die Tiefen der zigbee Nachrichten vordringen und da bin ich kein Experte.

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      586
                                      Online

                                      31.7k
                                      Users

                                      79.8k
                                      Topics

                                      1.3m
                                      Posts

                                      mqtt zigbee zigbee2mqtt
                                      2
                                      17
                                      677
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo