Sonoff bietet seit Kurzem nun auch ein neues kombinierte Wifi / Zigbee Modul an. Auch dieses lässt sich mit Homeassistant nutzen. Eine kurze Anleitung.

ZigBee Bridge Pro öffnen (hier finden sich unter den Gummischonern Schrauben)‘

Sonoff ZB Bridge PROFTDI (z.B. AZDelivery)
3V3Vcc/3.3v
GNDGND
RXTX
TXRX
GPIO00GND (on power on)
Zuordnung der Kontakte

Identifizieren der Kontakte für den UART TTL-USB Adapter (Siehe Tabelle oben). Die Pins sind nicht mit Steckkontakten ausgeführt, es lohnt sich aber, diese selbst zu löten.

Nicht alle FTDI Adapter erkennen den ESP32. In Diskussionen wird vermutet, dass der CC2652P Chip hier eine Rolle spielt. Der FTDI von AZDelivery hatte hier jedoch keine Probleme.

Das Flashing lässt sich über die Weboberfläch von Tasmota realisieren (am wenigsten Probleme machte hier der Chromium Browser).
https://tasmota.github.io/install/

Das Image „Tasmota32 Sonoff-ZigbeeBridgePro“ eignet sich, da hier auch gleich die Coordinator-Dateien kopiert werden, welche später auf den zusätzlichen Chip (ein CC2652P neben dem ESP-32) der den eigentlichen Funkverkehr managed geflashed werden.

Anschließend wird das ESP-32 Board vom UART-TTL- Adapter getrennt, wieder in sein Gehäuse verbaut und über die eigentliche Stromversorgung angeschlossen. Nach kurzer Zeit ist dieser wie gewohnt als Tasmota Gerät in der Wifi Suchliste am Computer zu sehen. Über die Weboberfläche wird das WLAN ausgewählt und verbunden.

Das Flashing des CC2652P erfolgt nun über den ESP-32. In der Tasmota Weboberfläche wählt man
„Consoles -> Berry Console“ aus und kopiert folgende Befehle:

import sonoff_zb_pro_flasher as cc
cc.load("SonoffZBPro_coord_20220219.hex")
cc.check()

Nach einer Weile (man habe Geduld) erscheint:

Response:
18:32:05.964 FLH: Starting verification of HEX file
18:32:15.190 FLH: Verification of HEX file OK

Wenn die Überprüfung in Ordnung ist, startet man den Flash Vorgang

Input:
cc.flash()

Auch hier gilt man habe Geduld. Der Vorgang dauert ca. 5 Minuten und es er scheint keine Anzeige über den Fortschritt. Auch reagiert Tasmota (respektive der ESP32) nicht. Wenn er wieder reagiert, sollte in den Protokollen Folgendes stehen:

20:43:17.392 FLH: Verification of HEX file OK
20:43:28.193 FLH: cc2652_flasher rx=23 tx=19 rst=15 bsl=22
20:43:28.250 FLH: Flashing started (takes 5 minutes during which Tasmota is unresponsive)
20:48:25.388 FLH: Flashing completed: OK
20:48:25.514 FLH: Flash crc32 0x000000 - 0x2FFFF = bytes('1598929A')

Wenn man Tasmota dann erneut startet, sollte folgender Log in der Console erscheinen:

20:57:28.054 ZIG: rebooting ZNP device
20:57:28.972 ZbInput discarding byte 00
20:57:28.976 RSL: RESULT = {"ZbState":{"Status":1,"Message":"CCxxxx ZNP booted","RestartReason":"Power-up","MajorRel":2,"MinorRel":7}}
20:57:29.178 RSL: RESULT = {"ZbState":{"Status":50,"MajorRel":2,"MinorRel":7,"MaintRel":1,"Revision":20220219}}
20:57:29.229 RSL: RESULT = {"ZbState":{"Status":2,"Message":"Resetting configuration"}}
20:57:30.859 ZbInput discarding byte 00
20:57:31.429 RSL: RESULT = {"ZbState":{"Status":3,"Message":"Configured, starting coordinator"}}
20:57:37.343 RSL: RESULT = {"ZbState":{"Status":40,"NewState":9,"Message":"Started as coordinator"}}
20:57:37.446 RSL: RESULT = {"ZbState":{"Status":51,"IEEEAddr":"0x00XXXXXXXXXX","ShortAddr":"0x0000","DeviceType":7,"DeviceState":9,"NumAssocDevices":0}}
20:57:37.957 RSL: RESULT = {"ZbState":{"Status":0,"Message":"Started"}}
20:57:37.960 ZIG: Zigbee started
20:57:37.980 ZIG: No Zigbee device information
20:57:37.990 ZIG: No Zigbee device data

