Ankündigung

Einklappen
Keine Ankündigung bisher.

Zigbee Sensoren via zigbee2mqtt Plugin an SmartHomeNG

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

    Zigbee Sensoren via zigbee2mqtt Plugin an SmartHomeNG

    Zitat von devau Beitrag anzeigen
    Kannst Du mir hier die Details zukommen lassen, vielen Dank!
    Klar doch.

    Grundsätzlich gibt es mehrere Möglichkeiten, Zigbee Sensoren mit shNG zu verbinden. Zu zweien kann ich dir was sagen bzw. helfen.

    1. Via SONOFF ZB-Bridge mit Tasmota FW
    Dafür kannst Du das Tasmota Plugin verwenden, jedoch nicht die Version aus master und develop, sondern aus meinen Repo. Ich habe das aktuelle Tasmota Plugin (aus dem Master) um Tasmota Funktionen erweitert und getestet. Das ist nun im develop-Zweig. Die Erweiterung um Tasmota Zigbee ist noch in meinem Repo, da ich nicht niemanden zum Testen hatte. Das kann sich ja nun ändern.

    Wenn Du das testen möchtest, findest du das Plugin und die Erläuterungen hier. Wie du das installierst, ist hier beschrieben. Implementiert sind einige Sensoren.
    Rückmeldung ist erwünscht.
    Die SONOFF ZB-Bridge wird beim Start des Plugins entsprechend konfiguriert. Das kannst du im WebIF der ZB-Brigde beobachten.
    Mein Ziel ist es, dass ebenfalls in den develop und dann den master zu bringen..



    2. Via ZigBee-Stick und Zigbee2Mqtt
    Alternativ kannst du Zigbee2Mqtt verwenden. Auf der Seite ist auch die Installation auf dem RPI beschrieben. Angebunden an shNG wird das auch mit einem Plugin. Dieses findest Du hier.

    Implementiert sind einige Sensoren, Schalter, Leuchten. Ich verwende das selbst produktiv. Auch hier ist mein Ziel, dass Plugin in den develop und dann in den master zu bringen.


    Melde Dich, wenn Du Fragen hast.
    Beste Grüße
    Zuletzt geändert von bmx; 16.11.2021, 12:57. Grund: Thread herausgelöst aus allgemeiner Suche nach LED Beleuchtungssystem

    #2
    Hallo Sisamiwe
    Super dann starten wir doch mal mit dem Ganzen:
    Ich werde hier die SonOFF ZB Bridge verwenden, da ich hier flexibler bin in Sachen Örtlichkeit als mit so einem USB-Stick, welcher ja am Ort wo sich der Server befindet (Hier ein Raspi 3B+ V2) eingesteckt sein müsste.
    Zunächst plane ich also, die jungfräuliche SonOFF mit der Tasmota FW "tasmota-zbbridge.10.0.0.bin" zu flashen gem. hier:

    https://www.digiblur.com/2020/07/how...idge-with.html

    In der Anleitung soll dort als zweiter Schritt mittels Firmware Upgrade die FW "OTA-File ncp-uart-sw-6.7.8_115200.ota" aufzuspielen. Hier bin ich verunsichert, da dort steht "This will instruct Tasmota to flash the Zigbee chipset on the bridge that is necessary to integrate with the Zigbee Home Assistant integration."
    Ich habe aber kein Home Assistant. Soll ich diesen Schritt denn trotzdem ausführen?
    Und der dritte Schritt dort: "map the Zigbee chip to TCP Server Port 8888" soll mittels folgendem Command durchgeführt werden:

    backlog rule1 on system#boot do TCPStart 8888 endon ; rule1 1 ; template {"NAME":"Sonoff ZHABridge","GPIO":[56,208,0,209,59,58,0,0,0,0,0,0,17],"FLAG":0,"BASE":18} ; module 0
    Benötige ich das auch genau so?
    Gruss, Dieter
    Zuletzt geändert von devau; 14.11.2021, 14:30.

    Kommentar


      #3
      Update:
      Bridge geflashed mit der Tasmota-Firmware. Jedoch noch ohne "ota"-Konfig. WLAN dort konfiguriert und in der MQTT-Konfig die IP des SHNG-Servers eingetragen.
      Dein Plugin soweit als "priv_tasmota" in SHNG reinkopiert, das hat soweit geklappt. Ich sehe dort auch schon die SonOFF als Tasmota-Device:

      SonOFF.jpg
      ZigBEE Fragen:
      Vermutlich muss nun doch noch "Backlog Weblog 3; so65 1; Module 75" in der Bridge in der Konsole eingegeben werden und dann evtl. die "ota"-Konfig auch noch? Denn im Moment zeigt mir SonOFF im Menü "Zigbee Map" an: "Zigbee not started".

      Gruss, Dieter

      Kommentar


        #4
        Zitat von devau Beitrag anzeigen
        In der Anleitung soll dort als zweiter Schritt mittels Firmware Upgrade die FW "OTA-File ncp-uart-sw-6.7.8_115200.ota" aufzuspielen. Hier bin ich verunsichert, da dort steht "This will instruct Tasmota to flash the Zigbee chipset on the bridge that is necessary to integrate with the Zigbee Home Assistant integration."
        Ich habe aber kein Home Assistant. Soll ich diesen Schritt denn trotzdem ausführen?
        Ich bin nach dieser Anleitung vorgegangen. Und ja, der ZigBee Chip muss auch geflashed werden. Du musst der Anleitung bis zu "For Zigbee2Tasmota" folgen. Danach kannst Du in der GUI der Bridge die Zigbee Geräte anlernen.

        Erst danach starte bitte mit der Integration in shNG. Das Plugin stellt die Bridge dann so ein, dass die Kommunikation läuft.
        Zitat von devau Beitrag anzeigen
        Vermutlich muss nun doch noch "Backlog Weblog 3; so65 1; Module 75" in der Bridge in der Konsole eingegeben werden und dann evtl. die "ota"-Konfig auch noch? Denn im Moment zeigt mir SonOFF im Menü "Zigbee Map" an: "Zigbee not started".
        Hier fehlt noch der Flash des ZigBee-Chips. Es muss im der Tasmota-GUI der Bridge stehen: "ZIG: Zigbee started". Erst dann klappt es.

        Du bist also auf dem richtigen Weg.
        Zuletzt geändert von Sisamiwe; 14.11.2021, 19:16.

        Kommentar


          #5
          OK, hat geklappt! Ich habe den Aqara "Mini Switch" (Art. Nr: WXKG11LM) gekoppelt. Er erscheint mit diesen Daten auf der SHNG Tasmota-Plugin Seite "Zigbee":

          0x54EB {'data': {'ModelId': 'lumi.remote.b1acn01', 'AppVersion': 2, 'Endpoint': 1, 'LinkQuality': 170, 'BatteryVoltage': 3.15, 'BatteryPercentage': 100, 'Manufacturer': 'LUMI'}}

          Er erscheint aber nicht auf der Seite "Details". Vermutlich weil Du dort nur Devices vom Type "Energy Sensors, Env. Sensors, Lights und RF" anzeigst. Hier müsste vermutlich noch der Type "Switch" rein. Ich werde am Mittwoch noch den Fenster-Sensor und den Vibrations-Sensor erhalten, mal sehen, wie diese sich verhalten.
          Könnte ich denn schon den Switch mal testweise als Item erfassen? Der Switch hat ja folgende Druck-Erkennungen:
          Single Click:
          23:11:46.218 MQT: tele/tasmota_A8D079/SENSOR = {"0x54EB":{"Device":"0x54EB","MultiInValue":1," Cli ck":"single","click":"single","Endpoint":1,"LinkQu ality":178}}
          Double Click:
          23:12:41.926 MQT: tele/tasmota_A8D079/SENSOR = {"0x54EB":{"Device":"0x54EB","MultiInValue":2," Cli ck":"double","click":"double","Endpoint":1,"LinkQu ality":173}}

          Long Duration Click (hold&release)
          23:13:19.381 MQT: tele/tasmota_A8D079/SENSOR = {"0x54EB":{"Device":"0x54EB","MultiInValue":0," Cli ck":"hold","action":"hold","Endpoint":1,"LinkQuali ty":162}}
          23:13:21.092 MQT: tele/tasmota_A8D079/SENSOR = {"0x54EB":{"Device":"0x54EB","MultiInValue":255 ,"C lick":"release","action":"release","Endpoint":1,"L inkQuality":175}}

          Kommentar


            #6
            Zitat von devau Beitrag anzeigen
            Er erscheint aber nicht auf der Seite "Details". Vermutlich weil Du dort nur Devices vom Type "Energy Sensors, Env. Sensors, Lights und RF" anzeigst. Hier müsste vermutlich noch der Type "Switch" rein.
            Das machen wir später.

            Im Reiter "Broker" findeste Du unterhalb der Brokerinformation die Inhalte des Dicts, die das Plugin generiert. Oben findest Du alle nativen Tasmota Devices und darunter die ZigbeeDevices an der Tasmota ZB Brigde.
            Dort sollte dann dein Schalter auftauchen. Dabei kannst Du sehen, welche Infos der Schalter sendet.

            Ich habe das Plugin mal entsprechend erweitert und wieder in mein Repo geladen. Probiere es mal aus.

            Damit es einfacher geht: Stelle bitte mal das Log für das Plugin auf Debug. Ich brauche immer diese Debug-Meldungen, um etwaige Fehler zu korrigieren. Weißt Du, wie das geht?

            Kommentar


              #7
              Neues Plugin geladen. Logging unter Logs, Plugin Logger auf DEBUG gestellt. Ein Drücken auf dem ZigBEE-Switch zeigt mir allerdings nichts an im Log!?
              Nachfolgend mal die Übersicht der Broker-Seite. Ich habe da noch ein paar Tasmota geflashte Nous-Power-Switches, die interessieren hier aber nicht.
              Hast Du mir evtl. ein Beispiel, wie ich den Switch in einer Item-Konfig ansprechen kann? Dann versuche ich mal ein knx-Licht damit zu schalten.

              Tasmota-Overview.jpg

              Kommentar


                #8
                Beim Zigbee Device siehst Du bereits, die Meldungen, die dein Schalter sendet. (unterer roter Kasten). So soll es sein.

                Das Logging bitte so ändern:
                • Im AdminIF unter "Logs" --> "Konfiguration"
                • dort findest du:
                  Code:
                      plugins:
                  	      # Default logger for SmartHomeNG plugins
                  	      handlers: [shng_details_file]
                  	      level: WARNING
                • darunter kopierst du:
                  Code:
                      plugins.tasmota:
                  	       level: DEBUG
                Somit steht das Log-Level von Plugins generell auf WARNING und nur für Tasmota auf DEBUG.

                Das Item sollte so aussehen:
                Code:
                zigbee_switch:
                    click:
                        type: str
                        tasmota_topic: tasmota_A8D079
                        tasmota_zb_device: 0x54EB
                        tasmota_zb_attr: click
                    action:
                        type: str
                        tasmota_topic: tasmota_A8D079
                        tasmota_zb_device: 0x54EB
                        tasmota_zb_attr: action
                Für ein Item, das mit Tasmota Zigbee zu bedienen ist, brauchst Du 3 Attribute:
                tasmota_topic entspricht dem "Namen" der ZB.Bridge, tasmota_zb_device entspricht dem Namen des Zigbee Devices und tasmota_zb_attr entspricht dem Attribut (welches sich A) in der plugin.yaml definiert und damit zulässig sein muss und B) sich auch im Dict (unterer roter Kasten) stehen muss.

                Probier mal.

                Kommentar


                  #9
                  Auszug aus dem Log:
                  2021-11-15 11:07:05 INFO plugins.priv_tasmota on_mqtt_announce: topic_type=tele, tasmota_topic=tasmota_A8D079, info_topic=STATE, payload={'Time': '2021-11-15T11:07:05', 'Uptime': '0T02:30:15', 'UptimeSec': 9015, 'Vcc': 3.522, 'Heap': 28, 'SleepMode': 'Dynamic', 'Sleep': 50, 'LoadAvg': 19, 'MqttCount': 2, 'Wifi': {'AP': 1, 'SSId': 'DVONET', 'BSSId': 'C2:A5:11:39:E6:9B', 'Channel': 13, 'Mode': '11n', 'RSSI': 56, 'Signal': -72, 'LinkCount': 1, 'Downtime': '0T00:00:05'}}
                  2021-11-15 11:07:05 INFO plugins.priv_tasmota Received Message contains Wifi information.
                  2021-11-15 11:07:05 INFO plugins.priv_tasmota Received Message decoded as Wifi message.
                  2021-11-15 11:07:05 INFO plugins.priv_tasmota Received Message will be checked for Uptime.
                  2021-11-15 11:07:05 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_online' defined to set to True (from info_topic 'STATE'}

                  Bei einem Klick:
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota Received Message decoded as Zigbee Device message.
                  2021-11-15 11:09:09 DEBUG plugins.priv_tasmota Item to be checked for update based in Zigbee Message and updated
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_0x54EB.multiinvalue' defined to set to 1 (from info_topic 'SENSOR'}
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_0x54EB.click' defined to set to single (from info_topic 'SENSOR'}
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_0x54EB.click' defined to set to single (from info_topic 'SENSOR'}
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_0x54EB.endpoint' defined to set to 1 (from info_topic 'SENSOR'}
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_0x54EB.linkquality' defined to set to 204 (from info_topic 'SENSOR'}
                  2021-11-15 11:09:09 INFO plugins.priv_tasmota tasmota_A8D079: No item for 'item_online' defined to set to True (from info_topic 'SENSOR'}



                  Meine Item-Konfig sieht so wie folgt aus: Wenn der Switch gesehen wird, müsste ich doch einen Wert im Item-Baum dieses Items unter "str" sehen? Ist dort jedoch immer leer.

                  Code:
                  # ZB.Switch.X54EB.yaml
                  ZB:
                      Switch:
                          X54EB:
                              click:
                                  type: str
                                  tasmota_topic: tasmota_A8D079
                                  tasmota_zb_device: 0x54EB
                                  tasmota_zb_attr: click
                              action:
                                  type: str
                                   tasmota_topic: tasmota_A8D079
                                   tasmota_zb_device: 0x54EB
                                   tasmota_zb_attr: action

                  Kommentar


                    #10
                    Zitat von devau Beitrag anzeigen
                    Meine Item-Konfig sieht so wie folgt aus: Wenn der Switch gesehen wird, müsste ich doch einen Wert im Item-Baum dieses Items unter "str" sehen? Ist dort jedoch immer leer.
                    Die Konfig passt so.

                    Kannst Du mit bitte aus dem WebIF den Inhalte der ZB-Bridge (Dein oberer roter Kasten) nochmal senden?

                    Kommentar


                      #11
                      Gerne:
                      tasmota_A8D079 {'connected_to_item': True, 'connected_items': {'item_21739.click': Item: ZB.Switch.X54EB.click, 'item_21739.action': Item: ZB.Switch.X54EB.action}, 'uptime': '0T03:40:15', 'lights': {}, 'rf': {}, 'sensors': {}, 'relais': {}, 'zigbee': {'active': True, 'zbconfig': {'ZbConfig': {'Channel': 11, 'PanID': '0x0C84', 'ExtPanID': '0xCCCCCCCCA8A8CC84', 'KeyL': '0xA8A8CC84D07D40A1', 'KeyH': '0xA8A8CC84D07D40A1', 'TxRadio': 20}}}, 'online': True, 'online_timeout': datetime.datetime(2021, 11, 15, 12, 18, 10, 135312), 'friendly_name': ['Tasmota'], 'fw_ver': '10.0.0(zbbridge)', 'ip': '192.168.1.180', 'mac': '84:CC:A8:A80:79', 'module': 'Sonoff ZbBridge', 'tasmota_template': '75', 'wifi_signal': -70}
                      META-Daten {'zigbee': True}
                      0x54EB {'meta': {'Device': '0x54EB', 'IEEEAddr': '0x00158D0006D4DFB7', 'ModelId': 'lumi.remote.b1acn01', 'Manufacturer': 'LUMI', 'Endpoints': [1], 'Config': [], 'Reachable': True, 'LastSeen': 679, 'LastSeenEpoch': 1636969786}, 'data': {'MultiInValue': 1, 'Click': 'single', 'click': 'single', 'Endpoint': 1, 'LinkQuality': 186, 'BatteryVoltage': 3.13, 'BatteryPercentage': 100}}

                      Kommentar


                        #12
                        Folgende Vermutung: Nachdem Du dem Gerät noch keinen FriendlyName vergeben hast, wird der Switch mit 0x54EB angesprochen. Das Plugin macht daraus 21739.

                        Könntest Du in der Tasmota GUI dem Switch einen FriendlyName verheben. Das geht, indem Du in der Konsole ZbName 0x54EB,"FriendlyName" eingibst.
                        Danach bitte die die Item-Konfig auch auch entsprechend ändern.

                        Probierst Du mal?

                        Kommentar


                          #13
                          Habe das umbenannt in SWITCH1 und in der Item-Konfig angepasst und dann SHNG neu gestartert. Was mir nebenbei aufgefallen ist: Sobald der Log ca. 700 kB gross ist, wird nichts mehr geloggt..... Dann muss ich die Datei "smarthome-details.log" löschen, SHNG neu starten, dann wird wieder geloggt. Ist was für später...

                          Nun, jetzt meldet mqtt einen Syntax-Error:

                          2021-11-15 15:23:56 INFO plugins.priv_tasmota poll_device: Checking online status of connected devices
                          2021-11-15 15:24:01 ERROR modules.mqtt cast_from_mqtt: datatype 'dict', error 'Expecting ':' delimiter: line 1 column 4 (char 3)', data = ‘{""ZBSWITCH1"":{"Device":"0x54EB","Name":""ZBSW IT CH1"","MultiInValue":1,"Click":"single","click": "single","Endpoint":1,"LinkQuality":204}}‘
                          2021-11-15 15:24:01 INFO plugins.priv_tasmota on_mqtt_announce: topic_type=tele, tasmota_topic=tasmota_A8D079, info_topic=SENSOR, payload={""ZBSWITCH1"":{"Device":"0x54EB","Name":" "ZBSWITCH1"","MultiInValue":1,"Click":"single" ," click":"single","Endpoint":1,"LinkQuality":204}}
                          2021-11-15 15:24:01 INFO plugins.priv_tasmota Received Message contain sensor information.

                          Broker-Info jetzt:
                          tasmota_A8D079
                          {'connected_to_item': True, 'connected_items': {'item_ZBSWITCH1.click': Item: ZB.Switch.X54EB.click, 'item_ZBSWITCH1.action': Item: ZB.Switch.X54EB.action}, 'uptime': '0T06:48:52', 'lights': {}, 'rf': {}, 'sensors': {}, 'relais': {}, 'zigbee': {'active': True, 'zbconfig': {'ZbConfig': {'Channel': 11, 'PanID': '0x0C84', 'ExtPanID': '0xCCCCCCCCA8A8CC84', 'KeyL': '0xA8A8CC84D07D40A1', 'KeyH': '0xA8A8CC84D07D40A1', 'TxRadio': 20}}}, 'online': True, 'online_timeout': datetime.datetime(2021, 11, 15, 15, 26, 47, 193449), 'friendly_name': ['Tasmota'], 'fw_ver': '10.0.0(zbbridge)', 'ip': '192.168.1.180', 'mac': '84:CC:A8:A80:79', 'module': 'Sonoff ZbBridge', 'tasmota_template': '75', 'wifi_signal': -73}

                          Kommentar


                            #14
                            Zitat von devau Beitrag anzeigen
                            Sobald der Log ca. 700 kB gross ist, wird nichts mehr geloggt..... Dann muss ich die Datei "smarthome-details.log" löschen, SHNG neu starten, dann wird wieder geloggt. Ist was für später...
                            Da passt was nicht. Ist ggf. die Speicherkarte voll?

                            Kommentar


                              #15
                              Zitat von devau Beitrag anzeigen
                              Nun, jetzt meldet mqtt einen Syntax-Error:
                              Ich glaube, Du hast bei der Vergabe des FriendlyName einen Fehler gemacht bzw. habe ich mich nicht gut ausgedrückt. Die Hochkommata hätten weg gemusst. Dein Geräte heißt nun "SWITCH1", also mit Hochkommata. Das klappt nicht.

                              Hier ist das beschrieben.
                              Du müsstest also:
                              Code:
                              ZbName 0x54EB,
                              und
                              Code:
                              ZbName 0x54EB,SWITCH1
                              in der Tasmota Konsole eingeben.

                              Alternativ kann Du auch versuchen, die Device-ID (0x54EB) zu verwenden. Dann musst Du diese in der Item.Config in Hochkommata setzen.
                              Code:
                              tasmota_zb_device: '0x54EB'

                              Kommentar

                              Lädt...
                              X