ZwaveJS2MQTT via HA- oder MQTT-Integration

Guten Morgen allerseits

Wie ich schon in anderen Beiträgen schrieb, betreibe ich bei mir zwei Netze. Das Eine ist Zigbee, das Andere Z-Wave. Zu beginn nutze ich bei beiden die Standard-Integration von HA. Die Zuverlässigkeit ist dabei etwas durchzogen. Inzwischen migrierte ich mein Zigbee-Netzwerk nach Zigbee2MQTT.

Das Z-Wave-Netzwerk verursacht bei mir am meisten Bauchschmerzen. Das Problem ist, dass die Aktoren öfters als "Dead" angezeigt werden und dadurch nicht mehr ansteuerbar sind. Das ist manchmal richtig nervig. Das Netz wird über einen 700-Serie-Dongle von Aeotec betrieben (mit der neusten Firmware).

Anscheinend ist dies ein Z-Wave-typisches Problem. Ein Hilsfmittel ist ein Templatesensor der die toten Aktoren erkennt, kombiniert mit einer Automation, die die toten Aktoren anpingt. Dieser Workaround half mir nicht gleich vor Wut sämtliche Aktoren aus der Wand zu reissen.

Ich habe die Vermutung, dass das Problem mit der Z-Wave-HA-Integration zusammenhängt. Inzwischen migrierte ich den ZwaveJS-Server in das Addon ZwaveJS2MQTT. Das ging einfach und problemlos. Die Geräte sind aber noch immer durch die Standard-Integration von HA eingebunden. Das Problem hat sich etwas verbessert. Dennoch gibt es täglich so 10 tote Geräte, die durch die obenerwähnte Automation angepingt werden.

Meine Frage: kennt sonst jemand dieses Problem und benutzt jemand die MQTT-Integration, um die Geräte in HA einzubinden? Wenn ja, läuft das Z-Wave-Netzwerk dadurch zuverlässiger?

Liebe Community

Wie es aussieht konnte ich das Problem mit den ausgefallenen Knoten lösen. Das Problem war mein 700er Serie Z-Wave-Dongel. Ich ersetzte den Dongel durch eine der 500er Serie. Selbst der Härtetest (Befehl sämtliche Lichtschalter ein) lief nach der Migration problemlos. Ich teste dies nun noch ein paar Tage und gebe hier nochmals Bericht.

Lösungsansatz:

Ich fand eine Anleitung, wie die Network-ID von Stick A (Aeotec Gen. 7) nach Stick B (UZB Zwave.me) übertragen werden kann. Ohne dieselbe ID, die auf dem Stick hinterlegt ist, kann das Netzwerk nicht, inkl. allen seinen Knoten, migriert werden. Anscheinend gibt es nur einen Produzenten für diese Art von Chips. Nur die Verpackung ist eine andere.🤷🏼‍♀️

Da ich faul bin, dachte ich, ich versuche mal eine Abkürzung und die hat auch super funktioniert.

  1. HA-Backup erstellen (in case of)
  2. NVM-Backup Gen7-Stick erstellen
  3. Den Stick Gen5 einstecken
  4. NVM-Backup Gen5-Stick erstellen
  5. ZwaveJS UI -> Websocket deaktivieren
  6. Den Pfad für den Gen5 Stick im ZwaveJS Ui Addon hinterlegen
  7. Zwave-Integration deaktivieren (via Einstellungen / Geräte & Dienste / Integrationen)
  8. Den Stick Gen7 ausziehen
  9. Das NVM-Backup vom Stick Gen7 auf den Stick Gen5 restoren. Das dauert eine knappe Minute.
  10. In ZwaveJS UI den Websocket wieder aktivieren
  11. Die Integration aktivieren.
  12. Netzwerk heilen.
  13. Fertig

Die Geräte wurden sofort erkannt und konnten problemlos angesteuert werden.

1 „Gefällt mir“

Selbst nach 14h fiel kein Knoten mehr aus. Das Zwave-Netzwerk hat sich stabilisiert.

Was ganz interessantes. Mein Stick, der "Z-Wave.Me UZB1" ist (anscheinend) ein Stick der 5. Generation. Anscheinend sind die Endgeräte der 700ter-Serie abwärtskompatibel. Ich konnte erfolgreich zwei Aktoren mit einem 700ter-Chipsatz einbinden.

Weiss jemand mehr darüber?

Kurzes Update:

Ich werde die zwei Heat IT Aktoren, mit dem 700er Chipsatz wieder ausbauen. Seit dem Einbau wurde das Z-Wave-Netz zeitweise wider träge. Schaltungen dauern bis zu 6 Sekunden. Zudem schaltet sich einer der Aktoren kurz aus und wieder ein, ohne einen Grund dafür zu erkennen. Seit dem gab es auch einen Ausfall eines Aktors der 500er Serie. Ich weis aber nicht ob dies zusammenhängt.

Ich berichte wieder, wenn die zwei Aktoren ausgebaut wurden und ich mehr über die Latenzzeit aussagen kann.

Update 11.01.2023: Ich baute den aus, der Schwierigkeiten machte und teste nun, ob sich die Latenzzeit verbessert hat. Wenn nicht, liegt das Problem mit grosser Wahrscheinlichkeit am 700er Chipsatz. Ansonsten war der ausgebaute Aktor fehlerhaft.

Auch der zweite 16A-Aktor ging einfach aus und wieder an, ohne dass ich den Grund dafür herausfinden konnte. Das ist wirklich ärgerlich, wenn man gerade dabei ist, einen Kaffee zu kochen. Seitdem ich die beiden 700er Aktoren ausgebaut habe, läuft das Z-Wave-Netzwerk zuverlässiger. Hin und wieder kommt es vor, dass es ein paar Sekunden dauert, bis das Signal an den Zielaktor übertragen wird, bzw. dieser schaltet. Seit einigen Tagen habe ich aber kaum noch eine längere Latenz festgestellt.

Das Problem mit der sporadisch auftretenden längeren Latenz konnte ich inzwischen lösen. In einem Forum habe ich gelesen, dass Security S0, S2 die Probleme im Netzwerk verursachen können. Also musste ich alle Geräte mit S2 ausschliessen und ohne Security neu anlernen. Das waren alle Jalousieaktoren und mein Stromzähler.

Ich mach mal Schluß mit dem Monolog hier… :wink:
Die 700er haben einen schweren Bug in der Firmware, und die Symptome passen zu dem, was Du berichtest.
Ich bin vor kurzem auf einen 700er Controller gewechselt, und habe direkt die Firmware aktualisiert. Mit meinen knapp 50 Devices habe ich keine Probleme, ganz im Gegenteil, die bessere Performance und Reichweite ist deutlich zu spüren.
Leider ist das Firmware Update nicht ganz easy, man muß ne Menge Software von Silicon Labs installieren, und sich einen Account anlegen.

Danke Dir!
Das sind/waren noch Beiträge aus dem “alten” Forum.
Hier im neuen Forum werden Doppel- bzw. Mehrfachpostings konsequent beseitigt.

Hallo @jxxxxk
Die Firmware aktualisierte ich bereits zweimal. Das Problem mit den toten Knoten hatte ich weiterhin. Seit ich auf den 500er wechselte, läuft das System stabil und ohne Fehler.

@jxxxxk Welchen 700-Stick hast du und welche Firmware ist darauf? Ich habe den von Aeotec mit der Firmware v7.18.1. Ich habe dem 700er Stick noch eine Chance gegeben, das NVM-Backup vom 500er Stick auf den 700er Stick kopiert und ihn in Betrieb genommen. Das System brauchte ca. 5min um das Netzwerk aufzubauen und läuft seitdem anscheinend stabil. Ich bin gespannt. Ich kann ja schnell wieder wechseln, sollten die Probleme wieder auftreten.

Seit kurzem ist es möglich, die Firmware direkt über das Z-Wave JS UI zu laden. Das sollte, wenn es klappt, die Sache ziemlich vereinfachen.

Ich hab auch den Aeotec Z-Stick 7, ebenfalls mit Firmware v7.18.1.

Vorher hatte ich z-wave.me auf nem RasPi4, mit einem RaZberry 7 Pro (auch ein 700er Series Controller) mit FW 7.17.00, auch dieser lief schon stabil. Aber auch für diesen Controller gab es schon die Empfehlung, die FW zu aktualisieren.

Ich drück Dir mal die Daumen, dass es bei Dir jetzt auch klappt.

1 „Gefällt mir“

Ich hatte in Zwischenzeit zwei tote Knoten die angepingt wurden und bin jetzt wieder auf den 500 Stick gewechselt. :roll_eyes:

Puh…
erstmal DAnke für die INfos in diesem Post :slight_smile:
ich habe mir auch einen 700er Stick von Aeotec geholt. Leider das gleiche Spiel wie bei Guezli,
Keine Frage - der Stick ist schnell, hat eine gute Reichweite.

Aber immer wieder bekomme ich tote knoten.
nach neuem interviewen hält das ein paar Stunden maximal.

Ich bin jetzt auch am Überlegen einen Gen5 zu nehmen, oder doch mein Smartthings als Zwave Gateway zu missbrauchen.