Damit die Homeassistanz Instanz kommunizieren kann, muss folgendes Template unter „Configuration > Configure other > Template“ eingetragen werden.

{"NAME":"TCP ZBBridge Pro","GPIO":[0,0,576,0,480,0,0,0,0,1,1,5792,0,0,0,5472,0,320,5793,5504,0,640,608,32,0,0,0,0,0,1,0,0,0,0,0,0],"FLAG":0,"BASE":1}

Zusätzlich muss noch ein TCP Server gestartet werden (hier auf Port 8888)

backlog rule1 on system#boot do TCPStart 8888 endon ; rule1 1 ; TCPStart 8888

In der Homeassistant Instanz: Konfiguration > Integrationen > (+) Icon > ZHA Integration suchen > „ZNP = Texas Instruments Z-Stack ZNP protocol: CC253x, CC26×2, CC13×2“ auswählen > Datenflusssteuerung: Software > Serial Port: socket://[zbbridgePro_ip]:8888 (entsprechend mit der IP ersetzen) > Port Geschwindigkeit: 115200

7 Comments

  1. Günter Thönnes Reply

    Hallo, erst mal schönen Dank an Euch/Dich
    leider komme ich nur bis
    Input:
    cc.flash()
    dann kommt Fehler
    BRY: Exception> ’syntax_error‘ – input:1: unexpected symbol near ‚:‘
    Was kann ich tun, was mache ich falsch?

    • jd Reply

      Hey Günter, einfach nur cc.flash() eingeben ohne das vorangestellte Input:
      Dann sollte es gehen 😉

      • Hallo Zusammen,
        hat wer eine Idee, warum ich beim cc.flash() den Fehler zurück bekomme?

        FLH: cc2652_flasher rx=-1 tx=-1 rst=-1 bsl=-1
        BRY: Exception> ‚value_error‘ – cc2652_flasher unspecified GPIOs
        stack traceback:
        unknown source>: in function `init`
        unknown source>: in function `loader`
        unknown source>: in function `flash`
        unknown source>: in function `main`

        Viele Grüße
        Stefan

  2. Günter Thönnes Reply

    Sorry, so spätes Dank!
    Hatte es selber bemerkt, aber wie kann ich sicherstellen das der TCP start ausgeführt wurde und der Port 8888 funktioniert?
    Habe mittlerweile den Skyconnect der mir aber ständig die Verbindung abbricht und möchte wieder zurück zum Sonoff

  3. Günter Thönnes Reply

    Wo muss ich noch den
    backlog rule1 on system#boot do TCPStart 8888 endon ; rule1 1 ; TCPStart 8888
    absenden, in der Console?

  4. Hallo ich habe folgende Probleme,

    mit dem obengenannten template geht zwar zigbee aber ich kann nicht über homeassitant darauf zugreifen. Nehme ich ein anderes kann ich mit homeassitant zugreifen aber zigbee geht nicht. was mache ich falsch?

    Template mit dem Zigbee zu sehen ist aber kein HA zugriff:
    {„NAME“:“TCP ZBBridge Pro“,“GPIO“:[0,0,576,0,480,0,0,0,0,1,1,5792,0,0,0,5472,0,320,5793,5504,0,640,608,32,0,0,0,0,0,1,0,0,0,0,0,0],“FLAG“:0,“BASE“:1}

    Tempate mit dem HA zugreifen kann aber kein zigbee geht:
    {„NAME“:“Sonoff Zigbee Pro“,“GPIO“:[0,0,576,0,480,0,0,0,0,1,1,5792,0,0,0,3552,0,320,5793,3584,0,640,608,32,0,0,0,0,0,1,0,0,0,0,0,0],“FLAG“:0,“BASE“:1}

  5. vielen Dank für die tolle Anleitung! Damit hat es sofort geklappt!

    Leider hat die bin Datei nicht alle define die ich benötige (u.a. fehlt mir die Script Funktion – akuell ist nur Berry dabei).
    Spiele ich eine normale ESP32 Bin datei auf, sagt er, dass diese zu groß ist.

    Vielleicht muss ich von Beginn meine Define mit beifügen.

    Welche speziellen Define werden für das Gateway benötigt?

Write A Comment

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.