Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
11.75k stars 1.64k forks source link

Instruction - how to migrate from CC2531 to another (better) Zigbee dongle #4151

Closed vencakratky closed 3 years ago

vencakratky commented 4 years ago

Bug Report

Please, write Instructions/documentation on zigbee2mqtt.io, how to migrate from CC2531 to another (better) dongle

What happened

I am planning make upgrade from CC2531 (source routing) to CC2652RB stick with 23 Zigbeee devices and i am finding the best Solution how to perform without nerve loss

What did you expect to happen

I expect help, what all i need change in section "advanced" - configuration. yaml Now i have: `advanced: pan_id: 6754 channel: 11 network_key:

Koenkk commented 4 years ago
advanced:
  network_key: GENERATE
Stoatwblr commented 4 years ago

why does the panid/epanid have to change and what happens if it doesn't?

noodlesft commented 4 years ago

Hi, I’ll receive my zzh in few days and I plan to do the same migration.

Does anyone know the best procedure to repair all devices ? Do I need to first remove all devices (using CC2531 and command zigbee2mqtt/bridge/config/remove), then install the zzh and pair again the devices ? Or is there any faster solution ? I have around 50 devices, it’ll be fun 👍

Also it seems that zzh uses only zigbee 3.0. Do you know if all devices are compatible with 3.0 ?

And last question :-) I’m using the source firmware with my CC2531. I only see one firmware for the zzh. How this firmware works compared to the standard or sources firmwares of the CC2531 ?

I’ll try to create a documentation for this migration.

Thanks.

vencakratky commented 4 years ago

My idea would be ,if there is some possibility of cloning (for example with a mac address) both Coordinators, or something like that, but that's probably just a utopia. I have "only" 23 devices, but with 50 devices it is better to burn out :) (joke)

cody82 commented 4 years ago

I am interested in this topic, too. Currenty 25 devices and the CC2531 may hit its limit soon. Repairing all would be quite some work. Also can I keep the friendly names in configuration.yaml? Whats the technical reason why repairing is needed?

Koenkk commented 4 years ago

why does the panid/epanid have to change and what happens if it doesn't?

Zigbee2MQTT will probably refuse to start (the error message indicates that you have to change the panid).

Does anyone know the best procedure to repair all devices ? Do I need to first remove all devices (using CC2531 and command zigbee2mqtt/bridge/config/remove), then install the zzh and pair again the devices ? Or is there any faster solution ?

Remove data/databse.db and change the panid in configuration.yaml.

And last question :-) I’m using the source firmware with my CC2531. I only see one firmware for the zzh. How this firmware works compared to the standard or sources firmwares of the CC2531 ?

CC2652R firmware is a source routing firmware.

Whats the technical reason why repairing is needed?

Also can I keep the friendly names in configuration.yaml?

Yes, to resart remove data/databse.db and change the panid in configuration.yaml.

Anjerlaan commented 4 years ago

I probably have to change the adapter as well. In my configuration.yaml there is no advanced: PAN_ID configured yet:

Koenkk commented 4 years ago
noodlesft commented 4 years ago

Hi there,

Just received my zzh and it works perfectly well ! It took me around 2 hours to update it and repair my 50 devices... it's quite easy as the device configuration is kept and the pairing with the zzh is incredibly fast and stable.

Here is a step by step procedure to update an existing configuration with CC2531 adapter to zzh (CC26X2R1) adapter if it can helps.

Here is my configuration prior the update :

PART 1. Flash the zzh (CC26X2R1)

Note : your zzh stick might not be on the same port (eg, /dev/ttyACM0 for CC2531 and /dev/USB0 for zzh). use following command to know your configuration

pi@raspberry:/ $ ls -l /dev/serial/by-id

Note : this link is for the current firmware (2020-08-05), check firmware version on following page : https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

Now, you should have a file named CC26X2R1_20200805.hex

You should see something like that : pi@raspberrypi:~/cc2538-bsl-master $ ./cc2538-bsl.py -p /dev/ttyUSB0 -evw CC26X2R1_20200805.hex Opening port /dev/ttyUSB0, baud 500000 Reading data from CC26X2R1_20200805.hex Your firmware looks like an Intel Hex file Connecting to target... CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8 Primary IEEE Address: xxxxx Performing mass erase Erasing all main bank flash sectors Erase done Writing 360448 bytes starting at address 0x00000000 Write 104 bytes at 0x00057F980 Write done Verifying by comparing CRC32 calculations. Verified (match: 0x1aded532)

Note : I had to try many times to have a correct flash. In case of wrong flash, then you might have following error message while launching zigbee2mqtt Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)

Now your coordinator is ready. The LED should be turned off (seems normal).

PART 2. Update Zigbee2mqtt configuration

PART 3. Validation and new pairing

Note : If you have groups. repairs all device from the group and simply restart zigbee2mqtt for have them working again.

Let me know if you have any question. And thanks for your advices @Koenkk

cody82 commented 4 years ago

So it is no problem migrating from zigbee 1.2 coordinator to 3.0? Even for 1.2 devices?

noodlesft commented 4 years ago

It’s not an issue, except that you have to pair again all your devices

vencakratky commented 4 years ago

PART 2. Update Zigbee2mqtt configuration

* Ensure that you have the latest version of zigbee2mqtt (for update, see : https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html)

* Go to the zigbee2mqtt folder
  `cd /opt/zigbee2mqtt/`

* Backup your data folder in case of issue
  `cp -R data data-backup`

* Remove you data/database.db file
  `rm data/database.db`

* Edit your configuration file (eg.
  `vi data/configuration.yaml `

* under section `serial :` If needed, update your Serial (eg. Port : /dev/ttyUSB0)

In Hass OS is zigbee2mqtt folder with database.db in "/share/zigbee2MQTT" But really nice Instructions ! :)

VincentSC commented 4 years ago

About security. Do I deduct correctly that state.json is the only file needed to move the coordinator to a new device (rpi)? If so, can the network be hijacked? Use that network-key?

Koenkk commented 4 years ago

@VincentSC you need to move everything in the data directory.

redahb commented 3 years ago

I'm switching my network (Zigbee2MQTT on Home Assistant) to a CC2652RB coordinator because of my constantly growing network so I'm going to have to re-pair everything. I can reset some lightbulbs by switching them on and off a couple times, I can take battery powerd devices near the new coordinator, but I also have a bunch of Hue bulbs/spots that are either in a ceiling or some even outside in wall light fixtures. Now, these bulbs are extremely difficult to reach or take out of their enclosures and the only way I know for them to re-pair is by either removing them from the current network or using touchlink. I've noticed that after removing the Hue bulbs from the network, they often refuse to join any new network, whereas they join fine after a touchlink or two.

I was thinking of just getting my Windows laptop, install Zigbee2MQTT on it, and then go around the house with a USB extension cable and a old coordinator. Keep it close to a bulb, and reset the devices with touchlink. But as I usually issue commands to Zigbee2MQTT through Home Assistant, I have no idea how to send the touchlink command to Zigbee2MQTT when installed on Windows with npm.

Any suggestions? I guess I could also VM a hassio instance, but I'm guessing there should be an easier way.

cody82 commented 3 years ago

I migrated my zigbee network from CC2531 to CC2652 like this:

Everything works after resetting devices which is a lot of work.

But now I get this:

zigbee2mqtt:warn 2020-09-21 22:43:50: Received message from unsupported device with Zigbee model 'undefined'

So I think I missed one or more devices. It is quite hard to keep track of ~30 devices. Is there anything I could do to find out the device type or something?

vencakratky commented 3 years ago

@cody82 i had similar Problem with Osram Flex RGBW (4052899926110) . On CC2531 was pairing fine, but with CC2652 i had Message from Zigbee2MQTT unknown device. I tried Copy strings from old "database.db" to new (created from CC2652) without "id". Examples: "type":"Router","ieeeAddr":"0x841826***","nwkAddr":31117,"manufId":48042,"manufName":"OSRAM","powerSource":"Mains (single phase)","modelId":"Flex RGBW"**************** and now again working with new Stick.

Anjerlaan commented 3 years ago

Hi,

I am about to change from CC2531 to the ZZH adapter on a raspberry pi 3b+ with Buster. If I make a clone of my current SD Card, can I just go back (if this change fails) to previous CC2531 installation when I replace the SD with the cloned SD?

Greetzzz,

Gerben

Anjerlaan commented 3 years ago
* Yes

* Yes

* Just use a different one, so if using the default (0x1a62) take 0x1a63

@Koenkk,

Do I need to be Root user to change from CC2531 to the ZZH adapter?

Koenkk commented 3 years ago

@Anjerlaan you only have to make a backup of your Zigbee2MQTT data folder.

Do I need to be Root user to change from CC2531 to the ZZH adapter?

This depends on your system setup, if you use root for CC2531 also use it for ZZH

Anjerlaan commented 3 years ago

@Anjerlaan you only have to make a backup of your Zigbee2MQTT data folder.

Do I need to be Root user to change from CC2531 to the ZZH adapter?

This depends on your system setup, if you use root for CC2531 also use it for ZZH

@koenkk I am having a problem now I had succesfully installed the ZZH adapter. And I could repair all devices wihout a problem. Also the groups were joining all relevant devices

However this was all done without restarting the Raspberry Pi After the re-start or shutdown/start Zigbee2MQTT runs with an error (not always, 2 out of 5).

okt 10 18:04:45 Domotica-Pi systemd[1]: Started zigbee2mqtt.
okt 10 18:04:46 Domotica-Pi npm[2465]: > zigbee2mqtt@1.15.0 start /opt/zigbee2mqtt
okt 10 18:04:46 Domotica-Pi npm[2465]: > node index.js
okt 10 18:04:48 Domotica-Pi npm[2465]: Zigbee2MQTT:info  2020-10-10 18:04:48: Logging to console and directory: 'data/log/2020-10-10.18-04-48' filename: log.txt
okt 10 18:04:48 Domotica-Pi npm[2465]: Zigbee2MQTT:debug 2020-10-10 18:04:48: Removing old log directory 'data/log/2020-10-10.18-00-13'
okt 10 18:04:49 Domotica-Pi npm[2465]: Zigbee2MQTT:debug 2020-10-10 18:04:49: Loaded state from file /opt/zigbee2mqtt/data/state.json
okt 10 18:04:49 Domotica-Pi npm[2465]: Zigbee2MQTT:info  2020-10-10 18:04:49: Starting Zigbee2MQTT version 1.15.0 (commit #ed8b4e5)
okt 10 18:04:49 Domotica-Pi npm[2465]: Zigbee2MQTT:info  2020-10-10 18:04:49: Starting zigbee-herdsman...
okt 10 18:04:49 Domotica-Pi npm[2465]: Zigbee2MQTT:debug 2020-10-10 18:04:49: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null},"backupPath":"/opt/zigbee2mqtt/data/coordinator_backup.json","databaseBackupPath":"/opt/zigbee2mqtt/data/database.db.backup","databasePath":"/opt/zigbee2mqtt/data/database.db","network":{"channelList":[25],"extendedPanID":[221,221,221,221,221,221,221,221],"networkKey":"HIDDEN","panID":6755},"serialPort":{"path":"/dev/ttyUSB1"}}'
okt 10 18:05:09 Domotica-Pi npm[2465]: Zigbee2MQTT:error 2020-10-10 18:05:09: Error while starting zigbee-herdsman
okt 10 18:05:09 Domotica-Pi npm[2465]: Zigbee2MQTT:error 2020-10-10 18:05:09: Failed to start zigbee
okt 10 18:05:09 Domotica-Pi npm[2465]: Zigbee2MQTT:error 2020-10-10 18:05:09: Exiting...
okt 10 18:05:09 Domotica-Pi npm[2465]: Zigbee2MQTT:error 2020-10-10 18:05:09: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
okt 10 18:05:09 Domotica-Pi npm[2465]:     at ZStackAdapter.<anonymous> (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:92:31)
okt 10 18:05:09 Domotica-Pi npm[2465]:     at Generator.throw (<anonymous>)
okt 10 18:05:09 Domotica-Pi npm[2465]:     at rejected (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:25:65)
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! code ELIFECYCLE
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! errno 1
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! zigbee2mqtt@1.15.0 start: `node index.js`
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! Exit status 1
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR!
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! Failed at the zigbee2mqtt@1.15.0 start script.
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR! A complete log of this run can be found in:
okt 10 18:05:09 Domotica-Pi npm[2465]: npm ERR!     /home/pi/.npm/_logs/2020-10-10T16_05_09_631Z-debug.log
okt 10 18:05:09 Domotica-Pi systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
okt 10 18:05:09 Domotica-Pi systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
okt 10 18:05:10 Domotica-Pi systemd[1]: zigbee2mqtt.service: Service RestartSec=100ms expired, scheduling restart.
okt 10 18:05:10 Domotica-Pi systemd[1]: zigbee2mqtt.service: Scheduled restart job, restart counter is at 3.
okt 10 18:05:10 Domotica-Pi systemd[1]: Stopped zigbee2mqtt.
Koenkk commented 3 years ago

@Anjerlaan do you have multiple USB devices connected? If so check if the port is correct: https://www.zigbee2mqtt.io/information/FAQ.html#verify-that-you-put-the-correct-port-in-configurationyaml

Anjerlaan commented 3 years ago

@Anjerlaan do you have multiple USB devices connected? If so check if the port is correct: https://www.zigbee2mqtt.io/information/FAQ.html#verify-that-you-put-the-correct-port-in-configurationyaml

I already figured it out. the USB ports switch sometimes after reboot, because there are 2 USB devices attached.

I followed this tutorial tot fix the USB ports. https://www.freva.com/nl/2019/06/20/geef-vaste-usb-poortnamen-aan-je-raspberry-pi/

And that worked.

Would be possible if zigbee2mqtt automatically recognizes the controllers port number instead of a manual path in a config file?

Koenkk commented 3 years ago

@Anjerlaan for the ZZH auto discovery is not possible because the used IDs are very generic (and also found in many other devices).

Anjerlaan commented 3 years ago

@Anjerlaan for the ZZH auto discovery is not possible because the used IDs are very generic (and also found in many other devices).

True because in the tutorial example one of the USB devices had exactly the same values as the ZZH

phoxy84 commented 3 years ago

Works perfect thanks. One advise for flashing the stick, get it into bootloader... I forgot and got the error message: ' ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)'.

I solved this by pressing the small button on top of the stick when putting it in my computer.Hope I can help someone not to do that :)

dchwilk commented 3 years ago

Hello! I have tried to flash the adapter for almost two hours (with Pi and Win10) - no success, Z2M does not start (CC2652RB_20201026.hex) I have now tested version 20200925 - finally successful! Does someone also have this problem?

Zigbee2MQTT:info  2020-11-03 12:03:51: Starting zigbee-herdsman...
Zigbee2MQTT:error 2020-11-03 12:04:12: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2020-11-03 12:04:12: Failed to start zigbee
Zigbee2MQTT:error 2020-11-03 12:04:12: Exiting...
Zigbee2MQTT:error 2020-11-03 12:04:12: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.<anonymous> (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:94:31)
    at Generator.throw (<anonymous>)
    at rejected (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:25:65)
phoxy84 commented 3 years ago

I flashed with CC26X2R1, you should use that one for this adapter. What adapter do you have?

I use this firmware for zig-a-zig-ah! adapter

dchwilk commented 3 years ago

I flashed with CC26X2R1, you should use that one for this adapter. What adapter do you have?

I use this firmware for zig-a-zig-ah! adapter

Thank you! I mixed up the firmware - embarrassing

phoxy84 commented 3 years ago

Glad I could help 👍

spurgelaurels commented 3 years ago

Just droppin a comment in case it helps someone... ZZH adaptor arrived, and I swapped the antenna for my bigger (better?) antenna, which was apparently not specced for the output so nothing was working. Stick to the provided antenna if you have any issues pairing devices.

w1nta commented 3 years ago

Thanks everyone for this thread it helped me a lot! Especially @noodlesft great write up bud. I had an issue migrating from CC2531 to the CC2652RB (ZZH). I had the LED disabled on my CC2531 and left it in the configuration.yaml when I migrated which causes zigbee2mqtt to fail to start. It does show in the logs that the LED is causing problems but it's a little cryptic.

This line is incompatible with the ZZH USB adapter and must be removed disable_led: true

gaggio commented 3 years ago

Thanks for this very useful discussions. I'm going to upgrade to a new coordinator (zzh should be the winner) and the only item missing from the above is what will happen to the devices in Home Assistant. Assuming the friendly names are preserved, the devices should be recognized in Home Assistant like nothing happened? So automations and dashboards would work without any intervention?

gemignani commented 3 years ago

Hey I have a devices.yaml (on configuration.yaml it is included as "devices": "devices.yaml") with friendly_name for each device, can I preserve this? I find this file a bit strange as zigbee2mqtt program alters the file once new devices are added or removed and I usually manually edit too (although I've noticed that the new webui can add friendly_name too by renaming devices). My plan is:

  1. Flash new device
  2. Backup current config and do not delete any devices from db
  3. Replace USB stick and configure zigbee2mqtt docker with new settings / check logs if all boots good
  4. Re-pair all devices (maybe start with routers?)
  5. Copy back my devices.yaml so my friendly names are restored.
cody82 commented 3 years ago

Friendly names are stored in configuration.yaml, not in devices.yaml.

gemignani commented 3 years ago

Friendly names are stored in configuration.yaml, not in devices.yaml. Hey @cody82 not necessarily, if you check the configuration page, you can see that you can separate the file and the separated file gets updated

cody82 commented 3 years ago

Sorry, I mixed up devices.yaml and database.db.

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

mozdyn commented 3 years ago

Hi there! I'm trying to replace CC2531 (stack 1.2) to CC2528 (stack 3.0) based on this thread, unfortunately without success. My setup is Homeassistant 0.118.5, Hass.io 5.8, Zigbee2MQTT version 1.16.2 I've set rtscts: false Increased pan_id Updated serial port and checked permissions for new serial port with: test -w [PORT] && echo success || echo failure Deleted database.db Have network key in place.

But Zigbee2mqtt do not want to start:

Zigbee2MQTT:info  2021-01-02 18:44:11: Starting Zigbee2MQTT version 1.16.2 (commit #1.16.2)
Zigbee2MQTT:info  2021-01-02 18:44:11: Starting zigbee-herdsman (0.13.37)
Zigbee2MQTT:debug 2021-01-02 18:44:11: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null,"delay":null},"backupPath":"/share/zigbee2mqtt/coordinator_backup.json","databaseBackupPath":"/share/zigbee2mqtt/database.db.backup","databasePath":"/share/zigbee2mqtt/database.db","network":{"channelList":[14],"extendedPanID":[221,221,221,221,221,221,221,221],"networkKey":"HIDDEN","panID":6756},"serialPort":{"path":"/dev/serial/by-id/usb-Texas_Instruments_CC2538_USB_CDC-if00","rtscts":false}}'
Zigbee2MQTT:error 2021-01-02 18:44:14: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2021-01-02 18:44:14: Failed to start zigbee
Zigbee2MQTT:error 2021-01-02 18:44:14: Exiting...
Zigbee2MQTT:error 2021-01-02 18:44:14: Error: SREQ '--> SYS - osalNvWrite - {"id":3,"len":1,"offset":0,"value":{"type":"Buffer","data":[2]}}' failed with status '(0x0a: NV_OPER_FAILED)' (expected '(0x00: SUCCESS)')
    at Znp.<anonymous> (/zigbee2mqtt-1.16.2/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:291:27)
    at Generator.next (<anonymous>)
    at fulfilled (/zigbee2mqtt-1.16.2/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:24:58)

Tried different firmwares : antst/CC2538-ZNP-Coordinator-firmware jethome-ru/zigbee-firmware/cc2538_cc2592/MODKAMRU_V3

Any idea what to check? Or idea what the error means? Should I add/change extendedPanID - how?

Koenkk commented 3 years ago

@mozdyn I'm no CC2538 expert, but I think you have to clear the NV memory (https://github.com/Koenkk/zigbee2mqtt/blob/master/scripts/zStackEraseAllNvMem.js)

mozdyn commented 3 years ago

@Koenkk thanks for the tip, but need another one... How to do it? From Homeassistant? JTAG? UART converter? Linux workstation (without lev.99 spells)? Unfortunately have no idea how to use the script...

Koenkk commented 3 years ago

Via JTAG I believe (but might be better to open an issue here: https://github.com/jethome-ru/zigbee-firmware/issues).

Meanwhile I wrote some docs on how to migrate to a more powerful dongle: https://www.zigbee2mqtt.io/information/FAQ.html#how-do-i-migrate-from-a-cc2531-to-a-more-powerful-coordinator-eg-zzh . Assuming this can be closed now.

delicon commented 3 years ago

I've changed my old CC2531 dongle with new CC2531 from Sonoff. It says that is already flashed with CC2531ZNP-Prod firmware.

Zigbee2mqtt is starting and shows all the devices, but nothing works. When I'm opening the Map it shows all the devices but they are not connected with each other like before.

florentin68 commented 3 years ago

Thanks everyone for this thread it helped me a lot! Especially @noodlesft great write up bud. I had an issue migrating from CC2531 to the CC2652RB (ZZH). I had the LED disabled on my CC2531 and left it in the configuration.yaml when I migrated which causes zigbee2mqtt to fail to start. It does show in the logs that the LED is causing problems but it's a little cryptic.

This line is incompatible with the ZZH USB adapter and must be removed disable_led: true

I had to to so also for CC2652RB (slaesh).

timdonovanuk commented 3 years ago

You're all going to hate me, but with 60+ zigbee devices I did not feel like repairing them all! And neither do you have to...

Below I migrated a CC2521 to a zzh (CC2652R) without repairing/re-adding devices:

  1. Follow the instructions here: https://github.com/zigpy/zigpy-znp/blob/dev/TOOLS.md#network-backup-beta
  2. Shutdown z2m.
  3. Plug in both old and new adapters
  4. Run the following commands:

python3 -m zigpy_znp.tools.network_backup /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E1F3C2-if00 -o network_backup.json

python3 -m zigpy_znp.tools.network_restore /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 -i network_backup.json



(or replace Texas_Instruments_TI and usb-1a86_USB with your old and new devices, found by doing sudo ls /dev/serial/by-id)

voila...it took me 30 seconds to switch from old stick to new stick.

The FAQ about "what requires repairing" is now officially out of date ;) 
redahb commented 3 years ago

You're all going to hate me, but with 60+ zigbee devices I did not feel like repairing them all! And neither do you have to...

-snip-

The FAQ about "what requires repairing" is now officially out of date ;)

That's just awesome!

timdonovanuk commented 3 years ago

Weirdly it seems I can now switch between CC2531 and CC2652R adapters with out any issue. I just tried switching CC2652R -> CC2531 and back to CC2652R and z2m didn't mind! Useful to know if the CC2652R ever breaks the CC2531 can be used as spare!

vencakratky commented 3 years ago

Can somebody confirm solution from @timdonovanuk with Home Assistent Core - Home Assistant OS? What about @Koenkk ? Thanks

timdonovanuk commented 3 years ago

@vencakratky none of this is anything to do with Home Assistant, and if you'd like to use my method you will need another computer - HomeAssistant OS will not allow you to install zigpy or easily run commands from the terminal. I used a spare Raspberry Pi to run the commands on the two adapters. Once run, you can just put the adapter back into the computer running Homeassistant OS and start the z2m add-on.

chrismast commented 3 years ago

@vencakratky none of this is anything to do with Home Assistant, and if you'd like to use my method you will need another computer - HomeAssistant OS will not allow you to install zigpy or easily run commands from the terminal. I used a spare Raspberry Pi to run the commands on the two adapters. Once run, you can just put the adapter back into the computer running Homeassistant OS and start the z2m add-on.

Awesome find @timdonovanuk ! I just got my zzah! (CC2652R) and was about to do the migration over the next couple of days. Will try your approach on my LXC container and report back.

--edit: Just FYI, did the CC2531 backup already, though using a slightly different (supported) command as my LXC does not list by device ID, in case anyone else has this challenge:

sudo python3 -m zigpy_znp.tools.network_backup /dev/ttyACM0 -o network_backup.json

/deb/ttyACM0 in this case is the USB link to my CC2531. For migration will still need to pass-through my new CC2652R though.

I also did run into installation issues as the following command did not work:

sudo pip install https://github.com/zigpy/zigpy-znp/archive/dev.tar.gz

I changed it to use the correct pip package:

sudo pip3 install https://github.com/zigpy/zigpy-znp/archive/dev.tar.gz