Silvercrfest Smartbutton

Hi everybody,

I hope I picked the right category for my 1st question :wink: I’m playing around with OpenHab for a while now. I run Openhab 3.3. in a docker container on a Raspi and I use the zigbee binding together with a hacked Silvecreast Zigbee GW.

I tried to integrate some nice Silvercrest/Lidl Smartbuttons (SILVERCREST Smart Button, mit magnetischer Wandhalteru…). I can pair the button and it shows-up as Model TS004F from vendor _TZ3000_rco1yzb1 in OpenHab.

From my understanding this SmartButton is a simple on/off switch. I was surprised that it registered as as Dimmer switch. I can see four channels - three for battery management and one “Dimmer_Switch:Level Control”.

Anyway - when I press the button OpenHAB does not seem to receive anything from the device. When I try to read the status by script it always returns “NULL”… My impression is, the channels of this item do not match the device - is there something I can do to fix this? Anybody else Who successfully managed to utilize a Sivercrest SmartButton with OpenHab?

Thanks a lot in advance :wink:

It does have dimming. Says so right on the product page:

Now I’m wondering if it does what it says it does…
Check the logs and start pressing buttons to see what openHAB is getting.
It will be easier to answer if we can see that.

I have the same button successfully paired with zigbee2mqtt.

The button just has one relevant action channel with possible values on (single press), off (double press) and brightness_step_up / brightness_step_down (long press)

The brightness message is misleading, as the button sends the brightness messages every few seconds if you keep pressing the button. In addition the message is flipping between step_up and step_down and you cannot configure when it will change between up or down.

Just assuming that the “action” from z2m is the same as the dimmer channel in OH, I would try and link a string item to the channel

Thanks for the prompt feedback!

I enabled logging (

log:set debug org.openhab.binding.zigbee
log:set debug com.zsmartsystems.zigbee
log:set info com.zsmartsystems.zigbee.dongle.ember.internal.ash

)

When I push the button short - I receive the actions you can see in the log below. When I push the button long - nothing happens at all ;-( I’ve multiple buttons and all seem to behave the same.

2022-10-24 17:18:27.919 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspIncomingRouteRecordHandler [networkId=0, source=37C0, sourceEui=2C1165FFFEC32DFB, lastHopLqi=152, lastHopRssi=-62, relayList=0000]
2022-10-24 17:18:27.940 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspIncomingMessageHandler [networkId=0, type=EMBER_INCOMING_UNICAST, apsFrame=EmberApsFrame [profileId=0104, clusterId=0006, sourceEndpoint=1, destinationEndpoint=1, options=[EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY], groupId=0, sequence=3F], lastHopLqi=152, lastHopRssi=-62, sender=37C0, bindingIndex=255, addressIndex=255, messageContents=01 14 FD 00]
2022-10-24 17:18:27.941 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - RX APS: ZigBeeApsFrame [sourceAddress=37C0/1, destinationAddress=0000/1, profile=0104, cluster=0006, addressMode=DEVICE, radius=0, apsSecurity=false, ackRequest=false, apsCounter=3F, rssi=-62, lqi=98, payload=01 14 FD 00]
2022-10-24 17:18:27.943 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - 2C1165FFFEC32DFB: Node update. NWK Address=NULL
2022-10-24 17:18:27.944 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - 2C1165FFFEC32DFB: Node 37C0 is not updated from ZigBeeNode [state=ONLINE, IEEE=2C1165FFFEC32DFB, NWK=----, endpoints=[]]
2022-10-24 17:18:27.945 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - RX ZCL: ZclHeader [frameType=CLUSTER_SPECIFIC_COMMAND, manufacturerSpecific=false, direction=CLIENT_TO_SERVER, disableDefaultResponse=false, manufacturerCode=0, sequenceNumber=14, commandId=253]
2022-10-24 17:18:27.946 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - 2C1165FFFEC32DFB: Unknown command 253
2022-10-24 17:18:27.947 [DEBUG] [e.transaction.ZigBeeTransactionQueue] - 2C1165FFFEC32DFB: Added transaction to queue, len=1, transaction=ZigBeeTransaction [ieeeAddress=2C1165FFFEC32DFB queueTime=0, state=WAITING, sendCnt=0, command=DefaultResponse [On/Off: 0000/0 → 37C0/1, cluster=0006, TID=14, commandIdentifier=253, statusCode=FAILURE]]
2022-10-24 17:18:27.948 [DEBUG] [transaction.ZigBeeTransactionManager] - Transaction Manager: Send Next transaction. outstandingTransactions=0, outstandingQueues=1, sleepy=0/3
2022-10-24 17:18:27.949 [DEBUG] [transaction.ZigBeeTransactionManager] - 37C0/1: Sending ZigBeeTransaction [ieeeAddress=2C1165FFFEC32DFB queueTime=2, state=WAITING, sendCnt=0, command=DefaultResponse [On/Off: 0000/0 → 37C0/1, cluster=0006, TID=14, commandIdentifier=253, statusCode=FAILURE]]
2022-10-24 17:18:27.950 [DEBUG] [transaction.ZigBeeTransactionManager] - transactionListenerAdded: 1 outstanding
2022-10-24 17:18:27.952 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - TX CMD: DefaultResponse [On/Off: 0000/0 → 37C0/1, cluster=0006, TID=14, commandIdentifier=253, statusCode=FAILURE]
2022-10-24 17:18:27.953 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - TX ZCL: ZclHeader [frameType=ENTIRE_PROFILE_COMMAND, manufacturerSpecific=false, direction=SERVER_TO_CLIENT, disableDefaultResponse=true, manufacturerCode=0, sequenceNumber=14, commandId=11]
2022-10-24 17:18:27.954 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - TX APS: ZigBeeApsFrame [sourceAddress=0000/1, destinationAddress=37C0/1, profile=0104, cluster=0006, addressMode=DEVICE, radius=8, apsSecurity=false, ackRequest=true, apsCounter=5E, rssi=–, lqi=–, payload=18 14 0B FD 01]
2022-10-24 17:18:27.955 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - Incoming message from node 37C0 did not translate to command
2022-10-24 17:18:28.009 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspSendUnicastResponse [networkId=0, status=EMBER_SUCCESS, sequence=88]
2022-10-24 17:18:28.127 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspIncomingRouteRecordHandler [networkId=0, source=37C0, sourceEui=2C1165FFFEC32DFB, lastHopLqi=152, lastHopRssi=-62, relayList=0000]
2022-10-24 17:18:28.148 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspMessageSentHandler [networkId=0, type=EMBER_OUTGOING_DIRECT, indexOrDestination=37C0, apsFrame=EmberApsFrame [profileId=0104, clusterId=0006, sourceEndpoint=1, destinationEndpoint=1, options=[EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY, EMBER_APS_OPTION_RETRY, EMBER_APS_OPTION_ENABLE_ADDRESS_DISCOVERY], groupId=0, sequence=88], messageTag=14, status=EMBER_SUCCESS, messageContents=]
2022-10-24 17:18:28.149 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - RX STA: msgTag=14 state=RX_ACK
2022-10-24 17:18:28.149 [DEBUG] [transaction.ZigBeeTransactionManager] - notifyTransactionProgress: TID=14, state=RX_ACK, outstanding=1
2022-10-24 17:18:28.150 [DEBUG] [transaction.ZigBeeTransactionManager] - Transaction complete: ZigBeeTransaction [ieeeAddress=2C1165FFFEC32DFB queueTime=203, state=COMPLETE, sendCnt=1, command=DefaultResponse [On/Off: 0000/0 → 37C0/1, cluster=0006, TID=14, commandIdentifier=253, statusCode=FAILURE]]
2022-10-24 17:18:28.151 [DEBUG] [transaction.ZigBeeTransactionManager] - transactionListenerRemoved: 0 outstanding
2022-10-24 17:18:28.151 [DEBUG] [e.transaction.ZigBeeTransactionQueue] - 2C1165FFFEC32DFB: transactionComplete, state=COMPLETE, outstanding=0
2022-10-24 17:18:28.152 [DEBUG] [transaction.ZigBeeTransactionManager] - Transaction Manager: Send Next transaction. outstandingTransactions=0, outstandingQueues=0, sleepy=0/3
2022-10-24 17:18:28.152 [DEBUG] [zigbee.transaction.ZigBeeTransaction] - Transaction state changed: nwk=37C0, TID=14, event=RX_ACK, state=COMPLETE

This is what is exposed through zigbee2mqtt

Here you go:
Action (enum)

Triggered action (e.g. a button click). Value can be found in the published state on the actionproperty. It’s not possible to read (/get) or write (/set) this value.
The possible values are:
on, off,
brightness_stop,
brightness_step_up, brightness_step_down

You have to look at the logs.
You should be getting a json payload that you need to parse for the values you need.

Can you look at the log. Press the button a bunch of times, and share the log here?

Hello everybody, i also got one of the Silvercrest SmartButtons and would like to use it with Openhab.

I enabled the logging for zigbee:

log:set debug org.openhab.binding.zigbee
log:set debug com.zsmartsystems.zigbee
log:set info com.zsmartsystems.zigbee.dongle.ember.internal.ash

And the logs pretty much look like the one posted by Stefan. After looking at several button pushes i figured out what might be the difference between a single button press and a double button press.

Single button press:

2022-12-28 15:27:00.093 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspIncomingMessageHandler [networkId=0, type=EMBER_INCOMING_UNICAST, apsFrame=EmberApsFrame [profileId=0104, clusterId=0006, sourceEndpoint=1, destinationEndpoint=1, options=[EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY], groupId=0, sequence=3E], lastHopLqi=44, lastHopRssi=-89, sender=7C10, bindingIndex=255, addressIndex=255, messageContents=01 63 FD 00]
2022-12-28 15:27:00.102 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - RX APS: ZigBeeApsFrame [sourceAddress=7C10/1, destinationAddress=0000/1, profile=0104, cluster=0006, addressMode=DEVICE, radius=0, apsSecurity=false, ackRequest=false, apsCounter=3E, rssi=-89, lqi=2C, payload=01 63 FD 00]

The messageContent=01 63 FD 00 and the payload=01 63 FD 00 end with 00 for a single press.

Double button Press:

2022-12-28 15:28:55.004 [DEBUG] [zigbee.dongle.ember.ZigBeeDongleEzsp] - RX EZSP: EzspIncomingMessageHandler [networkId=0, type=EMBER_INCOMING_UNICAST, apsFrame=EmberApsFrame [profileId=0104, clusterId=0006, sourceEndpoint=1, destinationEndpoint=1, options=[EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY], groupId=0, sequence=3F], lastHopLqi=64, lastHopRssi=-84, sender=7C10, bindingIndex=255, addressIndex=255, messageContents=01 64 FD 01]
2022-12-28 15:28:55.007 [DEBUG] [tsystems.zigbee.ZigBeeNetworkManager] - RX APS: ZigBeeApsFrame [sourceAddress=7C10/1, destinationAddress=0000/1, profile=0104, cluster=0006, addressMode=DEVICE, radius=0, apsSecurity=false, ackRequest=false, apsCounter=3F, rssi=-84, lqi=40, payload=01 64 FD 01]

The messageContents=01 64 FD 01 and the payload=01 64 FD 01 end with 01 for a double press.

Does that observation make sense? How can i use it? Where/How can i parse it?

As Stefan said a long button press for dimming doesn’t show up in the logs at all, so i can’t say anything new about that.