Replies: 182 comments 633 replies
-
I'd like to remove the |
Beta Was this translation helpful? Give feedback.
-
My suggestion is to remove |
Beta Was this translation helpful? Give feedback.
-
I'd also like to remove the duplicate |
Beta Was this translation helpful? Give feedback.
-
So what's the timeframe for 2.0.0 approximately? (I am asking if I should do a larger clean-up PR for Home Assistant discovery instead of adding Also, wouldn't it be easier if there was a |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
How about implementing a tool to translate a valid 1.xx configuration to a valid 2.0 configuration? Possibly with some instructions for porting actually incompatible features, but only when present. The thing I liked about this project was its stability (only since the last 10 or so 1.xy releases). Why would you ruin your (until this decision) great reputation? Software can always be made to be backwards compatible and it's not like that's hard to accomplish (every design patterns book even explains how to do that). It's just not a "cool" thing. Software has utility when it does work and you don't need to track its development. Every second people need to care about you making things "better", is lost productivity. Why are you breaking APIs and existing configurations again (that would want to upgrade to version 2)? |
Beta Was this translation helpful? Give feedback.
-
I am in favor of breaking change for 2.0 and major updates. It is not always possible or desirable to keep old stuff. I have a question about the 1.x z2m.
Is there a policy for z2m ? |
Beta Was this translation helpful? Give feedback.
-
What are those supposed to be replaced by ? I read here that actions are replaced by event, but how would it work with devices like old Ikea remotes, as i don't see events implemented yet ? |
Beta Was this translation helpful? Give feedback.
-
So with Z2M 2.0 , will it be true that I cannot enable permit join via MQTT, wait up to 5 mins for a device to join, interview and configure then disable permit join via MQTT ? |
Beta Was this translation helpful? Give feedback.
-
I've been enjoying Zigbee2MQTT for years now. Many thanks for maintaining such a great product so diligently. Hats off from me. |
Beta Was this translation helpful? Give feedback.
-
I look at the proposed changelist and everything is really promising @Koenkk, but one thing i want to put up for discussion, and that is the removal of I myself, and assume a lot of people use other automation platform, for example Node-RED. The HA-NR integration is greate, device triggers also added so basically this change should not be a prolem, right? Sadly, it is, generally as device triggers work, you cannot target multiple device with one selector, in the past I wrote a lot of common subflow/function that use the generic state triggers and filters entities by regex, because I use consistent naming for my entities, not really need to deploy 100s of device triggers just use, for example this regex: Can we at least shift the deprecation of this action/click entities because i assume that i not the only one that has such a use-case. |
Beta Was this translation helpful? Give feedback.
-
I may have missed this elsewhere, but I think it's worth coming up with a plan for the What if:
|
Beta Was this translation helpful? Give feedback.
-
I have been using Zigbee2mqtt for years. Many thanks and my respect for your great work. |
Beta Was this translation helpful? Give feedback.
-
It would be good if some of the changes can be brought forward into v1 to enable people to migrate their configs off legacy sooner - e.g. introduce the change to update sensors alongside the current setup. |
Beta Was this translation helpful? Give feedback.
-
This is probably the bottom of your list of priorities, but can we see some UI/UX improvements? thanks |
Beta Was this translation helpful? Give feedback.
-
I'd like to suggest an improvement to this post based on an issue I ran into. The post has this note:
Then later it has a section:
I had ignored that section since my config had |
Beta Was this translation helpful? Give feedback.
-
Why do I have to use device_id instead of a human-readable mnemonic name in the trigger associated with the button, as it was before?This approach makes debugging and replacing hardware more difficult. |
Beta Was this translation helpful? Give feedback.
-
Hello to everybody. What's wrong?? Thanks in advance. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I have just upgraded to v2.0.0 and my experience in Docker hasn't been too smooth. I configure Z2M via environment variables not sure where I am going wrong, or if this is a bug but, old (and therefore invalid) configuration options linger in the configuration.yaml file even though the associated environment variable has been removed. Example: Also, none of the configuration options in the O/P seem to work via the environment variable approach. Here is my new .env file:
vs my configuration.yaml: homeassistant: true
mqtt:
base_topic: zigbee2mqtt
server: mqtt://emqx:1883
user: Zigbee2MQTT
password: SuperSecretPassword
serial:
port: >-
/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_f8b96b29c712ec11902e23c7bd930c07-if00-port0
advanced:
network_key:
- 202
- 112
- 238
- 152
- 21
- 43
- 250
- 248
- 37
- 158
- 142
- 150
- 143
- 221
- 214
- 86
pan_id: 64298
ext_pan_id:
- 249
- 134
- 182
- 114
- 23
- 189
- 108
- 247
frontend:
enabled: true
port: 8099
url: http://192.168.1.70:8099
device_options: {}
version: 4 As it stands, I have a working (roughly) version of Z2M, but I have had to add the configuration options manually |
Beta Was this translation helpful? Give feedback.
-
Another rather annoying problem: That means:
This caused a lot of manual work to fix everything. |
Beta Was this translation helpful? Give feedback.
-
may a hint here as im prolly missing something here as all my HA devices are non functional at all after updating so, i updated z2m to v2, adjusted the yaml configuration like this (turned off legacy) docker up and running and on z2m webui all looking ok, also sensors and switches are working but on HA side ... all devices are "off" and "greyed" out like non existent ... restarted mosquitto, checked the HA settings in terms of Birth message topic, looking all ok ... so i assume there must be something else todo which i may miss from the 1st topic message here, may in HA, may in mosquitto, .. ? when i enable legacy, all devices are immediately here and working in HA, but as legacy will be EOL someday i thought lets do the switch now ... and dont wait until day X ;) for any tips, thanks ahead |
Beta Was this translation helpful? Give feedback.
-
i was waiting a few weeks for the upgrade to 2.0.0 after the fail with v1.42.0-1 that removed all of my devices in a minor release, just to find out that the section labeled as "Only breaking when legacy is enabled" actually works in the completely opposite way, it's a breaking change only when the legacy mode is turned off, so by default it creates a breaking change why "this will screw up all your zigbee buttons" isn't the huge bold red header on top of the release notes, but instead is just buried deep intro some breaking changes discussion i know that this isn't a product we pay for, and if we don't like how it works we can just stop using it, instead of yapping there, but it's not about the software itself, it's about simply informing people about important stuff, instead we get "Remove legacy" and a link to a PR that simply list what was removed, and a question about what does this even mean left without any answer while this most likely it's enough for people that are contributing to the codebase, probably 99.9999999999% of people using this code aren't contributing and never will be, because we just want to turn on and off light in our houses while laying on the couch update: i'm going back to 1.x, it breaks more stuff than just buttons, in my case the climate related stuff, so home heating doesn't work anymore, it's too cold to spend time on debuging that |
Beta Was this translation helpful? Give feedback.
-
Commit 60c37c1 causes problems with Home Assistant < 2024.8:
Probably worth mentioning minimum required Home Assistant version. |
Beta Was this translation helpful? Give feedback.
-
With all the restarting and pulling of containers in Portainer, I somehow managed to change the IP address of my Mosquito, so double check that! Here's my working
|
Beta Was this translation helpful? Give feedback.
-
Sorry, I'm a bit unsure of this. I was going to do the upgrade but then read the bit about breaking changes
Do you mean literally the configuration.yaml file or the configuration in the Zigbee2MQTT add-on section which has 3 parts filled in [ie socat, mqtt and serial]? I originally just put that block in the configuration.yaml file but when I ran the Check Configuration it came back with warnings
I'm running on Generic x86-64 and have a flashed Sonoff 3.0 USB adapter that's been running fine for 3 years or so. 60 odd devices on Zigbee. Edit: I've just found another configuration.yaml file in the subdirectory zigbee2mqtt! Is that where I should add that block of stuff? Edit: Edit: I've done the upgrade following the instructions above and for the USB device and it all seems to be working now. I did get a few problems along the way and the addition to the configuration.yaml file as above seems to have been reduced to
Don't know how! |
Beta Was this translation helpful? Give feedback.
-
I have slzb-06m configured with adapter ember. |
Beta Was this translation helpful? Give feedback.
-
I am so happy not using Home Assistant but Domoticz. Update to 2.0 completed successfully, no errors, no issues. :) |
Beta Was this translation helpful? Give feedback.
-
So are we supposed be using
or
There seems to be conflicting information |
Beta Was this translation helpful? Give feedback.
-
Will triggers like this, based on an MQTT device's "friendly name" still work in 2.0? triggers:
- trigger: mqtt
topic: zigbee2mqtt/Bedroom Lamp Switches/action
payload: 1_double Thank you. |
Beta Was this translation helpful? Give feedback.
-
This discussion contains a list of breaking changes for Zigbee2MQTT 2.0.0.
Tip
Most of the breaking changes are about removing legacy features that have been deprecated for years (replaced & improved since), and as such, automatically disabled for newer networks.
How to get prepared (before updating to 2.0.0)?
In order to get the minimal amount of breaking changes when upgrading from 1.x.x to 2.0.0, make sure you have the following in your Zigbee2MQTT
configuration.yaml
:Also it is recommended to explicitly add a
serial.adapter
to yourconfiguration.yaml
, see #24364 for more info.Important
Check you current
configuration.yaml
, it is likely that some of these values are already present, and set tofalse
, if your network is recent enough (past few years). The breaking changes marked with: Only breaking when legacy is enabled can be ignored if your configuration already has these values set tofalse
.Breaking changes
General
USB adapter discovery error (No valid USB adapter found)
, see Z2M 2.0.0: `USB adapter discovery error (No valid USB adapter found)` #24364 how to fix this.zstack
is no longer the default foradapter
setting. If Zigbee2MQTT fails to start saying the adapter could not be discovered, it means your adapter uses an identification not currently recognized by Zigbee2MQTT, make sure to specify theadapter
setting if that's the case.Bare-metal installations (no Docker/Home Assistant add-on)
configuration.yaml
from repo, this will result in the following error when updating:git checkout data/configuration.example.yaml mv data/configuration.yaml data/configuration.yaml.bak ./update.sh # (update as you usually do) mv data/configuration.yaml.bak data/configuration.yaml
pnpm
is now used instead ofnpm
, the installation instructions andupdate.sh
script has been updated accordingly. For existing installations you need to executenpm install -g pnpm
before updating../update.sh
script, make sure you pull changes from git withgit pull --no-rebase
(after stopping Zigbee2MQTT).pnpm run clean
, then start Zigbee2MQTT again.Home Assistant
update_state
andupdate_available
entities have been removed (succeeded by theupdate
entities).homeassistant
property, useexposes
instead.sensor
/select
forselect
/number
/button
entities, the full list of removed entities per model can be found here.hass/status
Home Assistant status topic anymore,homeassistant/status
is used instead (ifhomeassistant.status_topic
is not set in your Z2Mconfiguration.yaml
). Double check that Home Assistant is using this status topic by going to: HA -> Settings -> Devices & services -> MQTT -> Configure -> Re-configure MQTT -> Next; the Birth message topic should behomeassistant/status
.homeassistant.legacy_triggers
setting). This means allsensor.*_click
entities are removed. Use the MQTT device trigger instead.sensor.*_action
entities). It's recommended to use the MQTT device trigger instead. In case you really need the action sensors, add the following to yourconfiguration.yaml
.homeassistant.legacy_entity_attributes
setting) has been removed. This means that entities discovered by Zigbee2MQTT will no longer have entity attributes (Home Assistant entity attributes are accessed via e.g.states.binary_sensor.my_sensor.attributes
).Device specific
child_lock
on/off values have been changed fromtrue
/false
toLOCK
/UNLOCK
.illuminance_lux
toilluminance
, this breaks in two ways:illuminance_lux
has been removed and the value ofilluminance
changes. Home Assistant users might have to manually enable this sensor via Home Assistant. This affects the following devices: 83633205, MOSZB-140, MOSZB-153, EFEKTA_iAQ3, EFEKTA_PWS_Max, EFEKTA_PWS_MaxPro, EFEKTA_eON29wz, EFEKTA_eFlower_Pro, EFEKTA_iAQ, E2134, POK004, POK011, ROB_200-070-0, HK-SENSOR-4IN1-A, AU-A1ZBPIRS, RADON TriTech ZB, TS0601_illuminance_temperature_humidity_sensor_1, TS0202_3, S-LUX-ZB, TS0222_light, THE01860A, TS0222, LCZ030, MIR-HE200-TY, XFY-CGQ-ZIGB, TS0601_smart_human_presence_sensor_1, Y1_IN, ZY-M100-S_1, ZY-M100-S_2, WZ-M100, ZG-205ZL, ZG-204ZM, YXZBRB58, ZY-M100-24G, ZY-M100-24GV2, ZY-M100-24GV3, MTG075-ZB-RL, RT_ZCZ03Z, ZY-M100-S_3, ZG-205Z, 8750001213, HSE2927E, ZB003-X, 07502L, JS-MC-SENSOR-ZB, KK-ES-J01W, KMPCIL_RES005, RTCGQ11LM, RTCGQ12LM, b-parasite, 7A-SS-ZABC-H0, 5AA-SS-ZA-H0, RTCGQ14LM, RTCGQ15LM, ZNCLBL01LM, GZCGQ01LM, GZCGQ11LM, 07047L, 9290012607, 9290019758, 9290030675, 9290030674, 545D6306, CCT595011, ZSS-ZK-THL, 4512770, TERNCY-PP01, MBD-S, CTM_MBD_Dim, 3RSNL02043Z, WB-MSW-ZIGBEE v.3, MS100, USM-300ZB, PIR313-E.illuminance_lux
values, enable theilluminance_raw
option device specific settings (will be available from Z2M 2.1.0)switch
expose andaction
values have been changed, see the device docs for the new values.device_options.legacy
. These breaking changes below can be ignored if you havedevice_options.legacy: false
in yourconfiguration.yaml
:button_*
properties.duration
,rate
,brightness
andtransition
.duration
.step_size
,transition_time
and the following actions:play_pause
,skip_forward
,skip_backward
,rotate_*
.rotate_*
actions.button_*
properties and removedsingle
action.single
action.left
,right
andboth
action (including the*_long
and*_double
actions).to_side
,from_side
,angle
.angle
.repeat
,user
anddata
.duration
.step_size
,transition_time
andskip_*
actions.action
values have been changed, see the device docs for the new values.keypad_lockout
value changedsetpoint_change_source
,setpoint_change_source_timestamp
,remote_sensing
andcontrol_sequence_of_operation
values are now mapped values (string) instead of a number.operation
,setpoint_change_source
,setpoint_change_source_timestamp
,remote_sensing
andcontrol_sequence_of_operation
values are now mapped values (string) instead of a number.direction
andnumber
weekly_schedule
payload.action
, removedduration
andcounter
.click
.External converters and extensions
external_converters
setting is no longer used. Instead all external converters insidedata/external_converters
directory are now automatically loaded. Make sure to move all your external converters to this directory.data/external_extensions
instead ofdata/extension
. Make sure to rename yourdata/extension
directory (if present) todata/external_extensions
.MQTT api
update_available
property from the device state has been removed (useupdate.state
instead).updateAvailable
toupdate_available
inzigbee2mqtt/bridge/response/device/ota_update/check
.zigbee2mqtt/bridge/request/device/bind
,zigbee2mqtt/bridge/request/group/members/add
,zigbee2mqtt/bridge/request/group/members/remove
andbridge/request/device/configure_reporting
, the endpoint has been moved to theendpoint
property and cannot be set via thedevice
/from
property anymore.zigbee2mqtt/bridge/request/config
MQTT API, this includes the following MQTT topics:zigbee2mqtt/bridge/request/config/last_seen
zigbee2mqtt/bridge/request/config/elapsed
zigbee2mqtt/bridge/request/config/log_level
zigbee2mqtt/bridge/request/config/homeassistant
data
payload in the response is now always empty when there is anerror
, this affectszigbee2mqtt/bridge/response/device/configure
andzigbee2mqtt/bridge/response/device/ota_update/*
.permit_join_timeout
has been removed fromzigbee2mqtt/bridge/info
, it has been replaced bypermit_join_end
which represents the Unix timestamp when permit joining will end.advanced.legacy_api
setting), this includes the following MQTT topics:zigbee2mqtt/bridge/log
zigbee2mqtt/bridge/(bind|unbind)
zigbee2mqtt/bridge/group/*
zigbee2mqtt/bridge/networkmap/*
zigbee2mqtt/bridge/ota_update
zigbee2mqtt/bridge/device/DEVICE_FRIENDLY_NAME/get_group_membership
zigbee2mqtt/bridge/config/*
zigbee2mqtt/bridge/configure
Removed features and settings
Important
The new configuration update system will automatically (re)move deprecated settings the first time you start Z2M after updating to 2.0.0. Make sure to check the
data/migration-1-to-2.log
after startup. See the docs for more info.advanced.report
setting).advanced.soft_reset_timeout
setting).devices.IEEE_ADDR.options.retrieve_state
setting).availability_timeout
,availability_blocklist
,availability_passlist
,availability_blacklist
,availability_whitelist
andadvanced.legacy_availability_payload
(see availability docs for the new settings).advanced.legacy_availability_payload
,zigbee2mqtt/bridge/state
will now always be a JSON object ({"state":"online"}
or{"state":"offline"}
).permit_join
setting has been removed, use the frontend or MQTT to permit joining.configuration.yaml
(groups.devices
setting). This will not impact current group members; however, you will no longer be able to add or remove devices from a group through theconfiguration.yaml
.ota.ikea_ota_use_test_url
option has been removed.advanced.homeassistant_discovery_topic
is now inhomeassistant.discovery_topic
advanced.homeassistant_status_topic
is now inhomeassistant.status_topic
advanced.baudrate
is now inserial.baudrate
advanced.rtscts
is now inserial.rtscts
experimental.transmit_power
is now inadvanced.transmit_power
experimental.output
is now inadvanced.output
whitelist
is now inpasslist
ban
is now inblocklist
experimental
section no longer existsPull requests
retrieve_state
zigbee2mqtt.io#3075readAfterWriteTime
zigbee-herdsman-converters#8089configuration.yaml
zigbee2mqtt.io#3104configuration.yaml
#24338illuminance_lux
zigbee-herdsman-converters#8304maximum_packet_size
MQTT setting zigbee2mqtt.io#3228data
in response is always empty onerror
#24971sensor
/select
forselect
/number
/button
entities #25026permit_join_timeout
#25082homeassistant.status_topic
tohomeassistant/status
#25286Beta Was this translation helpful? Give feedback.
All reactions