Replies: 152 comments 575 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 urge everyone involved to refrain from any inappropriate accusations, insults, or personal attacks with immediate effect. Even if you may not have the last word on this. Let’s maintain a constructive and respectful tone, even when there are differing opinions. First and foremost, I want to express my deepest appreciation for the incredible work done by the initiators, developers and contributors of Zigbee2MQTT. Their dedication, expertise, and countless hours of effort have made this project an invaluable tool for the community and me personally. The unstoppable progress of Zigbee continues, and combining Zigbee2MQTT with Home Assistant holds enormous promise -perhaps one day even at the enterprise level -for the entire smart home ecosystem. Even if we appear anonymous online, we’re still neighbors who bring diverse backgrounds, skill sets, experiences, and needs to the table. In this spirit, I encourage everyone to reflect on our shared experiences - both positive and challenging - and channel them into ongoing development. Every single one of us can contribute, whether by sharing user stories, testing new features, providing constructive feedback, or writing code. By focusing on solutions and collaborating across our varied perspectives, we can propel this project forward and honor the immense work that has already been invested in Zigbee2MQTT. Thank you all for your commitment and for fostering a positive, respectful, and forward-thinking discussion culture! |
Beta Was this translation helpful? Give feedback.
-
What about, appdaemon? how i can subscribe for, for example, scene switch click? |
Beta Was this translation helpful? Give feedback.
-
thanks for the great effort!!! I like zigbee2mqtt a lot.. I have the following in my current version 1.42. When I update to 2.0.0 my PTM 215ZE devices dont work anymore.
what do I have to change in 2.0.0 to get it running? |
Beta Was this translation helpful? Give feedback.
-
Has this "Unknown" something with the z2m 2.0.0 release to do, or is it HA ? After "Action" on the Tap, it always returns to "Null". |
Beta Was this translation helpful? Give feedback.
-
Can someone point me in the right direction here?
I don't want to use yaml, or HA automations. How am I supposed to maintain my automations within Node RED after this legacy settings will be removed in the future? I am not really happy with being forced to do it in a certain way, I just want to still use Node Red. |
Beta Was this translation helpful? Give feedback.
-
Just upgraded to 2.0.0 (Home Assistant add-on on HA 2025.1.2, Sonoff Dongle Plus E 7.4.4, 54 Zigbee devices in my network). I followed the instructions, no problems whatsoever so far. Thanks for the great work! |
Beta Was this translation helpful? Give feedback.
-
Hello, Doesn’t that make any sense at all? state is always overwritten by the device status? |
Beta Was this translation helpful? Give feedback.
-
After Update to 2.x i am not able to pair any new devices. The old ones are communicating, but no new device are able to connect. |
Beta Was this translation helpful? Give feedback.
-
At first glance, it seems to me that all my Hue buttons and dimmer switches no longer would work due to the changes of the legacy functions. Without that hold features are not longer exposed in z2m. Or am I missing something here? Maybe someone can enlighten me |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Im not sure how to prepare:
However in my configuraiton.yaml I find
According documentation this should be the right format: |
Beta Was this translation helpful? Give feedback.
-
Breaking compatibility with ezsp devices without an upgrade path for hacked Silvercrest/Lidl devices with Silicon Labs chips in them, is just contributing to a huge pile of electronic waste without any justification. If you actually knew what you were doing, you wouldn't remove support for devices that work perfectly (uptime/availability measured in years). One major point of trust in a software project, is that once support for a device exists and there are users that want to use such a device, you make it compatible for whatever features were available previously. If someone credible were to fork zigbee2mqtt or make an independent different implementation (also independent of HA), then I would have no reason not to switch, since you already have broken that basic trust. Probably I will just buy a couple of replacement devices, but I would never have bought that e-waste if zigbee2mqtt hadn't supported it earlier. Why should I buy anything you recommend now? There's such a thing as credibility and you already lost it. |
Beta Was this translation helpful? Give feedback.
-
Why does there seem to be no explanation around why changing to device triggers via mqtt is now preferred? Surely there has to be a reason |
Beta Was this translation helpful? Give feedback.
-
What was the reason to drop the mqtt config API for |
Beta Was this translation helpful? Give feedback.
-
i have no idea how to fix my thing i tried both Ember and Zstack and i get errors, i have a sonoff dongle 3.0 Plus this is the error code i get now
|
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.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