Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement zigbee2mqtt protocol #1024

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

Implement zigbee2mqtt protocol #1024

wants to merge 14 commits into from

Conversation

awawa-dev
Copy link
Owner

@awawa-dev awawa-dev commented Dec 26, 2024

1 Add option to disable lamps in Home Assistant wizard
2 Zigbee2mqtt driver is implemented. MQTT must be enabled and active in the HyperHDR->Advanced->Network section.

Manual (work still in progress can be changed):
https://github.com/awawa-dev/HyperHDR/wiki/Zigbee2MQTT-lights

@schwatter
Copy link

Hi,

i use now this build https://github.com/awawa-dev/HyperHDR/actions/runs/12522954359
Linux-bookworm-arm-32bit-armv6l-installer.

  1. Setup mqtt under expert networkservice
2024-12-28T11:20:09.201Z [MQTT] (mqtt.cpp:109) Closing MQTT
2024-12-28T11:20:09.201Z [MQTT] (mqtt.cpp:51) Starting the MQTT connection. Address: 192.168.178.79:1884. Protocol: NO SSL. Authentication: YES, Ignore errors: YES
2024-12-28T11:20:09.201Z [MQTT] (mqtt.cpp:56) MQTT topic: HyperHDR/JsonAPI, MQTT response: HyperHDR/JsonAPI/response
2024-12-28T11:20:09.208Z [MQTT] (mqtt.cpp:127) Connected

it stays connected

  1. Normally after connecting, i get a new device in Fhem. But nothing.

  2. Is HyperHdr sending periodically serverinfos over mqtt for state?

  3. Because of something is wrong for me, i can not add a zigbee2mqtt device @ controllertyp.

@awawa-dev
Copy link
Owner Author

You must run zigbee2mqtt wizard in the LED hardware. I will add a tutorial later in the wiki.

@schwatter
Copy link

The problem is, that HyperHdr says, it is connected. But my broker is quiet.
Does HyperHdr send periodically status infos? I ask, because i need infos where to dig and find the problem.

zigbee

@awawa-dev
Copy link
Owner Author

awawa-dev commented Dec 28, 2024

No, it searches for devices only when you run the wizard. Could you check HyperHDR logs when the app says it havent found zigbee devices? Are you able to view the communication in the mosquito? The z2m has the default topic zigbee2mqtt?

@schwatter
Copy link

Here you can see, that the topic is zigbee2mqtt. At the picture, i'm conncted with MqttExplorer to my fhem broker.
It is some Fhem Modul, not mosquitto
mqttexplorer

When i run the wizard and the error appears, the log say:

2024-12-28T12:33:04.080Z [WEBSOCKET] (HyperAPI.cpp:1097) message: [{"command":"leddevice","ledDeviceType":"zigbee2mqtt","subcommand":"discover","tan":704}]
2024-12-28T12:33:05.581Z [LEDDEVICE_ZIGBEE2MQTT] Could not find any Zigbee2mqtt devices. Check HyperHDR MQTT network / MQTT broker / Zigbee2mqtt configuration
2024-12-28T12:33:05.581Z [LEDDEVICE_ZIGBEE2MQTT] (DriverNetZigbee2mqtt.cpp:279) devicesDiscovered: [{"devices":[],"ledDeviceType":"zigbee2mqtt"}]
2024-12-28T12:33:05.581Z [WEBSOCKET] (HyperAPI.cpp:1121) response: [{"devices":[],"ledDeviceType":"zigbee2mqtt"}]
2024-12-28T12:33:17.489Z [WEBSOCKET] (HyperAPI.cpp:946) log streaming activated for client ::ffff:192.168.178.68

@awawa-dev
Copy link
Owner Author

awawa-dev commented Dec 28, 2024

@schwatter For discovery topic zigbee2mqtt/bridge/devices is used. Could you subscribe the subject and save the output (json)?

@AstaRom AstaRom mentioned this pull request Dec 28, 2024
7 tasks
@schwatter
Copy link

schwatter commented Dec 28, 2024

Mh, the topic gets only updated when i restart zigbee2mqtt. Otherwise it is quiet. Maybe i must update z2m or something
at my fhembroker is blocking it.

Topic:

zigbee2mqtt/bridge/devices

Value:

