ZWave Binding - Aeotec Wall Mote Channel issue

Hi @chris

As reported here Github Issue, are you able to update the binding to fix this issue? Seems its been around a while

When sending a command, the log shows:


18:29:07.798 [WARN ] [verter.ZWaveMultiLevelSwitchConverter] - No conversion in ZWaveMultiLevelSwitchConverter to StringType

Thank you!

What command are you trying to send? The problem with strings is they can be anything - so how does the binding know how to convert random text to a number? Or are you sending a number as a string?

1 Like

Hi Chris

Heā€™s an example, we send a scene number


rule "Aeotec 'WallMote' - Kitchen"
when
        Item Kitchen_AeoButton_Scene received update
then
        var int sceneNumber = Kitchen_AeoButton_Scene.state as DecimalType

        switch (sceneNumber) {

        case 1.0 : {
            logInfo("Aeotec Button Kitchen", "single press: " + sceneNumber)
            if (KitchenBarDim1.state == OFF) {
               KitchenBarDim1.sendCommand(ON)
               }
            else if (KitchenBarDim1.state == ON) {
               KitchenBarDim1.sendCommand(OFF)
               }
        }

You canā€™t send a scene number to the switch, but it also doesnā€™t look like thatā€™s what you are doing. It looks like you are sending ON or OFF so this should not be a string should it?

Pretty sure Iā€™m sending a number, in this case 1.0

What line sends this number in your rule? I can onlt see ON and OFF commands being sent?

If you are trying to set a scene with this channel, that wonā€™t work, but Iā€™m also still confused why a String is being received in the binding.

Not sure Chris, did you see the github link? thats a better source than me

I did see the link, but I was responding to you when you asked why this hasnā€™t progressed and the answer is that I wanted to know why you are sending strings to this channel as it is not really normal. If you send a string the binding needs to try and convert this - you should send a number/dimmer or on/off.

OK, Iā€™m confused where are the strings iā€™m sending?

I see ON,OFF in the sendcommands

Iā€™m trying to understand your issue. What exactly is using strings here? What channel are you using? I am having trouble trying to understand what you are doing and hence what the issue is.

These are the channels:


/*ZWave Aeotec WallMote Kitchen */
Number Kitchen_AeoButton_Scene     "Aeotec Kitchen Button"             (PubItems_UPD)                                                       { channel="zwave:device:12c97eda:node17:scene_number" }
Number Kitchen_AeoButton_Battery   "Aeotec Kitchen Battery"            (gBatteries,PubItems_UPD)                                            { channel="zwave:device:12c97eda:node17:battery-level" }
String Kitchen_AeoButton_Slide1    "Aeotec Kitchen #1 Button"          (PubItems_UPD)                                                       { channel="zwave:device:12c97eda:node17:switch_startstop1" }
String Kitchen_AeoButton_Slide2    "Aeotec Kitchen #2 Button"          (PubItems_UPD)                                                       { channel="zwave:device:12c97eda:node17:switch_startstop2" }
String Kitchen_AeoButton_Slide3    "Aeotec Kitchen #3 Button"          (PubItems_UPD)                                                       { channel="zwave:device:12c97eda:node17:switch_startstop3" }
String Kitchen_AeoButton_Slide4    "Aeotec Kitchen #4 Button"          (PubItems_UPD)                                                       { channel="zwave:device:12c97eda:node17:switch_startstop4" }

Here is the rule:

ule "Aeotec 'WallMote' - Kitchen"
when
        Item Kitchen_AeoButton_Scene received update
then
        var int sceneNumber = Kitchen_AeoButton_Scene.state as DecimalType

        switch (sceneNumber) {

        case 1.0 : {
            logInfo("Aeotec Button Kitchen", "single press: " + sceneNumber)
            if (KitchenBarDim1.state == OFF) {
               KitchenBarDim1.sendCommand(ON)
               }
            else if (KitchenBarDim1.state == ON) {
               KitchenBarDim1.sendCommand(OFF)
               }
        }
        case 2.0 : {
            logInfo("Aeotec Button Kitchen", "single press: " + sceneNumber)
            if (KitchenDim1.state == OFF) {
               KitchenDim1.sendCommand(ON)
               }
            else if (KitchenDim1.state == ON) {
               KitchenDim1.sendCommand(OFF)
               }
        }
        case 3.0 : {
            logInfo("Aeotec Button Kitchen", "single press: " + sceneNumber)
            if (LivingRoomDim1.state == OFF) {
               LivingRoomDim.sendCommand(ON)
               }
            else if (LivingRoomDim1.state == ON) {
               LivingRoomDim1.sendCommand(OFF)
               }
        }
        case 4.0 : {
            logInfo("Aeotec Button Kitchen", "single press: " + sceneNumber)
            if (BackEveDim1.state == OFF) {
               BackEveDim1.sendCommand(ON)
               }
            else if (BackEveDim1.state == ON) {
               BackEveDim1.sendCommand(OFF)
               }
        }


}
end

And here is the error:

No conversion in ZWaveMultiLevelSwitchConverter to StringType

Iā€™m sending numbers, yet its complaining about strings as it has for other users. Hopefully that helps

Can you also provide a log please?

Is this enough?


2021-10-03 07:01:57.367 [DEBUG] [wave.handler.ZWaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0F 00 04 00 11 09 60 0D 00 01 5B 03 03 00 02 D9
2021-10-03 07:01:57.368 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=17, callback=0, payload=00 11 09 60 0D 00 01 5B 03 03 00 02
2021-10-03 07:01:57.368 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=17, callback=0, payload=00 11 09 60 0D 00 01 5B 03 03 00 02
2021-10-03 07:01:57.370 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - lastTransaction null
2021-10-03 07:01:57.370 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Application Command Request (ALIVE:DONE)
2021-10-03 07:01:57.371 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: resetResendCount initComplete=true isDead=false
2021-10-03 07:01:57.371 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: Decapsulating COMMAND_CLASS_MULTI_CHANNEL
2021-10-03 07:01:57.371 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0
2021-10-03 07:01:57.372 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: SECURITY not supported
2021-10-03 07:01:57.372 [DEBUG] [e.internal.protocol.commandclass.ZWaveCommandClass] - NODE 17: Received COMMAND_CLASS_CENTRAL_SCENE V2 CENTRAL_SCENE_NOTIFICATION
2021-10-03 07:01:57.372 [DEBUG] [rotocol.commandclass.ZWaveCentralSceneCommandClass] - NODE 17: Received scene 2 at key 0 [Single Press]
2021-10-03 07:01:57.373 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2021-10-03 07:01:57.373 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=2.0
2021-10-03 07:01:57.373 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Updating channel state zwave:device:12c97eda:node17:scene_number to 2.0 [DecimalType]
2021-10-03 07:01:57.374 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Commands processed 1.
2021-10-03 07:01:57.374 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@47c8e0bd.
2021-10-03 07:01:57.375 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-10-03 07:01:57.375 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-10-03 07:01:57.375 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2021-10-03 07:01:57.375 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2021-10-03 07:01:57.431 [DEBUG] [wave.handler.ZWaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0E 00 04 00 11 08 60 0D 02 01 26 01 FF FF A5
2021-10-03 07:01:57.432 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=17, callback=0, payload=00 11 08 60 0D 02 01 26 01 FF FF
2021-10-03 07:01:57.432 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=17, callback=0, payload=00 11 08 60 0D 02 01 26 01 FF FF
2021-10-03 07:01:57.432 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - lastTransaction null
2021-10-03 07:01:57.432 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Application Command Request (ALIVE:DONE)
2021-10-03 07:01:57.433 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: resetResendCount initComplete=true isDead=false
2021-10-03 07:01:57.433 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: Decapsulating COMMAND_CLASS_MULTI_CHANNEL
2021-10-03 07:01:57.433 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: Incoming command class COMMAND_CLASS_SWITCH_MULTILEVEL, endpoint 2
2021-10-03 07:01:57.433 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: SECURITY not supported
2021-10-03 07:01:57.433 [DEBUG] [e.internal.protocol.commandclass.ZWaveCommandClass] - NODE 17: Received COMMAND_CLASS_SWITCH_MULTILEVEL V0 SWITCH_MULTILEVEL_SET
2021-10-03 07:01:57.433 [DEBUG] [col.commandclass.ZWaveMultiLevelSwitchCommandClass] - NODE 17: Switch Multi Level set, value = 255
2021-10-03 07:01:57.434 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2021-10-03 07:01:57.434 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint=2, command class=COMMAND_CLASS_SWITCH_MULTILEVEL, value=255
2021-10-03 07:01:57.434 [WARN ] [.internal.converter.ZWaveMultiLevelSwitchConverter] - No conversion in ZWaveMultiLevelSwitchConverter to StringType
2021-10-03 07:01:57.434 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Commands processed 1.
2021-10-03 07:01:57.434 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@78619e31.
2021-10-03 07:01:57.435 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-10-03 07:01:57.435 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-10-03 07:01:57.435 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2021-10-03 07:01:57.435 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2021-10-03 07:02:01.246 [DEBUG] [wave.handler.ZWaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0F 00 04 00 11 09 60 0D 00 01 5B 03 04 00 01 DD
2021-10-03 07:02:01.247 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=17, callback=0, payload=00 11 09 60 0D 00 01 5B 03 04 00 01
2021-10-03 07:02:01.247 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=17, callback=0, payload=00 11 09 60 0D 00 01 5B 03 04 00 01
2021-10-03 07:02:01.247 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - lastTransaction null
2021-10-03 07:02:01.247 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Application Command Request (ALIVE:DONE)
2021-10-03 07:02:01.248 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: resetResendCount initComplete=true isDead=false
2021-10-03 07:02:01.248 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: Decapsulating COMMAND_CLASS_MULTI_CHANNEL
2021-10-03 07:02:01.248 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0
2021-10-03 07:02:01.248 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 17: SECURITY not supported
2021-10-03 07:02:01.248 [DEBUG] [e.internal.protocol.commandclass.ZWaveCommandClass] - NODE 17: Received COMMAND_CLASS_CENTRAL_SCENE V2 CENTRAL_SCENE_NOTIFICATION
2021-10-03 07:02:01.249 [DEBUG] [rotocol.commandclass.ZWaveCentralSceneCommandClass] - NODE 17: Received scene 1 at key 0 [Single Press]
2021-10-03 07:02:01.249 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2021-10-03 07:02:01.249 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=1.0
2021-10-03 07:02:01.249 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 17: Updating channel state zwave:device:12c97eda:node17:scene_number to 1.0 [DecimalType]
2021-10-03 07:02:01.250 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Commands processed 1.
2021-10-03 07:02:01.250 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 17: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@1ca78649.
2021-10-03 07:02:01.250 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-10-03 07:02:01.250 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-10-03 07:02:01.250 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

Yes, thanks. So this is caused by the start/stop channels when the device sends an update about its value so this can be ignored. Probably the StopMove channel is incorrectly defined in the config as a String and this should be changed (although the error will still occur since this is a command only channel).

Iā€™ll try and find a way to ignore this so the error is not generated.

This ought to resolve it, although only once the channel is redefined which requires removing and re-adding the thing. In the meantime, you can safely ignore the message in the log.

Hi Chris, are you saying all of it is cosmetic only or there was/is an actual issue?

Correct. The issue was simply that when the device sends its status, this gets processed by all channels on this thing. In this case, it makes no sense for the value of the dimmer to be converted to a StartStop state, so nothing is done, however since the startstop channel was incorrectly defined as a String, we saw this error.

The start stop channel is only used for sending commands to the device, and the channel type doesnā€™t matter in this direction - the type defined in the configuration is only an issue for received data.

So, yes, itā€™s not a real issue, just an annoying log entry that will soon be gone.

Ah! Bizzare, cause it doesnā€™t work but anyway thatā€™s my issue it seems to fix. Odd the github comments suggested they had to implement some fixā€¦ which is strange if its only cosmetic.

So what exactly ā€œdoesnā€™t workā€? You never actually said what your problem was other than sending of commands gives this error in the log. However this error is actually not related to sending commands - itā€™s the handling of received events from the device.

The light doesnt turn on when pressing the button on the remote since moving to OH3.

The rule etc works all fine if its turning on/off a switch, but wont work if its a dimmer type

It seems like in the rule logic, i canā€™t send OFF or ON, only 0 or 100 which isnā€™t great if you want to send ON to go to the last known dim state