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

After configuration of a Ubisys Device i get a (Status 'INSUFFICIENT_SPACE') #15875

Closed
Danit2 opened this issue Jan 2, 2023 · 60 comments
Closed
Labels
problem Something isn't working stale Stale issues

Comments

@Danit2
Copy link

Danit2 commented Jan 2, 2023

What happened?

When i want to configure the input_action of a Ubisys Device i get an error when the system will read back the configuration from the device. Sometimes z2m also crash.
The new configuration will work. So the command to change the input_action will work but only the read back make the problem.

When i only read back the configuration with: zigbee2mqtt/FRIENDLY_NAME/get/configure_device_setup i get this error:

'Error: Read 0x001fee0000007b93/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')'

When i want to set a new configuration i get the same error but z2m will crash with this error:

Error: Read 0x001fee0000008d0d/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')
    at Endpoint.checkStatus (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28)
    at Endpoint.read (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:480:22)
    at Object.convertGet (/app/node_modules/zigbee-herdsman-converters/devices/ubisys.js:519:17)

I have try this with multible devices like a d1, c4 und s2. On every device the same error.

@sjorge can you help with this? Do you have the same error?

I don't know when this problem came. but befor a half year i did this the last time and it was working without problem.

Thanks.

What did you expect to happen?

That this will work without a error.

How to reproduce it (minimal and precise)

Change the input_action of a Ubisys device or try to read them back.

Zigbee2MQTT version

1.29.0

Adapter firmware version

20220726

Adapter

Sonoff Dongle P

Debug log

No response

@Danit2 Danit2 added the problem Something isn't working label Jan 2, 2023
@sjorge
Copy link
Contributor

sjorge commented Jan 2, 2023

Reading from an S1

mosquitto_pub -t zigbee2mqtt/switch/pantry/light/get/configure_device_setup -m ''
debug 2023-01-02 13:18:49: Received MQTT message on 'zigbee2mqtt/switch/pantry/light/get/configure_device_setup' with data ''
debug 2023-01-02 13:18:49: Publishing get 'get' 'configure_device_setup' to 'switch/pantry/light'
debug 2023-01-02 13:18:50: Received Zigbee message from 'switch/pantry/light', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputActions":[{"data":[0,7,2,6,0,2],"type":"Buffer"},{"data":[0,134,2,8,0,5,0,50],"type":"Buffer"},{"data":[0,198,2,8,0,5,1,50],"type":"Buffer"},{"data":[0,11,2,8,0,3],"type":"Buffer"}],"inputConfigurations":[0]}' from endpoint 232 with groupID 0
info  2023-01-02 13:18:50: MQTT publish: topic 'zigbee2mqtt/switch/pantry/light', payload '{"configure_device_setup":{"input_actions":[[0,7,2,6,0,2],[0,134,2,8,0,5,0,50],[0,198,2,8,0,5,1,50],[0,11,2,8,0,3]],"input_configurations":[0]},"energy":0.1,"linkquality":109,"power":0,"power_on_behavior":"on","state":"ON","update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}'

Reading from an S2

mosquitto_pub -t zigbee2mqtt/switch/kitchen/light/get/configure_device_setup -m ''
debug 2023-01-02 13:21:22: Received MQTT message on 'zigbee2mqtt/switch/kitchen/light/get/configure_device_setup' with data ''
debug 2023-01-02 13:21:22: Publishing get 'get' 'configure_device_setup' to 'switch/kitchen/light'
debug 2023-01-02 13:21:22: Received Zigbee message from 'switch/kitchen/light', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputConfigurations":[0,0]}' from endpoint 232 with groupID 0
error 2023-01-02 13:21:22: Publish 'get' 'configure_device_setup' to 'switch/kitchen/light' failed: 'Error: Read 0x001fee000000594d/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')'
debug 2023-01-02 13:21:22: Error: Read 0x001fee000000594d/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')
    at Endpoint.checkStatus (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28)
    at Endpoint.read (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:480:22)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.convertGet (/opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/devices/ubisys.js:519:17)
    at Publish.onMQTTMessage (/opt/zigbee2mqtt/lib/extension/publish.ts:273:21)

Reading from an C4

mosquitto_pub -t zigbee2mqtt/switch/livingroom/light_bottom/get/configure_device_setup -m ''
debug 2023-01-02 13:22:41: Received MQTT message on 'zigbee2mqtt/switch/livingroom/light_bottom/get/configure_device_setup' with data ''
debug 2023-01-02 13:22:41: Publishing get 'get' 'configure_device_setup' to 'switch/livingroom/light_bottom'
debug 2023-01-02 13:22:41: Received Zigbee message from 'switch/livingroom/light_bottom', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputConfigurations":[0,0,0,0]}' from endpoint 232 with groupID 0
error 2023-01-02 13:22:41: Publish 'get' 'configure_device_setup' to 'switch/livingroom/light_bottom' failed: 'Error: Read 0x001fee0000005baa/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')'
debug 2023-01-02 13:22:41: Error: Read 0x001fee0000005baa/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')
    at Endpoint.checkStatus (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28)
    at Endpoint.read (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:480:22)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.convertGet (/opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/devices/ubisys.js:519:17)
    at Publish.onMQTTMessage (/opt/zigbee2mqtt/lib/extension/publish.ts:273:21)
info  2023-01-02 13:22:41: MQTT publish: topic 'zigbee2mqtt/switch/livingroom/light_bottom', payload '{"configure_device_setup":{"input_configurations":[0,0,0,0]},"linkquality":98,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}'

@Koenkk any idea where this INSUFFICIENT_SPACE is coming from? I'm guessing both the S2/C4 are hitting this but not the S1 because the S1 has less configuration. This indeed used to work fine in the past.

@sjorge
Copy link
Contributor

sjorge commented Jan 2, 2023

It seems to be coming up from the z-stack, do the newer firmware have reduced buffer sizing somewhere to make room for more routing table space?

@Danit2
Copy link
Author

Danit2 commented Jan 2, 2023

Thanks @sjorge for your analysis but I'm not sure if this is because of the firmware.
I'm not exactly sure, but I think I configured the last devices with this firmware and had no problems. But you're probably right.

Is it possible to downgrade the firmware or can this cause problems?

@sjorge
Copy link
Contributor

sjorge commented Jan 2, 2023 via email

@Danit2
Copy link
Author

Danit2 commented Jan 2, 2023

@sjorge I have test it now with a other stick with firmware version 20220219 and have the same error.
and i am very shure with this version it was working. so i don't think it is the firmware.

@sjorge
Copy link
Contributor

sjorge commented Jan 3, 2023

I also tested with 20220219 and still have the problem too on my S2/C4's.

@Koenkk any idea what could be triggering this INSUFFICIENT_SPACE ?

@Koenkk
Copy link
Owner

Koenkk commented Jan 4, 2023

@sjorge this means the memory of the device is full (added to too many groups, bindings or configured reportings)

@sjorge
Copy link
Contributor

sjorge commented Jan 4, 2023

That would be very odd as the config written to the device hasnt changed and is working fine still. It’s just no longer possible to read it ir write any new one.

@Koenkk
Copy link
Owner

Koenkk commented Jan 4, 2023

@sjorge could it be that the fw has been updated recently? This could also be a bug in the device fw.

@sjorge
Copy link
Contributor

sjorge commented Jan 4, 2023

Mine have been on the 2.x release for a while and i know i completely reconfigured one after.

I wonder if there is some sort of on device log space or something that filled up. Or maybe the routing table? My network has gotten a lot bigger recently.

@Danit2 how big is yours? Mine hovers around 90 devices, about 2/3 routers.

@Danit2
Copy link
Author

Danit2 commented Jan 4, 2023

The size of the network can't be the reason either. I have 49 devices and about 3/4 are routers. But I have a friend who only started with the smart home and only has 6 devices. He also gets the same error.

but maybe it's really the reporting or binding. because I have now tried again to read an s2 in which only the power metering is as reporting and no binding is configured. there it works.

what are we doing now?

@sjorge can you also try to delete the binding and delete the reporting? then try to read. maybe it works for you too? then it would really be a problem with ubisys and the firmware.

@sjorge
Copy link
Contributor

sjorge commented Jan 4, 2023

Well i have mine bound to groups as i use them to control the lights in it, I had it like that since the beginning so removing all binds would kind of make them useless.

I’ll try and check tomorrow after work if some extra binds are there that are not suppose to be their.

@sjorge
Copy link
Contributor

sjorge commented Jan 4, 2023

Very interesting my C4 shows bindings that are not connect, it has everything bound to the coordinator and nothing to the 2 groups i am controlling with them. I wonder how that happened.

I’ll see if i can remove them when i am at my laptop.

@Danit2
Copy link
Author

Danit2 commented Jan 5, 2023

I've played around a bit now.
At the moment I can read everything on the J1 and S2. Also with all reporting and binding.
But I can't read the D1 and C4. Even if no reporting or binding is programmed.
I don't know where the problem is now.
Maybe it really is a firmware bug

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

Since all the binding on my C4 were not the ones it was suppose to be (all to coordinator, not to the group they are controlling). I nuked them and tried reading again:

debug 2023-01-05 10:24:05: Received MQTT message on 'zigbee2mqtt/switch/livingroom/light_bottom/get/configure_device_setup' with data ''
debug 2023-01-05 10:24:05: Publishing get 'get' 'configure_device_setup' to 'switch/livingroom/light_bottom'
debug 2023-01-05 10:24:06: Received Zigbee message from 'switch/livingroom/light_bottom', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputConfigurations":[0,0,0,0]}' from endpoint 232 with groupID 0
error 2023-01-05 10:24:06: Publish 'get' 'configure_device_setup' to 'switch/livingroom/light_bottom' failed: 'Error: Read 0x001fee0000005baa/232 manuSpecificUbisysDeviceSetup(["inputConfigurations","inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')'
info  2023-01-05 10:24:06: MQTT publish: topic 'zigbee2mqtt/switch/livingroom/light_bottom', payload '{"configure_device_setup":{"input_configurations":[0,0,0,0]},"linkquality":94,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}'

This is a super weird result as it did seem return some data but not all and not the data I was expecting.
I wonder if we should split the inputConfigurations and inputActions reads?

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

debug 2023-01-05 10:32:17: Publishing get 'get' 'configure_device_setup' to 'switch/livingroom/light_bottom'
debug 2023-01-05 10:32:17: Received Zigbee message from 'switch/livingroom/light_bottom', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputConfigurations":[0,0,0,0]}' from endpoint 232 with groupID 0
debug 2023-01-05 10:32:17: Received Zigbee message from 'switch/livingroom/light_bottom', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputActions":[{"data":[0,7,1,6,0,2],"type":"Buffer"},{"data":[0,134,1,8,0,1,0,50],"type":"Buffer"},{"data":[0,198,1,8,0,1,1,50],"type":"Buffer"},{"data":[0,11,1,8,0,3],"type":"Buffer"},{"data":[1,7,2,6,0,2],"type":"Buffer"},{"data":[1,134,2,8,0,1,0,50],"type":"Buffer"},{"data":[1,198,2,8,0,1,1,50],"type":"Buffer"},{"data":[1,11,2,8,0,3],"type":"Buffer"}]}' from endpoint 232 with groupID 0
info  2023-01-05 10:32:18: MQTT publish: topic 'zigbee2mqtt/switch/livingroom/light_bottom', payload '{"configure_device_setup":{"input_actions":[[0,7,1,6,0,2],[0,134,1,8,0,1,0,50],[0,198,1,8,0,1,1,50],[0,11,1,8,0,3],[1,7,2,6,0,2],[1,134,2,8,0,1,0,50],[1,198,2,8,0,1,1,50],[1,11,2,8,0,3]]},"linkquality":94,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}'```

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

We're getting somewhere, but looks like it now only adds the last key.
So there is now just question why my binds are missing... and how to fix this.

I'll try to find time this weekend to dig into this some more.

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

I got a PR that mostly fix the INSUFFICIENT_SPACE. However if you have configure_device_setup disabled for caching (like I do) then it will only return configure_device_setup.input_actions if you have debounce also set.

@Koenkk It looks like debounce does not deepmerge keys that are objects/hashes, This is not what I expect to happen.
Was this a deliberate choice? If not I'll see if I can fix this.

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

Looks like the binds got reset (does not explain the group bind being missing though) when the configure functions got updates to add readMeteringMultiplierDivisor. So that at least partially explains it.

@Danit2
Copy link
Author

Danit2 commented Jan 5, 2023

I have now tested your new converter.
now it works again with my D1. not yet with the C4 because I still have the same error.

but if this only works again with a change to the converter, is it really a problem with the device or with the software?

Does it work for you with the C4 as well?

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

I got it working on my C4 and all my S1's, one of my S2's is still not happy.
I did already delete all my bindings to the coordinator on the C4, S1, and S2's and only kept the group bindings I was using.

I think it might be a bit of both, where some device side limit got smaller with the 1.x -> 2.x update but we are also doing a few things together that we don't need to. Now it's 2 reads vs 1 so more traffic on the mesh, but that is prefered over it not working.

I don't see how we can break this up further though 🤔

@Danit2
Copy link
Author

Danit2 commented Jan 5, 2023

Everything works for me except my two C4. They don't want to. :(

Theoretically, it's not that bad if it doesn't work. we don't really need this.

But I think we should definitely rewrite the converter so that it doesn't read the configuration when you write a new configuration. so there is no error.

when I write a new configuration, the program always crashes. this must not be.

can you do this? or can we catch the error that the programm not will crash?

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

The set side is actually where I got the idea of splitting the read, as it writes each one separately already.

I'd much rather try and further figure out what is failing. Can you grab a debug log of the write to your C4 ?

@Danit2
Copy link
Author

Danit2 commented Jan 5, 2023

Zigbee2MQTT:debug 2023-01-05 20:05:13: Received MQTT message on 'zigbee2mqtt/Wohnzimmer_Taster/set' with data '{
    "configure_device_setup": {
        "input_action_templates": [
            {
                "type": "dimmer_double"
            },
            {
                "type": "dimmer_double"
            }
        ]
    }
}'
Zigbee2MQTT:debug 2023-01-05 20:05:13: Publishing 'set' 'configure_device_setup' to 'Wohnzimmer_Taster'
Zigbee2MQTT:warn  2023-01-05 20:05:13: ubisys: Using input(s) 0,1 and endpoint 1 for 'dimmer_double'.
Zigbee2MQTT:warn  2023-01-05 20:05:13: ubisys: Using input(s) 2,3 and endpoint 2 for 'dimmer_double'.
Zigbee2MQTT:debug 2023-01-05 20:05:13: ubisys: input_actions to be sent to 'undefined': [[0,7,1,6,0,1],[0,6,1,8,0,5,0,50],[0,11,1,8,0,3],[1,7,1,6,0,0],[1,6,1,8,0,5,1,50],[1,11,1,8,0,3],[2,7,2,6,0,1],[2,6,2,8,0,5,0,50],[2,11,2,8,0,3],[3,7,2,6,0,0],[3,6,2,8,0,5,1,50],[3,11,2,8,0,3]]
Zigbee2MQTT:info  2023-01-05 20:05:13: MQTT publish: topic 'zigbee2mqtt/Wohnzimmer_Taster', payload '{"action":null,"configure_device_setup":{"input_configurations":[0,0,0,0]},"last_seen":"2023-01-05T20:05:13+01:00","linkquality":91,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"},"update_available":false}'
Zigbee2MQTT:debug 2023-01-05 20:05:13: Received Zigbee message from 'Wohnzimmer_Taster', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{"inputConfigurations":[0,0,0,0]}' from endpoint 232 with groupID 0
Zigbee2MQTT:info  2023-01-05 20:05:14: MQTT publish: topic 'zigbee2mqtt/Wohnzimmer_Taster', payload '{"action":null,"configure_device_setup":{"input_configurations":[0,0,0,0]},"last_seen":"2023-01-05T20:05:13+01:00","linkquality":91,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"},"update_available":false}'
Zigbee2MQTT:debug 2023-01-05 20:05:14: Received Zigbee message from 'Wohnzimmer_Taster', type 'readResponse', cluster 'manuSpecificUbisysDeviceSetup', data '{}' from endpoint 232 with groupID 0
Zigbee2MQTT:info  2023-01-05 20:05:14: MQTT publish: topic 'zigbee2mqtt/Wohnzimmer_Taster', payload '{"action":null,"configure_device_setup":{"input_configurations":[0,0,0,0]},"last_seen":"2023-01-05T20:05:14+01:00","linkquality":91,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"},"update_available":false}'
Error: Read 0x001fee0000008d0d/232 manuSpecificUbisysDeviceSetup(["inputActions"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')
    at Endpoint.checkStatus (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28)
    at Endpoint.read (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:480:22)
    at Object.convertGet (/app/data/extension/externally-loaded.js:516:17)

@Danit2
Copy link
Author

Danit2 commented Jan 5, 2023

This is the debug log and then the software crash.

@sjorge
Copy link
Contributor

sjorge commented Jan 5, 2023

Very interesting, mostly this bit ubisys: input_actions to be sent to 'undefined':

I'll try to see if I can see why this is happening tomorrow.

@ahemwe
Copy link

ahemwe commented Jan 6, 2023

Do you refer to latest commit on master or dev? @sjorge
I'm running on master (1.29.1) and found this:

Sending a default configuration as listed in documentation at mqtt topic zigbee2mqtt/Esszimmer/Wand/Schalter/set:

{
    "configure_device_setup": {
        "input_action_templates": [
            {             
                "type": "toggle"
            },
            {             
                "type": "toggle"
            }
        ]
    }
}

Results in that log:

Jan 06 12:53:04 raspberrypi npm[22987]: Zigbee2MQTT:warn  2023-01-06 12:53:04: ubisys: Using input(s) 0 and endpoint 1 for 'toggle'.
Jan 06 12:53:04 raspberrypi npm[22987]: Zigbee2MQTT:warn  2023-01-06 12:53:04: ubisys: Using input(s) 1 and endpoint 2 for 'toggle'.
Jan 06 12:53:04 raspberrypi npm[22987]: Zigbee2MQTT:info  2023-01-06 12:53:04: MQTT publish: topic 'zigbee2mqtt/Esszimmer/Wand/Schalter', payload '{"configure_device_setup":{"input_actions":[[0,13,1,6,0,2]],"input_configurations":[0,0,0,0]},"last_seen":"2023-01-06T12:53:04+01:00","linkquality":255,"update":{"installed_version":17039684,"latest_version":26345997,"state":"available"},"update_available":true}'
Jan 06 12:53:04 raspberrypi npm[22987]: Zigbee2MQTT:info  2023-01-06 12:53:04: MQTT publish: topic 'zigbee2mqtt/Esszimmer/Wand/Schalter', payload '{"configure_device_setup":{"input_actions":[[0,13,1,6,0,2]],"input_configurations":[0,0,0,0]},"elapsed":23701,"last_seen":"2023-01-06T12:53:04+01:00","linkquality":255,"update":{"installed_version":17039684,"latest_version":26345997,"state":"available"},"update_available":true}'
Jan 06 12:53:04 raspberrypi npm[22987]: Zigbee2MQTT:info  2023-01-06 12:53:04: MQTT publish: topic 'zigbee2mqtt/Esszimmer/Wand/Schalter', payload '{"configure_device_setup":{"input_actions":[[0,13,1,6,0,2],[1,13,2,6,0,2]],"input_configurations":[0,0,0,0]},"elapsed":68,"last_seen":"2023-01-06T12:53:04+01:00","linkquality":255,"update":{"installed_version":17039684,"latest_version":26345997,"state":"available"},"update_available":true}'

If I then press a button I see this message on zigbee, which has no information about the actual channel. (device is not bound to any other device apart from coordinator):

{
  "action" : "toggle",
  "configure_device_setup" : {
    "input_actions" : [ [ 0, 13, 1, 6, 0, 2 ], [ 1, 13, 2, 6, 0, 2 ] ],
    "input_configurations" : [ 0, 0, 0, 0 ]
  },
  "elapsed" : 2996,
  "last_seen" : "2023-01-06T12:56:38+01:00",
  "linkquality" : 255,
  "update" : {
    "installed_version" : 17039684,
    "latest_version" : 26345997,
    "state" : "available"
  },
  "update_available" : true
}

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

You probably do need to bind it to a group for the action_group to show up, I’ll have a look this weekend we can fallback to append endpoint name like other devices do if there is no group.

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

@ahemwe could you turn on debug logging and toggle your buttons again?
That should include all the info about groups and stuff, if I'm correct that should be 0 in your case.

@Danit2
Copy link
Author

Danit2 commented Jan 6, 2023

I only have 2 buttons configure and they both report the toggle action for the proper action_group that they are assigned to.

But @sjorge this is wrong. When you have 2 buttons configured then they must report 1_toggle and 2_toggle
But woud it be not better to make the actions simular to all the other actions in Z2M?

So why is in the C4 converter the fz.legacy.ubisys_c4_onoff and not the normal converter?
Is it not easy to use the normal converter and use the normal meta: {multiEndpoint: true}

By the way: the toggle converter missing.

Maby i will rewreit the c4 converter that it will be consistent to the rest of Z2M.

So then we will have toggle_1

What do you think?

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

Yeah I was going to see if switching to the normal one works or not.

I think dropping the legacy one and adding:
fz.on_off, fz.command_toggle, fz.command_on, fz.command_off, fz.command_recall, fz.command_move,fz.command_stop might work.

@Danit2
Copy link
Author

Danit2 commented Jan 6, 2023

    {
        zigbeeModel: ['C4 (5504)'],
        model: 'C4',
        vendor: 'Ubisys',
        description: 'Control unit C4',
        fromZigbee: [fz.command_toggle, fz.command_on, fz.command_off, fz.command_recall,
            fz.command_move, fz.command_stop, fz.command_cover_stop, fz.command_cover_open,
            fz.command_cover_close, ubisys.fz.configure_device_setup],
        toZigbee: [ubisys.tz.configure_device_setup],
        exposes: [e.action([
            'scene_*_1', 'on_1', 'off_1', 'toggle_1', 'level_move_down_1', 'level_move_up_1',
            'scene_*_2', 'on_2', 'off_2', 'toggle_2', 'level_move_down_2', 'level_move_up_2',
            'scene_*_3', 'on_3', 'off_3', 'toggle_3', 'level_move_down_3', 'level_move_up_3',
            'scene_*_4', 'on_4', 'off_4', 'toggle_4', 'level_move_down_4', 'level_move_up_4',
            'scene_*_5', 'cover_open_5', 'cover_close_5', 'cover_stop_5',
            'scene_*_6', 'cover_open_6', 'cover_close_6', 'cover_stop_6'])],
        configure: async (device, coordinatorEndpoint, logger) => {
            for (const ep of [1, 2, 3, 4]) {
                await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ['genScenes', 'genOnOff', 'genLevelCtrl']);
            }
            for (const ep of [5, 6]) {
                await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ['genScenes', 'closuresWindowCovering']);
            }
        },
        meta: {multiEndpoint: true},
        endpoint: (device) => {
            return {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6};
        },
        ota: ota.ubisys,
    },

@Danit2
Copy link
Author

Danit2 commented Jan 6, 2023

I think somethin likt this must work.

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

    ubisys_c4_onoff: {
        cluster: 'genOnOff',
        type: ['commandOn', 'commandOff', 'commandToggle'],
        options: [exposes.options.legacy()],
        convert: (model, msg, publish, options, meta) => {
            if (!isLegacyEnabled(options)) {
                if (msg.type === 'commandOn') {
                    return fromZigbeeConverters.command_on.convert(model, msg, publish, options, meta);
                } else if (msg.type === 'commandOff') {
                    return fromZigbeeConverters.command_off.convert(model, msg, publish, options, meta);
                } else if (msg.type === 'commandToggle') {
                    return fromZigbeeConverters.command_toggle.convert(model, msg, publish, options, meta);
                }
            }
            return {action: `${msg.endpoint.ID}_${msg.type.substr(7).toLowerCase()}`};
        },
    },

So looks like if legacy is set to false in z2m, which it is for me, it passes them through to the non legacy converters already. So the event should be the same if we just set multiEndpoint

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

We should probably set the endpoint array to so it's inline with the other Ubisys devices:

        endpoint: (device) => {
            return {'s1': 1, 's2': 2, 's3': 3, 's4': 4};
        },

S1 and S2 have s1 and s1/s2 respectively for the endpoints matching the markings on the device.

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

Indeed it just works with setting endpoint and multiendpoint, I'll make a PR

{"action":"toggle_s1","action_group":10503,"linkquality":61,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}
{"action":"toggle_s1","action_group":10503,"linkquality":76,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}
{"action":"toggle_s2","action_group":10102,"linkquality":83,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}
{"action":"toggle_s2","action_group":10102,"linkquality":58,"update":{"installed_version":33555200,"latest_version":33555200,"state":"idle"}}

@Danit2
Copy link
Author

Danit2 commented Jan 6, 2023

cool ok yes we can do also s as endpoint name.
But dose someone need the legacy converter?

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

But dose someone need the legacy converter?

idk, but generally Koen tries not to break things hence we have the whole set of fz.legacy. to begin with.

cool ok yes we can do also s as endpoint name.
Wrapping up a PR now...

@Danit2
Copy link
Author

Danit2 commented Jan 6, 2023

When you let the legacy converter then you have also the problem that the converter return a 1_on but in Z2M it is standart to repot as on_s1 i never see a converter that report firt the number and then the state.

@ahemwe
Copy link

ahemwe commented Jan 6, 2023

@ahemwe could you turn on debug logging and toggle your buttons again?
That should include all the info about groups and stuff, if I'm correct that should be 0 in your case.

That's the log when enabling debugging @sjorge

Jan 06 13:43:59 raspberrypi npm[22987]: Zigbee2MQTT:debug 2023-01-06 13:43:59: Received Zigbee message from 'Esszimmer/Wand/Schalter', type 'commandToggle', cluster 'genOnOff', data '{}' from endpoint 2 with groupID null
Jan 06 13:43:59 raspberrypi npm[22987]: Zigbee2MQTT:info  2023-01-06 13:43:59: MQTT publish: topic 'zigbee2mqtt/Esszimmer/Wand/Schalter', payload '{"action":"toggle","configure_device_setup":{"input_actions":[[0,13,1,6,0,2],[1,13,2,6,0,2]],"input_configurations":[0,0,0,0]},"elapsed":12639,"last_seen":"2023-01-06T13:43:59+01:00","linkquality":255,"update":{"installed_version":17039684,"latest_version":26345997,"state":"available"},"update_available":true}'
Jan 06 13:44:07 raspberrypi npm[22987]: Zigbee2MQTT:debug 2023-01-06 13:44:07: Received Zigbee message from 'Esszimmer/Wand/Schalter', type 'commandToggle', cluster 'genOnOff', data '{}' from endpoint 1 with groupID null
Jan 06 13:44:07 raspberrypi npm[22987]: Zigbee2MQTT:info  2023-01-06 13:44:07: MQTT publish: topic 'zigbee2mqtt/Esszimmer/Wand/Schalter', payload '{"action":"toggle","configure_device_setup":{"input_actions":[[0,13,1,6,0,2],[1,13,2,6,0,2]],"input_configurations":[0,0,0,0]},"elapsed":8389,"last_seen":"2023-01-06T13:44:07+01:00","linkquality":255,"update":{"installed_version":17039684,"latest_version":26345997,"state":"available"},"update_available":true}'

@sjorge
Copy link
Contributor

sjorge commented Jan 6, 2023

When you let the legacy converter then you have also the problem that the converter return a 1_on but in Z2M it is standart to repot as on_s1 i never see a converter that report firt the number and then the state.

I've swapped the expose values to be the non legacy one. I'll ask koen if he's OK with just eliminating it and using fz.command_* instead.

@sjorge
Copy link
Contributor

sjorge commented Jan 7, 2023

@Koenkk the INSUFFICIENT_SPACE does indeed come back from the device.

You can use this filter zbee_nwk.src == 0x42d3 || zbee_nwk.dst == 0x42d3 in the capture is a write to the device with a config, then at the end we read it back and hit INSUFFICIENT_SPACE but the write was successful and as far as I can tell, the config is correctly applied!

I think you still have my nwk key, if not I can pass it again on discord. But I also copied the values here for the effected packets, which is probably even easier.

ubisys_write_read.pcapng.zip

The write:

Frame 20: 130 bytes on wire (1040 bits), 130 bytes captured (1040 bits) on interface /dev/cu.usbmodemCCE532FC3D041, id 0
IEEE 802.15.4 TAP
    Header
    RSS: -66.00 dBm
    Channel assignment: Page: Default (0), Number: 11
    Link Quality Indicator: 108
    [Data Length: 102]
IEEE 802.15.4 Data, Dst: 0x42d3, Src: 0x0000
    Frame Control Field: 0x8861, Frame Type: Data, Acknowledge Request, PAN ID Compression, Destination Addressing Mode: Short/16-bit, Frame Version: IEEE Std 802.15.4-2003, Source Addressing Mode: Short/16-bit
    Sequence Number: 55
    Destination PAN: 0x1a5e
    Destination: 0x42d3
    Source: 0x0000
    [Extended Source: TexasIns_00:22:81:20:b5 (00:12:4b:00:22:81:20:b5)]
    [Origin: 14]
    [Ack In: 21]
ZigBee Network Layer Data, Dst: 0x42d3, Src: 0x0000
    Frame Control Field: 0x0248, Frame Type: Data, Discover Route: Enable, Security Data
    Destination: 0x42d3
    Source: 0x0000
    Radius: 30
    Sequence Number: 181
    [Extended Source: TexasIns_00:22:81:20:b5 (00:12:4b:00:22:81:20:b5)]
    [Origin: 14]
    ZigBee Security Header
        Security Control Field: 0x28, Key Id: Network Key, Extended Nonce
            ...0 1... = Key Id: Network Key (0x1)
            ..1. .... = Extended Nonce: True
        Frame Counter: 34837581
        Extended Source: TexasIns_00:22:81:20:b5 (00:12:4b:00:22:81:20:b5)
        Key Sequence Number: 0
        Message Integrity Code: b883d0d7
        [Key: a181526fc46c487ce1694a665b3489d5]
        [Key Label: Acheron]
ZigBee Application Support Layer Data, Dst Endpt: 232, Src Endpt: 1
    Frame Control Field: Data (0xc0)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .1.. .... = Acknowledgement Request: True
        1... .... = Extended Header: True
    Destination Endpoint: 232
    Cluster: Manufacturer Specific (0xfc00)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 97
    Extended Frame Control Field (0x02)
        .... ..10 = Fragmentation: Middle Block (0x2)
        Block Number: 1
    [2 Message fragments (137 bytes): #14(80), #20(57)]
ZigBee Cluster Library Frame, Command: Write Attributes, Seq: 109
    Frame Control Field: Profile-wide (0x10)
        .... ..00 = Frame Type: Profile-wide (0x0)
        .... .0.. = Manufacturer Specific: False
        .... 0... = Direction: Client to Server
        ...1 .... = Disable Default Response: True
    Sequence Number: 109
    Command: Write Attributes (0x02)
    Attribute Field
        Attribute: 0x0001
        Data Type: Array (0x48)
        Elements Type: Octet String (0x41)
        Elements Number: 16
        Element #1, Octets: 00:07:01:06:00:02
            Octet String: 00:07:01:06:00:02
        Element #2, Octets: 00:86:01:08:00:01:00:32
            Octet String: 00:86:01:08:00:01:00:32
        Element #3, Octets: 00:c6:01:08:00:01:01:32
            Octet String: 00:c6:01:08:00:01:01:32
        Element #4, Octets: 00:0b:01:08:00:03
            Octet String: 00:0b:01:08:00:03
        Element #5, Octets: 01:07:02:06:00:02
            Octet String: 01:07:02:06:00:02
        Element #6, Octets: 01:86:02:08:00:01:00:32
            Octet String: 01:86:02:08:00:01:00:32
        Element #7, Octets: 01:c6:02:08:00:01:01:32
            Octet String: 01:c6:02:08:00:01:01:32
        Element #8, Octets: 01:0b:02:08:00:03
            Octet String: 01:0b:02:08:00:03
        Element #9, Octets: 02:07:03:06:00:02
            Octet String: 02:07:03:06:00:02
        Element #10, Octets: 02:86:03:08:00:01:00:32
            Octet String: 02:86:03:08:00:01:00:32
        Element #11, Octets: 02:c6:03:08:00:01:01:32
            Octet String: 02:c6:03:08:00:01:01:32
        Element #12, Octets: 02:0b:03:08:00:03
            Octet String: 02:0b:03:08:00:03
        Element #13, Octets: 03:07:04:06:00:02
            Octet String: 03:07:04:06:00:02
        Element #14, Octets: 03:86:04:08:00:01:00:32
            Octet String: 03:86:04:08:00:01:00:32
        Element #15, Octets: 03:c6:04:08:00:01:01:32
            Octet String: 03:c6:04:08:00:01:01:32
        Element #16, Octets: 03:0b:04:08:00:03
            Octet String: 03:0b:04:08:00:03
Frame 28: 75 bytes on wire (600 bits), 75 bytes captured (600 bits) on interface /dev/cu.usbmodemCCE532FC3D041, id 0
IEEE 802.15.4 TAP
    Header
    RSS: -85.00 dBm
    Channel assignment: Page: Default (0), Number: 11
    Link Quality Indicator: 32
    [Data Length: 47]
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0x42d3
    Frame Control Field: 0x8861, Frame Type: Data, Acknowledge Request, PAN ID Compression, Destination Addressing Mode: Short/16-bit, Frame Version: IEEE Std 802.15.4-2003, Source Addressing Mode: Short/16-bit
    Sequence Number: 215
    Destination PAN: 0x1a5e
    Destination: 0x0000
    Source: 0x42d3
    [Extended Source: ubisyste_00:00:00:5b:aa (00:1f:ee:00:00:00:5b:aa)]
    [Origin: 16]
    [Ack In: 29]
ZigBee Network Layer Data, Dst: 0x0000, Src: 0x42d3
    Frame Control Field: 0x0248, Frame Type: Data, Discover Route: Enable, Security Data
    Destination: 0x0000
    Source: 0x42d3
    Radius: 30
    Sequence Number: 110
    [Extended Source: ubisyste_00:00:00:5b:aa (00:1f:ee:00:00:00:5b:aa)]
    [Origin: 16]
    ZigBee Security Header
        Security Control Field: 0x28, Key Id: Network Key, Extended Nonce
            ...0 1... = Key Id: Network Key (0x1)
            ..1. .... = Extended Nonce: True
        Frame Counter: 13227095
        Extended Source: ubisyste_00:00:00:5b:aa (00:1f:ee:00:00:00:5b:aa)
        Key Sequence Number: 0
        Message Integrity Code: 42f001ee
        [Key: a181526fc46c487ce1694a665b3489d5]
        [Key Label: Acheron]
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 232
    Frame Control Field: Data (0x40)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .1.. .... = Acknowledgement Request: True
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Manufacturer Specific (0xfc00)
    Profile: Home Automation (0x0104)
    Source Endpoint: 232
    Counter: 92
ZigBee Cluster Library Frame, Command: Write Attributes Response, Seq: 109
    Frame Control Field: Profile-wide (0x18)
        .... ..00 = Frame Type: Profile-wide (0x0)
        .... .0.. = Manufacturer Specific: False
        .... 1... = Direction: Server to Client
        ...1 .... = Disable Default Response: True
    Sequence Number: 109
    Command: Write Attributes Response (0x04)
    Status Record
        Status: Success (0x00)

The read:

Frame 41: 76 bytes on wire (608 bits), 76 bytes captured (608 bits) on interface /dev/cu.usbmodemCCE532FC3D041, id 0
IEEE 802.15.4 TAP
    Header
    RSS: -66.00 dBm
    Channel assignment: Page: Default (0), Number: 11
    Link Quality Indicator: 108
    [Data Length: 48]
IEEE 802.15.4 Data, Dst: 0x42d3, Src: 0x0000
    Frame Control Field: 0x8861, Frame Type: Data, Acknowledge Request, PAN ID Compression, Destination Addressing Mode: Short/16-bit, Frame Version: IEEE Std 802.15.4-2003, Source Addressing Mode: Short/16-bit
    Sequence Number: 59
    Destination PAN: 0x1a5e
    Destination: 0x42d3
    Source: 0x0000
    [Extended Source: TexasIns_00:22:81:20:b5 (00:12:4b:00:22:81:20:b5)]
    [Origin: 14]
    [Ack In: 42]
ZigBee Network Layer Data, Dst: 0x42d3, Src: 0x0000
    Frame Control Field: 0x0248, Frame Type: Data, Discover Route: Enable, Security Data
    Destination: 0x42d3
    Source: 0x0000
    Radius: 30
    Sequence Number: 185
    [Extended Source: TexasIns_00:22:81:20:b5 (00:12:4b:00:22:81:20:b5)]
    [Origin: 14]
    ZigBee Security Header
        Security Control Field: 0x28, Key Id: Network Key, Extended Nonce
            ...0 1... = Key Id: Network Key (0x1)
            ..1. .... = Extended Nonce: True
        Frame Counter: 34837585
        Extended Source: TexasIns_00:22:81:20:b5 (00:12:4b:00:22:81:20:b5)
        Key Sequence Number: 0
        Message Integrity Code: 96363df1
        [Key: a181526fc46c487ce1694a665b3489d5]
        [Key Label: Acheron]
ZigBee Application Support Layer Data, Dst Endpt: 232, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 232
    Cluster: Manufacturer Specific (0xfc00)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 99
ZigBee Cluster Library Frame, Command: Read Attributes, Seq: 111
    Frame Control Field: Profile-wide (0x10)
        .... ..00 = Frame Type: Profile-wide (0x0)
        .... .0.. = Manufacturer Specific: False
        .... 0... = Direction: Client to Server
        ...1 .... = Disable Default Response: True
    Sequence Number: 111
    Command: Read Attributes (0x00)
    Attribute: 0x0001
Frame 45: 77 bytes on wire (616 bits), 77 bytes captured (616 bits) on interface /dev/cu.usbmodemCCE532FC3D041, id 0
IEEE 802.15.4 TAP
    Header
    RSS: -84.00 dBm
    Channel assignment: Page: Default (0), Number: 11
    Link Quality Indicator: 32
    [Data Length: 49]
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0x42d3
    Frame Control Field: 0x8861, Frame Type: Data, Acknowledge Request, PAN ID Compression, Destination Addressing Mode: Short/16-bit, Frame Version: IEEE Std 802.15.4-2003, Source Addressing Mode: Short/16-bit
    Sequence Number: 219
    Destination PAN: 0x1a5e
    Destination: 0x0000
    Source: 0x42d3
    [Extended Source: ubisyste_00:00:00:5b:aa (00:1f:ee:00:00:00:5b:aa)]
    [Origin: 16]
    [Ack In: 46]
ZigBee Network Layer Data, Dst: 0x0000, Src: 0x42d3
    Frame Control Field: 0x0248, Frame Type: Data, Discover Route: Enable, Security Data
    Destination: 0x0000
    Source: 0x42d3
    Radius: 30
    Sequence Number: 114
    [Extended Source: ubisyste_00:00:00:5b:aa (00:1f:ee:00:00:00:5b:aa)]
    [Origin: 16]
    ZigBee Security Header
        Security Control Field: 0x28, Key Id: Network Key, Extended Nonce
            ...0 1... = Key Id: Network Key (0x1)
            ..1. .... = Extended Nonce: True
        Frame Counter: 13227099
        Extended Source: ubisyste_00:00:00:5b:aa (00:1f:ee:00:00:00:5b:aa)
        Key Sequence Number: 0
        Message Integrity Code: 04f78ed7
        [Key: a181526fc46c487ce1694a665b3489d5]
        [Key Label: Acheron]
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 232
    Frame Control Field: Data (0x40)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .1.. .... = Acknowledgement Request: True
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Manufacturer Specific (0xfc00)
    Profile: Home Automation (0x0104)
    Source Endpoint: 232
    Counter: 94
ZigBee Cluster Library Frame, Command: Read Attributes Response, Seq: 111
    Frame Control Field: Profile-wide (0x18)
        .... ..00 = Frame Type: Profile-wide (0x0)
        .... .0.. = Manufacturer Specific: False
        .... 1... = Direction: Server to Client
        ...1 .... = Disable Default Response: True
    Sequence Number: 111
    Command: Read Attributes Response (0x01)
    Status Record
        Attribute: 0x0001
        Status: Insufficient Space (0x89)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 7, 2023

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

@github-actions github-actions bot added the stale Stale issues label Feb 7, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Feb 15, 2023
@sjorge
Copy link
Contributor

sjorge commented Jun 25, 2023

There is now a 2.2.1 firmware for most devices:
https://www.ubisys.de/en/support/firmware/changelog-c4/

Zigbee Cluster Library

    Added support for read attributes structured and write attributes structured. This enables unlimited configuration options for C4 and other products with programmable input configurations, including four dimmer switches, for instance

Not sure the issue will be solved, but they at least seem to have made a bunch of changes so perhaps the firmware now accepts larger payloads again.

@ahemwe
Copy link

ahemwe commented Jun 25, 2023

Does updating require a special hardware or can this be done out of zigbee2mqtt?

@sjorge
Copy link
Contributor

sjorge commented Jun 25, 2023

Well, it use to just work using zigbee2mqtt but it looks like it got broken a while ago :( Koenkk/zigbee-OTA#329

Someone added a bunch of older firmware to the zigbee-OTA repo and swapped the providers, only the two they forgot to swap it for now show the new update.

@sjorge
Copy link
Contributor

sjorge commented Feb 3, 2024

I have a potential fix for this, anyone available that can test this?

If you are running the februari release you can replace {zigbee2mqtt_dir}/node_modules/zigbee-herdsman-converters/devices/ubisys.js with the file below.

Edit: I might have destroyed my C4 and my testing S1 with this. Please don't test with the code I posted earlier.

@sjorge
Copy link
Contributor

sjorge commented Mar 4, 2024

Got a fixed version up now, only tested against my S1 and S2 but seems fine. Due to a coding error I was writing random data before which bricked one of my devices.

@sjorge
Copy link
Contributor

sjorge commented Mar 7, 2024

This is now fixed in the latest dev release, should be in the april stable release.

@Danit2
Copy link
Author

Danit2 commented Mar 7, 2024

@sjorge cool thanks a lot.
I will test it after the april release. Thanks for your work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
problem Something isn't working stale Stale issues
Projects
None yet
Development

No branches or pull requests

4 participants