[{"date_code":"20181025-69","definition":{"description":"Tint LED bulb GU10/E14/E27 350/470/806 lumen, dimmable, color, opal white","exposes":[{"features":[{"access":7,"description":"On/off state of this light","label":"State","name":"state","property":"state","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"},{"access":7,"description":"Brightness of this light","label":"Brightness","name":"brightness","property":"brightness","type":"numeric","value_max":254,"value_min":0},{"access":7,"description":"Color temperature of this light","label":"Color temp","name":"color_temp","presets":[{"description":"Coolest temperature supported","name":"coolest","value":153},{"description":"Cool temperature (250 mireds / 4000 Kelvin)","name":"cool","value":250},{"description":"Neutral temperature (370 mireds / 2700 Kelvin)","name":"neutral","value":370},{"description":"Warm temperature (454 mireds / 2200 Kelvin)","name":"warm","value":454},{"description":"Warmest temperature supported","name":"warmest","value":556}],"property":"color_temp","type":"numeric","unit":"mired","value_max":556,"value_min":153},{"access":7,"description":"Color temperature after cold power on of this light","label":"Color temp startup","name":"color_temp_startup","presets":[{"description":"Coolest temperature supported","name":"coolest","value":153},{"description":"Cool temperature (250 mireds / 4000 Kelvin)","name":"cool","value":250},{"description":"Neutral temperature (370 mireds / 2700 Kelvin)","name":"neutral","value":370},{"description":"Warm temperature (454 mireds / 2200 Kelvin)","name":"warm","value":454},{"description":"Warmest temperature supported","name":"warmest","value":556},{"description":"Restore previous color_temp on cold power on","name":"previous","value":65535}],"property":"color_temp_startup","type":"numeric","unit":"mired","value_max":556,"value_min":153},{"access":7,"description":"Color of this light in the CIE 1931 color space (x/y)","features":[{"access":7,"label":"X","name":"x","property":"x","type":"numeric"},{"access":7,"label":"Y","name":"y","property":"y","type":"numeric"}],"label":"Color (X/Y)","name":"color_xy","property":"color","type":"composite"},{"access":7,"description":"Color of this light expressed as hue/saturation","features":[{"access":7,"label":"Hue","name":"hue","property":"hue","type":"numeric"},{"access":7,"label":"Saturation","name":"saturation","property":"saturation","type":"numeric"}],"label":"Color (HS)","name":"color_hs","property":"color","type":"composite"}],"type":"light"},{"access":2,"description":"Triggers an effect on the light (e.g. make light blink for a few seconds)","label":"Effect","name":"effect","property":"effect","type":"enum","values":["blink","breathe","okay","channel_change","finish_effect","stop_effect","colorloop","stop_colorloop"]},{"access":7,"category":"config","description":"Controls the behavior when the device is powered on after power loss","label":"Power-on behavior","name":"power_on_behavior","property":"power_on_behavior","type":"enum","values":["off","on","toggle","previous"]},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkquality","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"404000/404005/404012/404019","options":[{"access":2,"description":"Controls the transition time (in seconds) of on/off, brightness, color temperature (if applicable) and color (if applicable) changes. Defaults to `0` (no transition).","label":"Transition","name":"transition","property":"transition","type":"numeric","value_min":0},{"access":2,"description":"When enabled colors will be synced, e.g. if the light supports both color x/y and color temperature a conversion from color x/y to color temperature will be done when setting the x/y color (default true).","label":"Color sync","name":"color_sync","property":"color_sync","type":"binary","value_off":false,"value_on":true},{"access":2,"description":"State actions will also be published as 'action' when true (default false).","label":"State action","name":"state_action","property":"state_action","type":"binary","value_off":false,"value_on":true}],"supports_ota":false,"vendor":"Müller Licht"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genLevelCtrl","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}}],"clusters":{"input":["genBasic","genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","lightingColorCtrl","haDiagnostic","touchlink","65244"],"output":["genTime","genOta"]},"configured_reportings":[{"attribute":"currentLevel","cluster":"genLevelCtrl","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":1},{"attribute":"onOff","cluster":"genOnOff","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":0}],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Lampe02","ieee_address":"0x000d6ffffe21ee30","interview_completed":true,"interviewing":false,"manufacturer":"MLI","model_id":"ZBT-ExtendedColor","network_address":13042,"power_source":"Mains (single phase)","software_build_id":"2.2","supported":true,"type":"Router"},{"date_code":"20190308","definition":{"description":"TRADFRI motion sensor","exposes":[{"access":1,"description":"Indicates whether the device detected occupancy","label":"Occupancy","name":"occupancy","property":"occupancy","type":"binary","value_off":false,"value_on":true},{"access":1,"category":"diagnostic","description":"Indicates whether the device detected bright light (works only in night mode)","label":"Illuminance above threshold","name":"illuminance_above_threshold","property":"illuminance_above_threshold","type":"binary","value_off":false,"value_on":true},{"access":1,"category":"diagnostic","label":"Requested brightness level","name":"requested_brightness_level","property":"requested_brightness_level","type":"numeric","value_max":254,"value_min":76},{"access":1,"category":"diagnostic","label":"Requested brightness percent","name":"requested_brightness_percent","property":"requested_brightness_percent","type":"numeric","value_max":100,"value_min":30},{"access":2,"category":"config","description":"Initiate device identification. This device is asleep by default.You may need to wake it up first before sending the identify command.","label":"Identify","name":"identify","property":"identify","type":"enum","values":["identify"]},{"access":5,"category":"diagnostic","description":"Remaining battery in %","label":"Battery","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkquality","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"E1525/E1745","options":[{"access":2,"description":"Sets the duration of the identification procedure in seconds (i.e., how long the device would flash).The value ranges from 1 to 30 seconds (default: 3).","label":"Identify timeout","name":"identify_timeout","property":"identify_timeout","type":"numeric","value_max":30,"value_min":1},{"access":2,"description":"Time in seconds after which occupancy is cleared after detecting it (default 90 seconds).","label":"Occupancy timeout","name":"occupancy_timeout","property":"occupancy_timeout","type":"numeric","value_min":0},{"access":2,"description":"Set to false to also send messages when illuminance is above threshold in night mode (default true).","label":"Illuminance below threshold check","name":"illuminance_below_threshold_check","property":"illuminance_below_threshold_check","type":"binary","value_off":false,"value_on":true}],"supports_ota":true,"vendor":"IKEA"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genPollCtrl","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}}],"clusters":{"input":["genBasic","genPowerCfg","genIdentify","genAlarms","genPollCtrl","touchlink","manuSpecificIkeaUnknown"],"output":["genIdentify","genGroups","genOnOff","genLevelCtrl","genOta","touchlink"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":65000,"minimum_report_interval":3600,"reportable_change":10}],"scenes":[]}},"friendly_name":"TRADFRI_Motion","ieee_address":"0x680ae2fffea40441","interview_completed":true,"interviewing":false,"manufacturer":"IKEA of Sweden","model_id":"TRADFRI motion sensor","network_address":55544,"power_source":"Battery","software_build_id":"2.0.022","supported":true,"type":"EndDevice"},{"date_code":"20181025-69","definition":{"description":"Tint LED bulb GU10/E14/E27 350/470/806 lumen, dimmable, color, opal white","exposes":[{"features":[{"access":7,"description":"On/off state of this light","label":"State","name":"state","property":"state","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"},{"access":7,"description":"Brightness of this light","label":"Brightness","name":"brightness","property":"brightness","type":"numeric","value_max":254,"value_min":0},{"access":7,"description":"Color temperature of this light","label":"Color temp","name":"color_temp","presets":[{"description":"Coolest temperature supported","name":"coolest","value":153},{"description":"Cool temperature (250 mireds / 4000 Kelvin)","name":"cool","value":250},{"description":"Neutral temperature (370 mireds / 2700 Kelvin)","name":"neutral","value":370},{"description":"Warm temperature (454 mireds / 2200 Kelvin)","name":"warm","value":454},{"description":"Warmest temperature supported","name":"warmest","value":556}],"property":"color_temp","type":"numeric","unit":"mired","value_max":556,"value_min":153},{"access":7,"description":"Color temperature after cold power on of this light","label":"Color temp startup","name":"color_temp_startup","presets":[{"description":"Coolest temperature supported","name":"coolest","value":153},{"description":"Cool temperature (250 mireds / 4000 Kelvin)","name":"cool","value":250},{"description":"Neutral temperature (370 mireds / 2700 Kelvin)","name":"neutral","value":370},{"description":"Warm temperature (454 mireds / 2200 Kelvin)","name":"warm","value":454},{"description":"Warmest temperature supported","name":"warmest","value":556},{"description":"Restore previous color_temp on cold power on","name":"previous","value":65535}],"property":"color_temp_startup","type":"numeric","unit":"mired","value_max":556,"value_min":153},{"access":7,"description":"Color of this light in the CIE 1931 color space (x/y)","features":[{"access":7,"label":"X","name":"x","property":"x","type":"numeric"},{"access":7,"label":"Y","name":"y","property":"y","type":"numeric"}],"label":"Color (X/Y)","name":"color_xy","property":"color","type":"composite"},{"access":7,"description":"Color of this light expressed as hue/saturation","features":[{"access":7,"label":"Hue","name":"hue","property":"hue","type":"numeric"},{"access":7,"label":"Saturation","name":"saturation","property":"saturation","type":"numeric"}],"label":"Color (HS)","name":"color_hs","property":"color","type":"composite"}],"type":"light"},{"access":2,"description":"Triggers an effect on the light (e.g. make light blink for a few seconds)","label":"Effect","name":"effect","property":"effect","type":"enum","values":["blink","breathe","okay","channel_change","finish_effect","stop_effect","colorloop","stop_colorloop"]},{"access":7,"category":"config","description":"Controls the behavior when the device is powered on after power loss","label":"Power-on behavior","name":"power_on_behavior","property":"power_on_behavior","type":"enum","values":["off","on","toggle","previous"]},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkquality","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"404000/404005/404012/404019","options":[{"access":2,"description":"Controls the transition time (in seconds) of on/off, brightness, color temperature (if applicable) and color (if applicable) changes. Defaults to `0` (no transition).","label":"Transition","name":"transition","property":"transition","type":"numeric","value_min":0},{"access":2,"description":"When enabled colors will be synced, e.g. if the light supports both color x/y and color temperature a conversion from color x/y to color temperature will be done when setting the x/y color (default true).","label":"Color sync","name":"color_sync","property":"color_sync","type":"binary","value_off":false,"value_on":true},{"access":2,"description":"State actions will also be published as 'action' when true (default false).","label":"State action","name":"state_action","property":"state_action","type":"binary","value_off":false,"value_on":true}],"supports_ota":false,"vendor":"Müller Licht"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genLevelCtrl","target":{"endpoint":1,"ieee_address":"0x680ae2fffea61e8f","type":"endpoint"}},{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x680ae2fffea61e8f","type":"endpoint"}},{"cluster":"genLevelCtrl","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}}],"clusters":{"input":["genBasic","genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","lightingColorCtrl","haDiagnostic","touchlink","65244"],"output":["genTime","genOta"]},"configured_reportings":[{"attribute":"currentLevel","cluster":"genLevelCtrl","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":1},{"attribute":"onOff","cluster":"genOnOff","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":0}],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Lampe01","ieee_address":"0xd0cf5efffe27933a","interview_completed":true,"interviewing":false,"manufacturer":"MLI","model_id":"ZBT-ExtendedColor","network_address":9102,"power_source":"Mains (single phase)","software_build_id":"2.2","supported":true,"type":"Router"},{"date_code":"20190401","definition":{"description":"TRADFRI remote control","exposes":[{"access":2,"category":"config","description":"Initiate device identification. This device is asleep by default.You may need to wake it up first before sending the identify command.","label":"Identify","name":"identify","property":"identify","type":"enum","values":["identify"]},{"access":5,"category":"diagnostic","description":"Remaining battery in %","label":"Battery","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"category":"diagnostic","description":"Triggered action (e.g. a button click)","label":"Action","name":"action","property":"action","type":"enum","values":["toggle","brightness_up_click","brightness_down_click","brightness_up_hold","brightness_up_release","brightness_down_hold","brightness_down_release","toggle_hold","arrow_left_click","arrow_left_hold","arrow_left_release","arrow_right_click","arrow_right_hold","arrow_right_release"]},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkquality","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"E1524/E1810","options":[{"access":2,"description":"Sets the duration of the identification procedure in seconds (i.e., how long the device would flash).The value ranges from 1 to 30 seconds (default: 3).","label":"Identify timeout","name":"identify_timeout","property":"identify_timeout","type":"numeric","value_max":30,"value_min":1},{"access":2,"description":"Set to false to disable the legacy integration (highly recommended), will change structure of the published payload (default true).","label":"Legacy","name":"legacy","property":"legacy","type":"binary","value_off":false,"value_on":true}],"supports_ota":true,"vendor":"IKEA"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genPollCtrl","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genScenes","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x8c65a3fffe548700","type":"endpoint"}},{"cluster":"genLevelCtrl","target":{"endpoint":1,"ieee_address":"0xd0cf5efffe27933a","type":"endpoint"}},{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0xd0cf5efffe27933a","type":"endpoint"}},{"cluster":"genLevelCtrl","target":{"endpoint":1,"ieee_address":"0x000d6ffffe21ee30","type":"endpoint"}},{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x000d6ffffe21ee30","type":"endpoint"}}],"clusters":{"input":["genBasic","genPowerCfg","genIdentify","genPollCtrl","touchlink","manuSpecificAmazonWWAH","manuSpecificIkeaUnknown"],"output":["genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","genOta","touchlink"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":65000,"minimum_report_interval":3600,"reportable_change":10}],"scenes":[]}},"friendly_name":"Tradfri01","ieee_address":"0x680ae2fffea61e8f","interview_completed":true,"interviewing":false,"manufacturer":"IKEA of Sweden","model_id":"TRADFRI remote control","network_address":29511,"power_source":"Battery","software_build_id":"24.4.5","supported":true,"type":"EndDevice"},{"disabled":false,"endpoints":{"1":{"bindings":[],"clusters":{"input":["genBasic","genIdentify","genOnOff","genTime","genOta","26","lightingColorCtrl"],"output":["genBasic","genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","genPollCtrl","lightingColorCtrl","msIlluminanceMeasurement","msTemperatureMeasurement","msRelativeHumidity","msOccupancySensing","ssIasZone","haMeterIdentification","haApplianceStatistics","haElectricalMeasurement","seMetering","touchlink","manuSpecificLegrandDevices","manuSpecificSamsungAccelerometer"]},"configured_reportings":[],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Coordinator","ieee_address":"0x8c65a3fffe548700","interview_completed":true,"interviewing":false,"network_address":0,"supported":true,"type":"Coordinator"},{"date_code":"20190401","definition":{"description":"TRADFRI remote control","exposes":[{"access":2,"category":"config","description":"Initiate device identification. This device is asleep by default.You may need to wake it up first before sending the identify command.","label":"Identify","name":"identify","property":"identify","type":"enum","values":["identify"]},{"access":5,"category":"diagnostic","description":"Remaining battery in %","label":"Battery","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"category":"diagnostic","description":"Triggered action (e.g. a button click)","label":"Action","name":"action","property":"action","type":"enum","values":["toggle","brightness_up_click","brightness_down_click","brightness_up_hold","brightness_up_release","brightness_down_hold","brightness_down_release","toggle_hold","arrow_left_click","arrow_left_hold","arrow_left_release","arrow_right_click","arrow_right_hold","arrow_right_release"]},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkqualit

z2m_devices

@awawa-dev
Copy link
Owner Author

This ZigBee2mqtt topic is retain type: every time you subscribe it you should receive a response. Unless for some reason mqtt broker doesn't support it.

@schwatter
Copy link

Ah, i was not fast enough for answer. I get it. After reading the z2m docu again, i checked that it must be the retrain flag.
I noticed that the flag at my build in broker was off. Now i can test zigbee.

z2m_devices_retrain

@awawa-dev
Copy link
Owner Author

I think qmqtt library can check mqtt broker capabilities. I'll try to test it and warn the user in logs if the retain messages are not supported.

@awawa-dev awawa-dev force-pushed the zigbee2mqtt branch 2 times, most recently from c49b1ef to 2ed4cd4 Compare December 30, 2024 00:57
@awawa-dev
Copy link
Owner Author

Currently changing dynamic brightness causes to generete 2 frames to be send (waste of communication):
[2025-01-01 22:53:06] debug: zh:zstack: sendZclFrameToEndpointInternal 0x001788/11 (0,0,2, ,{"level":228,"transtime":0} )
[2025-01-01 22:53:06] debug: zh:zstack: sendZclFrameToEndpointInternal 0x001788/11 (0,0,2, ,{"transtime":0,"colorx":26509,"colory":35336} )

I think I remove dynamic brightness from HyperHDR to zigbee communication.

@schwatter
Copy link

schwatter commented Jan 5, 2025

Ok, when i set Background effect to RGB(0,0,0), the gu10 went off and yeah black. Because off is off.
But there is a threshold of value. RGB(7,7,7) and more is full white and the brightness HyperHdr set (254).
At RGB(6,6,6) till RGB(1,1,1) it goes full black and gu10 went off. At RGB(0,0,0) it is black and gu10 is off.
So in summary, for blacklevel i need also a brightness control. Because rgb and brightness(black,white) are separate.

fullwhite
fullblack

@schwatter
Copy link

I edit my answer again up

@awawa-dev
Copy link
Owner Author

awawa-dev commented Jan 5, 2025

RGB(6,6,6) till RGB(1,1,1)

Probably gamma 1.5 trims this range to RGB(0,0,0). This is how constant brightness works: all-in or off for RGB(0,0,0). Previously, dynamic brightness was implemented in HyperHDR and you saw what happened: delays because instead of one frame (color XY), two had to be sent each time (color XY + current brightness level).

@schwatter
Copy link

Ok, i understand the dilemma. Does your Philips Play Lightbar calculate brightnes over rgb?

@awawa-dev
Copy link
Owner Author

No, the brightness needs to be sent separately from XY (or Hue/Saturation) color. Probably Zigbee protocol limitation (there is no RGB command) or Hue bridge is using some undocumented method.

@awawa-dev
Copy link
Owner Author

Alternatively we can go back to dynamic brightness with refresh time of 1Hz and transition time of 1 second. But I'm not sure about the results.

@schwatter
Copy link

I would say yes. Maybe you can add some on/off option. Easyer for compareing both.

@satgit62
Copy link

satgit62 commented Jan 6, 2025

@awawa-dev, @schwatter Hello,

I've had time again for my Sonoff dongle.
I have flashed new firmware and changed to ember.

port: /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_1664e31fed12ef119de46db8bf9df066-if00-port0
adapter: ember

It works very well and is stable. The Philips Hue lights switch to white when the scenes are black. I still have to adjust something. Otherwise, barely noticeable delay.
I just had to activate the MQTT server at startup. How should I teach it to start on restart? It also runs like HyperHDR on the Raspberry Pi. I read, here, with ‘Running as a daemon with systemctl’. What is the right way here?

Performance

2025-01-06T14:46:53.787Z [IMAGETOLED_MNG0] Total index number is: 24192 (memory: 24192). User sparse processing is: disabled, image size: 1280 x 720, area number: 1
2025-01-06T14:46:53.788Z [COMPONENTCTRL0] LED device: enabled
2025-01-06T14:46:53.788Z [SMOOTHING0] Using alternative smoothing input (0)
2025-01-06T14:46:53.827Z [SMOOTHING0] Using alternative smoothing procedure (0)
2025-01-06T14:46:53.827Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (1/25)
2025-01-06T14:46:53.848Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 1ms (2/25)
2025-01-06T14:46:53.869Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 1ms (3/25)
2025-01-06T14:46:53.888Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (4/25)
2025-01-06T14:46:53.908Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (5/25)
2025-01-06T14:46:53.927Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (6/25)
2025-01-06T14:46:53.948Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (7/25)
2025-01-06T14:46:53.968Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (8/25)
2025-01-06T14:46:53.988Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (9/25)
2025-01-06T14:46:54.007Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (10/25)
2025-01-06T14:46:54.028Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 1ms (11/25)
2025-01-06T14:46:54.048Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (12/25)
2025-01-06T14:46:54.067Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (13/25)
2025-01-06T14:46:54.088Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (14/25)
2025-01-06T14:46:54.108Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (15/25)
2025-01-06T14:46:54.128Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (16/25)
2025-01-06T14:46:54.148Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (17/25)
2025-01-06T14:46:54.168Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (18/25)
2025-01-06T14:46:54.188Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (19/25)
2025-01-06T14:46:54.208Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (20/25)
2025-01-06T14:46:54.230Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 1ms (21/25)
2025-01-06T14:46:54.248Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (22/25)
2025-01-06T14:46:54.268Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (23/25)
2025-01-06T14:46:54.287Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 0ms (24/25)
2025-01-06T14:46:54.308Z [LEDDEVICE0_ZIGBEE2MQTT] The communication took: 1ms (25/25)
2025-01-06T14:47:37.567Z [SSDP] (SSDPHandler.cpp:42) SSDPHandler is initializing
2025-01-06T14:47:37.567Z [SSDP] (SSDPHandler.cpp:183) The local address is: 192.168.2.74
2025-01-06T14:47:37.568Z [SSDP] (SSDPServer.cpp:94) Initialize the SSDP server
2025-01-06T14:47:37.568Z [SSDP] Starting the SSDP server
2025-01-06T14:48:01.494Z [WEBSOCKET] (WebSocketClient.cpp:40) New connection from ::ffff:192.168.2.61
2025-01-06T14:48:02.030Z [WEBSOCKET] (HyperAPI.cpp:946) log streaming activated for client ::ffff:192.168.2.61
2025-01-06T14:49:05.650Z [V4L2:UGREEN 25173:] Video cache: size: 1, hits: 6867, needed: 1, cleanup: 0, limit: 8
2025-01-06T14:49:05.657Z [PERFORMANCE] [USB: FPS = 59.94, decoding = 3ms, frames = 3596, invalid = 0, mode = direct], [INSTANCE0: FPS = 59.94, processed = 3597], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
2025-01-06T14:49:07.361Z [WEBSOCKET] (WebSocketClient.cpp:40) New connection from ::ffff:192.168.2.123
2025-01-06T14:49:09.480Z [WEBSOCKET] (HyperAPI.cpp:1097) message: [{"command":"leddevice","ledDeviceType":"","params":{},"subcommand":"hasLedClock","tan":1}]
2025-01-06T14:50:05.653Z [PERFORMANCE] [USB: FPS = 59.94, decoding = 2ms, frames = 3596, invalid = 0, mode = direct], [INSTANCE0: FPS = 59.94, processed = 3596], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
2025-01-06T14:51:05.657Z [PERFORMANCE] [USB: FPS = 59.94, decoding = 2ms, frames = 3597, invalid = 0, mode = direct], [INSTANCE0: FPS = 59.94, processed = 3597], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
2025-01-06T14:51:13.853Z [WEBSOCKET] (HyperAPI.cpp:955) log streaming deactivated for client ::ffff:192.168.2.61
2025-01-06T14:52:00.563Z [WEBSOCKET] (HyperAPI.cpp:946) log streaming activated for client ::ffff:192.168.2.61
2025-01-06T14:52:05.654Z [PERFORMANCE] [USB: FPS = 59.94, decoding = 2ms, frames = 3596, invalid = 0, mode = direct], [INSTANCE0: FPS = 59.94, processed = 3596], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]

@schwatter
Copy link

sudo systemctl enable mosquitto and then sudo systemctl start mosquitto

@awawa-dev
Copy link
Owner Author

Strange, in my system it starts automatically. Maybe something is wrong with the configuration file or rights. Did you create config using the tutorial? https://github.com/awawa-dev/HyperHDR/wiki/Zigbee2MQTT-lights
Check for errors using sudo systemctl status mosquitto

@satgit62
Copy link

satgit62 commented Jan 6, 2025

udo systemctl status mosquitto

@awawa-dev,
is this what you mean?

https://www.zigbee2mqtt.io/guide/installation/01_linux.html#optional-running-as-a-daemon-with-systemctl
That's what I did.
1

@satgit62
Copy link

satgit62 commented Jan 6, 2025

@awawa-dev,
It only starts when I

cd /opt/zigbee2mqtt
npm start 

@schwatter
Copy link

You mix up mosquitto with zigbee2mqtt!
They both have a systemd. Which one will not start?

@schwatter
Copy link

schwatter commented Jan 6, 2025

Here is z2m. You have to add it manual.
https://www.zigbee2mqtt.io/guide/installation/01_linux.html#optional-running-as-a-daemon-with-systemctl

Edit:
I see now, it is the same link you posted. Yes, that is the right one.

@schwatter
Copy link

I think you mean zigbee2mqtt. Try my servicefile. It is a bit different. Like User and ExecStart.

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
Environment=NODE_ENV=production
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)StandardError=inherit
Restart=always
RestartSec=10s
User=root

[Install]
WantedBy=multi-user.target

@satgit62
Copy link

satgit62 commented Jan 6, 2025

Here is z2m. You have to add it manual. https://www.zigbee2mqtt.io/guide/installation/01_linux.html#optional-running-as-a-daemon-with-systemctl

Edit: I see now, it is the same link you posted. Yes, that is the right one.

2

This is what the config looks like.

@satgit62
Copy link

satgit62 commented Jan 6, 2025

I think you mean zigbee2mqtt. Try my servicefile. It is a bit different. Like User and ExecStart.

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
Environment=NODE_ENV=production
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)StandardError=inherit
Restart=always
RestartSec=10s
User=root

[Install]
WantedBy=multi-user.target

Thanks, but it doesn't work. No idea why!
Which user do I have to enter there?
The user I log in with in SSH or the MQTT user?

@awawa-dev
Copy link
Owner Author

SSH/system user

@satgit62
Copy link

satgit62 commented Jan 8, 2025

@awawa-dev,
Thank you for your help. Have you successfully tested the inexpensive Zigbee 3.0 USB Dongle Plus EFR32MG21?
https://aliexpress.com/item/1005005271016330.html
Since everything is working for me right now, the question is whether the “touchlink” function actually works on the device you tested. That would make installation much easier. Some OSRAM bulbs (I have a few) are difficult to reset (pairing mode).

@awawa-dev
Copy link
Owner Author

@satgit62

Just received ZBDongle-E (cp2102N) It works better that ZBDongle-P and cp2530 at standard baudrate.
Touchlink still doesnt work, must use cp2530 to reset lamps: it works from around 20cm so I guess something else is blocking ZBDongle from working touchlink (maybe antenna?).

Testing:

43 frames / 2 lamps = 21.5FPS

#1024 (comment)

info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1597,"y":0.0547},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4504,"y":0.5111},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1617,"y":0.0551},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4466,"y":0.5143},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1639,"y":0.0557},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4428,"y":0.5175},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1662,"y":0.0563},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.439,"y":0.5208},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1685,"y":0.0572},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4365,"y":0.5229},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.171,"y":0.0579},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4314,"y":0.5272},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1735,"y":0.0588},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4288,"y":0.5294},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1761,"y":0.0598},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.425,"y":0.5327},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1788,"y":0.0608},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4211,"y":0.5359},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1825,"y":0.0623},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4172,"y":0.5392},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1854,"y":0.0635},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4133,"y":0.5425},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1884,"y":0.0647},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4108,"y":0.5447},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1914,"y":0.066},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4069,"y":0.548},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1956,"y":0.0677},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.4016,"y":0.5524},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.1988,"y":0.0691},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3977,"y":0.5557},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.202,"y":0.0706},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3938,"y":0.559},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.2065,"y":0.0726},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3911,"y":0.5614},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.2111,"y":0.0747},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3872,"y":0.5647},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.2146,"y":0.0763},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3818,"y":0.5692},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.2181,"y":0.0779},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3791,"y":0.5715},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.2229,"y":0.0801},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp1', payload '{"brightness":254,"color":{"x":0.3737,"y":0.5761},"color_mode":"xy","linkquality":255,"state":"ON"}'
info 2025-01-08 23:34:02z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/somelamp2', payload '{"brightness":254,"color":{"x":0.2266,"y":0.0818},"color_mode":"xy","linkquality":255,"state":"ON"}'