Ich schaue mir aber noch ein Video von Peansky an. Er hat das Problem anscheinend gelöst.

Ich habe nur Zwave JS ohne MQTT also direkt an HA und will eh Nabu Casa Cloud verwenden .

Jetzt würde mich eure Meinung interessieren? Smartthings als Controller verwenden? (hätte ach gleich Matter mit an Board) oder eben auf Gen5 wechseln.

Zigbee mit ZHA läuft Phantastisch.

Nachtrag - ich habe jetzt mal auf 7.19.2 upgedatet.
Mal sehen, ob das bis morgen hält.

@Robert, kannst du mir sagen, wie die Lösung von Peansky aussieht? Und natürlich, ob die neue Firmware hilft. Dann wäre es für mich an der Zeit, wieder zu wechseln. :smiling_face:

Daaaanke!

Die Lösung seiner Meinung nach wäre ein Firmware Update.(ich Zweifel da noch :rofl:)

Ich habe 7.19.2 schon drauf jetzt.
Was neueres habe ich nicht gefunden.

Es läuft gerade ne “Heilung” ich hatte 3 tote rgbw controller von fibaro.

Ich warte heute mal ab und entscheide morgen ob ich den Stick so verwende oder nicht

Uuuuh, ein Update! Ja, auf diese Idee wäre ich nie gekommen.:joy: Mein 7bner Stick habe ich bereits geflasht. Hatte aber keine Lust die Übung anzugehen. Wobei ich sagen muss, der Wechsel zwischen den Sticks problemlos ist.

Edit: @Robert: den DeadNotes-Sensor mit der Ping-Automation hast du?

Nein, habe ich noch nicht.
Kannst du mir dazu was erklären? Gibt es ne kurze Anleitung :rofl:

Also gerade wieder ein rgbw controller auf dead geswitcht :smiling_face_with_tear:.

Habe jetzt echt einiges versucht.
Gibt es ne Alternative Firmware vielleicht?

@Robert, klar.

Füge den Teil in die Configuration.yaml ein

         # ZWaveJS Node Stats
         zwavejs_node_statistics:
          unique_id: zwavejs_node_statistics
          friendly_name: "ZwaveJS Node Statistics"
          icon_template: >-
            {%- if states.sensor | selectattr('entity_id', 'search', '_node_status') | selectattr('state', 'in', 'dead, unknown') | list | count > 0 -%}
              mdi:emoticon-sad
            {%- elif states.sensor | selectattr('entity_id', 'search', '_node_status') | rejectattr('state', 'in', 'alive, asleep, dead, unknown') | list | count > 0 -%}
              mdi:help-circle
            {%- else -%}
              mdi:z-wave
            {%- endif -%}
          value_template: "{{ states.sensor | selectattr('entity_id', 'search', '_node_status') | list | count }}"
          attribute_templates:
            Alive: "{{ states.sensor | selectattr('entity_id', 'search', '_node_status') | selectattr('state', 'in', 'alive, awake') | list | count }}"
            Sleeping: "{{ states.sensor | selectattr('entity_id', 'search', '_node_status') | selectattr('state', 'in', 'asleep') | list | count }}"
            Dead: "{{ states.sensor | selectattr('entity_id', 'search', '_node_status') | selectattr('state', 'in', 'dead, unknown') | list | count }}"
            
         zwavejs_node_statistics_dead:
            friendly_name: 'Zwave Dead'
            unique_id: zwavejs_node_statistics_dead
            unit_of_measurement: Entitäten
            value_template: "{{ (state_attr('sensor.zwavejs_node_statistics', 'Dead') )}}"

Dann prüfe auf Fehler und starte HAOS neu.

Dann erstelle die Automation:


alias: Ping Dead ZWave Devices
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.zwavejs_node_statistics
    attribute: Dead
    above: 0
condition:
  - condition: template
    value_template: "{{ int(states.sensor.zwavejs_node_statistics_dead.state) > 0 }}"
action:
  - service: zwave_js.ping
    data: {}
    target:
      entity_id: >-
        {{ states.sensor | selectattr('entity_id', 'search', '_node_status') |
        selectattr('state', 'in', 'dead, unknown') | map(attribute='entity_id')
        | list }}
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
mode: single


Vielen Dank, setze ich morgen um.

Ich hätte noch eine Frage/Idee

Betreibst du den Stick auf usb 2.0?
Ich ja mit 2 meter Berlängerung.

Werde ich morgen evtl. Auch mal testen direkt an USB 3 den Stick hängen.

In HA forum läuft das bei vielen mit gen7.

Das muss doch machbar sein :rofl: