Migration des Netzwerks von Aeotec Gen5 zu 10 Pro

Begonnen von fireball, 23 August 2025, 12:48:47

Vorheriges Thema - Nächstes Thema

krikan

Zitat von: rudolfkoenig am 01 September 2025, 19:38:38Wir koennten das auch in die Initialisierung des Controlles aufnehmen.
Ich muesste nur wissen, woran ich erkenne, dass der Controller das kann.
Was passiert, wenn einfach die Initaliserung auf 8bit immer ausgeführt wird?
Mein Controller, der einen 500 Chip hat und das nicht unterstützt liefert:
2025.09.01 21:03:40.461 5: ZWDongle_Write 000B8001 ()
2025.09.01 21:03:40.462 5: DevIo_SimpleWrite ZWDongle: 0105000B800170
2025.09.01 21:03:40.463 4: ZWDongle_ReadAnswer arg:raw regexp:^010B
2025.09.01 21:03:40.463 5: ACK received, removing 0105000B800170 from dongle sendstack
2025.09.01 21:03:40.463 4: ZWDongle_Read ZWDongle: rcvd 010b0080 (answer SERIAL_API_SETUP), sending ACK
2025.09.01 21:03:40.463 5: DevIo_SimpleWrite ZWDongle: 06
2025.09.01 21:03:40.465 5: ZWDongle: dispatch 010b0080
2025.09.01 21:03:40.465 4: ZWDongle unhandled ANSWER: SERIAL_API_SETUP 0080
2025.09.01 21:03:41.466 5: ZWDongle_ReadAnswer: select timeout
Bei den Controllern, die den Befehl unterstützen, wird das eben auf 8bit gesetzt mit der Rückmeldung entsprechend Logs laut @fireball.

Anregung gezogen aus: https://github.com/openhab/org.openhab.binding.zwave/commit/29b031b2dad73bb767fc0876905b3fb74323849a

Zwar nicht die "feine" Art, aber relativ simpel; zwingt ZWaveJs nicht auch die 16bit auf?

krikan

Der Befehl "Set Node ID Base Type" wurde mit der Serial API version 9 (>=SDK 7.14.x) eingeführt. Mit "get <controller> caps" bzw. "get <controller> version" kann man dazu Hinweise bekommen und müsste nicht immer den Befehl absetzen.

Eigentlich sollte man doch auch über caps ermitteln können, welche SERIAL_API_SETUP-Funktionen der Controller unterstützt. Fündig bin ich aber noch nicht geworden. 

Damu



ZitatPOE_ZW_Prim_OG caps => Vers:7 Rev:42 ManufID:0147 ProductType:0401 ProductID:0101 SERIAL_API_GET_INIT_DATA SERIAL_API_APPL_NODE_INFORMATION APPLICATION_COMMAND_HANDLER ZW_GET_CONTROLLER_CAPABILITIES SERIAL_API_SET_TIMEOUTS SERIAL_API_GET_CAPABILITIES SERIAL_API_SOFT_RESET UNKNOWN_09 UNKNOWN_0a SERIAL_API_SETUP ZW_SET_R_F_RECEIVE_MODE ZW_SEND_NODE_INFORMATION ZW_SEND_DATA ZW_SEND_DATA_MULTI ZW_GET_VERSION ZW_SEND_DATA_ABORT ZW_GET_RANDOM MEMORY_GET_ID MEMORY_GET_BYTE MEMORY_PUT_BYTE MEMORY_GET_BUFFER MEMORY_PUT_BUFFER FLASH_AUTO_PROG_SET ZW_NVR_GET_VALUE NVM_GET_ID NVM_EXT_READ_LONG_BUFFER NVM_EXT_WRITE_LONG_BUFFER NVM_EXT_READ_LONG_BYTE NVM_EXT_WRITE_LONG_BYTE UNKNOWN_2e ZW_CLEAR_TX_TIMERS ZW_GET_TX_TIMERS CLEAR_NETWORK_STATS GET_NETWORK_STATS GET_BACKGROUND_RSSI UNKNOWN_3c REMOVE_NODEID_FROM_NETWORK ZW_GET_NODE_PROTOCOL_INFO ZW_SET_DEFAULT ZW_REPLICATION_COMMAND_COMPLETE ZW_REPLICATION_SEND_DATA ZW_ASSIGN_RETURN_ROUTE ZW_DELETE_RETURN_ROUTE ZW_REQUEST_NODE_NEIGHBOR_UPDATE ZW_APPLICATION_UPDATE ZW_ADD_NODE_TO_NETWORK ZW_REMOVE_NODE_FROM_NETWORK ZW_CONTROLLER_CHANGE ZW_ASSIGN_PRIORITY_RETURN_ROUTE ZW_SET_LEARN_MODE ZW_ASSIGN_SUC_RETURN_ROUTE ZW_REQUEST_NETWORK_UPDATE ZW_SET_SUC_NODE_ID ZW_DELETE_SUC_RETURN_ROUTE ZW_GET_SUC_NODE_ID ZW_SEND_SUC_ID ZW_ASSIGN_PRIORITY_SUC_RETURN_ROUTE ZW_EXPLORE_REQUEST_INCLUSION ZW_EXPLORE_REQUEST_EXCLUSION ZW_REQUEST_NODE_INFO ZW_REMOVE_FAILED_NODE_ID ZW_IS_FAILED_NODE ZW_REPLACE_FAILED_NODE UNKNOWN_65 UNKNOWN_68 GET_ROUTING_TABLE_LINE LOCK_ROUTE_RESPONSE ZW_GET_PRIORITY_ROUTE ZW_SET_PRIORITY_ROUTE UNKNOWN_98 SERIAL_API_SLAVE_NODE_INFO ZW_SEND_SLAVE_NODE_INFO ZW_SET_SLAVE_LEARN_MODE ZW_GET_VIRTUAL_NODES ZW_IS_VIRTUAL_NODE ZW_APPLICATION_COMMAND_HANLDER_BRIDGE ZW_SEND_DATA_BRIDGE ZW_SEND_DATA_MULTI_BRIDGE ZW_TYPE_LIBRARY ZW_SEND_TEST_FRAME ZW_GET_PROTOCOL_STATUS ZW_SET_PROMISCUOUS_MODE PROMISCUOUS_COMMAND_HANDLER WATCHDOG_START WATCHDOG_STOP ZW_SET_ROUTING_MAX UNKNOWN_d6 UNKNOWN_d7 UNKNOWN_d8 UNKNOWN_d9 UNKNOWN_da UNKNOWN_db UNKNOWN_dc UNKNOWN_dd UNKNOWN_de UNKNOWN_df UNKNOWN_e7 UNKNOWN_e8 ZME_FREQ_CHANGE ZME_BOOTLOADER_FLASH ZME_CAPABILITIES UNKNOWN_f8 UNKNOWN_fd UNKNOWN_fe

ZitatPOE_ZW_Prim_OG version => Z-Wave 7.21 STATIC_CONTROLLER

Hab noch einen Reserve Controller.

Gibt es Raw Befehle für die umschaltungen?

Damu

ZitatZ-Wave 7.23 BRIDGE_CONTROLLER

Kanst du nicht auf "Static Controller" umschalten?
Weis nicht ob FHEM das schon beherscht.
Welche Node IDs werden dir für den Controller angezeigt?

fireball

Moinsen, habe gestern nochmal mit CoPilot über die Dinge hier gesprochen:

Zu den Controllern:

ZitatSTATIC_CONTROLLER
- Typisch für Standard-Z-Wave Gateways wie Z-Way, OpenZWave, OpenHAB usw.
- Der Controller ist fest im Netzwerk verankert und übernimmt zentrale Aufgaben wie das Routing und die Verwaltung der Node-Informationen.
- Unterstützt keine Virtualisierung oder dynamische Netzwerkverbindungen.
- Network-Wide Inclusion (NWI): Unterstützt das Hinzufügen von Geräten über das gesamte Netzwerk hinweg.
- Wird bei jedem Neustart von Z-Way automatisch aktiviert.
- Ideal für normale Heimautomatisierungssysteme, bei denen ein einzelner Controller dauerhaft aktiv ist.

BRIDGE_CONTROLLER
- Ermöglicht virtuelle Controller-Instanzen und dynamische Netzwerkverbindungen.
- Unterstützt Virtual Learn Mode, was besonders bei komplexen Setups oder bei der Integration mehrerer Netzwerke hilfreich ist.
- Wird von neuerer Software wie bestimmten Silicon Labs SDKs oder Z/IP-Architekturen verwendet.
- Kann manuell aktiviert werden, z. B. über ZMESerialAPIOptionsStaticAPISet(false) in Z-Way.
- Nützlich für Entwickler, Testumgebungen oder fortgeschrittene Installationen mit mehreren Controllern.

Entscheidungshilfe
Einsatzbereich                   Empfohlener Controller
Smart Home Gateway           Static Controller
Entwicklung & Test           Bridge Controller
Virtuelle Geräteverwaltung   Bridge Controller
Stabile Netzwerkstruktur   Static Controller


Viell. hat ZwaveUI JS neben den 16bit NodeID auch den BRIDGE Mode gesetzt?!

Umschalten kann man wohl über:

ZitatModuswechsel über Z-Way

1. Z-Way stoppen 
  Beende den Z-Way-Dienst, damit er den Modus nicht automatisch zurücksetzt.

2. Modus setzen 
  Verwende folgenden API-Befehl:
  `javascript
  /JS/Run/zway.ZMESerialAPIOptionsStaticAPISet(false)
  `
  Dieser Befehl schaltet den Controller in den Bridge-Modus.

3. Controller stromlos machen 
  Trenne den Controller physisch vom Strom (z. B. USB-Stecker ziehen), damit die Änderung übernommen wird.

4. Z-Way neu starten 
  Starte Z-Way nicht sofort, da es den Modus sonst wieder auf Static zurücksetzt. Du kannst den Controller nun in einem anderen System oder Modus verwenden.


Was ich jetzt aber rausgelesen habe, BRIDGE ist zwar der kompliziertere Modus und eigentlich @Home nicht notwendig, aber er läßt wohl parallele Zugriffe von unterschiedlicher Software zu.

@rudolfkoenig
1. Damit könnte der Bridge-Mode für meinen parallelen Betrieb von ZWaveUI JS und FHEM ja doch funzen!?
Ansonsten wäre es denkbar, den Gen5 Stick an (m)einem anderen Rechner als SecondaryNode mit ZwaveUI-JS zu betreiben?!
2. Ich hatte den 10pro ja unter HA+ZwaveUI-JS auch mit 16 bit NodeID laufen (erinnerst du dich an die Kuriosität?! wo ich mit zwei Systemen und Sticks die Geräte schalten konnte... also die Geräte hatten da auch kein Problem mit LongRange Setup.


Anonsten hier mal die get caps - Ausdruck von mir:
ZWDongle_0 caps => Vers:7 Rev:23 ManufID:0371 ProductType:0004 ProductID:003c SERIAL_API_GET_INIT_DATA SERIAL_API_APPL_NODE_INFORMATION ZW_GET_CONTROLLER_CAPABILITIES SERIAL_API_SET_TIMEOUTS SERIAL_API_GET_CAPABILITIES SERIAL_API_SOFT_RESET UNKNOWN_09 UNKNOWN_0a SERIAL_API_SETUP ZW_SET_R_F_RECEIVE_MODE ZW_SEND_NODE_INFORMATION ZW_SEND_DATA ZW_SEND_DATA_MULTI ZW_GET_VERSION ZW_SEND_DATA_ABORT ZW_GET_RANDOM MEMORY_GET_ID MEMORY_GET_BYTE MEMORY_PUT_BYTE MEMORY_GET_BUFFER MEMORY_PUT_BUFFER FLASH_AUTO_PROG_SET ZW_NVR_GET_VALUE NVM_GET_ID NVM_EXT_READ_LONG_BUFFER NVM_EXT_READ_LONG_BYTE UNKNOWN_2e ZW_CLEAR_TX_TIMERS ZW_GET_TX_TIMERS CLEAR_NETWORK_STATS GET_NETWORK_STATS GET_BACKGROUND_RSSI UNKNOWN_3c UNKNOWN_3d REMOVE_NODEID_FROM_NETWORK ZW_GET_NODE_PROTOCOL_INFO ZW_SET_DEFAULT ZW_ASSIGN_RETURN_ROUTE ZW_DELETE_RETURN_ROUTE ZW_REQUEST_NODE_NEIGHBOR_UPDATE ZW_APPLICATION_UPDATE ZW_ADD_NODE_TO_NETWORK ZW_REMOVE_NODE_FROM_NETWORK ZW_CONTROLLER_CHANGE ZW_ASSIGN_PRIORITY_RETURN_ROUTE ZW_SET_LEARN_MODE ZW_ASSIGN_SUC_RETURN_ROUTE ZW_REQUEST_NETWORK_UPDATE ZW_SET_SUC_NODE_ID ZW_DELETE_SUC_RETURN_ROUTE ZW_GET_SUC_NODE_ID ZW_SEND_SUC_ID ZW_ASSIGN_PRIORITY_SUC_RETURN_ROUTE ZW_EXPLORE_REQUEST_INCLUSION ZW_EXPLORE_REQUEST_EXCLUSION ZW_REQUEST_NODE_INFO ZW_REMOVE_FAILED_NODE_ID ZW_IS_FAILED_NODE ZW_REPLACE_FAILED_NODE UNKNOWN_65 UNKNOWN_68 UNKNOWN_69 UNKNOWN_6a UNKNOWN_6b UNKNOWN_6c GET_ROUTING_TABLE_LINE LOCK_ROUTE_RESPONSE ZW_GET_PRIORITY_ROUTE ZW_SET_PRIORITY_ROUTE UNKNOWN_98 SERIAL_API_SLAVE_NODE_INFO ZW_SEND_SLAVE_NODE_INFO ZW_SET_SLAVE_LEARN_MODE ZW_GET_VIRTUAL_NODES ZW_IS_VIRTUAL_NODE ZW_APPLICATION_COMMAND_HANLDER_BRIDGE ZW_SEND_DATA_BRIDGE ZW_SEND_DATA_MULTI_BRIDGE UNKNOWN_ac ZW_TYPE_LIBRARY ZW_SEND_TEST_FRAME ZW_GET_PROTOCOL_STATUS WATCHDOG_START WATCHDOG_STOP ZW_SET_ROUTING_MAX UNKNOWN_d6 UNKNOWN_d7 UNKNOWN_d8 UNKNOWN_d9 UNKNOWN_da UNKNOWN_db UNKNOWN_dc UNKNOWN_dd UNKNOWN_de UNKNOWN_df UNKNOWN_e7 UNKNOWN_e8

Letzte Frage, wenn ich in FHEM ein Rename des Controllernames mache, muss ich den DevIO Eintrag in den Geräten manuell ändern?!




rudolfkoenig

Zitat1. Damit könnte der Bridge-Mode für meinen parallelen Betrieb von ZWaveUI JS und FHEM ja doch funzen!?
Ich bezweifle es. Womoeglich habe ich aber eine falsche Vorstellung davon, wie das zusammengeschaltet ist.

ZitatLetzte Frage, wenn ich in FHEM ein Rename des Controllernames mache, muss ich den DevIO Eintrag in den Geräten manuell ändern?!
Ja, FHEM Befehl siehe Beitrag #4