@awawa-dev
Copy link
Owner Author

OK, now I see that on the stack ezsp it completely fills the queue. Later even if we turn off the lamps when we play the effect it turns off after a few seconds. It's probably the missing guard for this stack that I didn't implement earlier without having EFR32MG21.

@schwatter
Copy link

So you use ezsp instead emper. Which firmware?

@awawa-dev
Copy link
Owner Author

@schwatter yes, I just flashed the default firmware from the browser on this page https://darkxst.github.io/silabs-firmware-builder/

I am currently busy with a very interesting functionality here: awawa-dev/P010_for_V4L2#6 but it should be finished soon and I should start doing some serious re-arranging in Zigbee2MQTT in its communication layer.

By the way, MyFriend sent me another 4 adapters 😄 I don't know yet which ones will stay with me and which ones I will sell, but I will try to test them all.

devices1
devices2

@awawa-dev
Copy link
Owner Author

awawa-dev commented Jan 11, 2025

@satgit62 @schwatter
Regarding not working touchlink I suspect dodgy firmware from this page: https://darkxst.github.io/silabs-firmware-builder/ (https://github.com/darkxst/silabs-firmware-builder)
I've got this one https://aliexpress.com/item/1005005271016330.html
When it came it had 7.4.3 firmware, devices in touchlink were detected (but there were some other errors in logs).
After I updated the firmware to 7.4.4 the touchlink firmware does not work at all: devices are not detected.

@awawa-dev
Copy link
Owner Author

awawa-dev commented Jan 11, 2025

This adapter has WORKING touchlink: https://aliexpress.com/item/1005006155691159.html (cc2652p/CH9102X)
I had ZBdongle-P (also cc2652p) and the touchlink didn't work so the firmware matters.
Details:

Version:
    zStack3x0
Firmware:
    20230507

@awawa-dev
Copy link
Owner Author

EFR32MG21 may not support touchlink in standard firmware, probably custom build is neccesery:
itead/Sonoff_Zigbee_Dongle_Firmware#6

@awawa-dev
Copy link
Owner Author

Another cc2531 from https://aliexpress.com/item/1005006177315496.html (cc2531 + antenna)
The chip came unprogrammed but if we have female dupont cables then with a bit of dexterity and an RPi we can upload the firmware. The touchlink WORKS.
So far Texas Instruments (cc2531, cc2652p) & Z-Stack rules, Silicon Labs (EFR32MG21) and their firmware is disappointing for Philips Hue lamps users. BTW the author of the Z-Stack firmware is also the author of the Zigbee2MQTT. I'm returning Zigbee-E.

@awawa-dev
Copy link
Owner Author

https://github.com/Koenkk/zigbee2mqtt/issues/25823

@awawa-dev
Copy link
Owner Author

Does anyone have a lamp that should support touchlink (different than mine 915005733701) but it doesnt work on ember/ezps like ZBDongle-E and could help us testing in the above thread?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants