Aeotec Nanomote Quad - is this expected behaviour?

  • Platform information:
    • Hardware: Raspi 3 B+
      aeotec nanomote quad
    • OS: openhabian
    • Java Runtime Environment:openjdk version “1.8.0_222”
      OpenJDK Runtime Environment (Zulu8.40.0.178-CA-linux_aarch32hf) (build 1.8.0_222-b178)
      OpenJDK Client VM (Zulu8.40.0.178-CA-linux_aarch32hf) (build 25.222-b178, mixed mode, Evaluation)
    • openHAB version: 2.5.3
  • Issue of the topic:
    I have just received this remote and it added fine. I can see the transactions occurring and I can use them to trigger actions. I can also see the 3 states that the buttons can send. The whole startup process after sleeping is pretty weird with the child lock and whatever happens when you hold buttons in for certain amounts of time but, after it is sending commands it works fine with switching between the states of each button.
    Where I cannot seem to get the command I want is the difference between long press and hold. I cannot get long press to generate anything. It comes through if you hold the button though. At that point it is then recognized as a change between long press and hold. It never sends a long press directly.
    If I press the button 1 time, it sends the [Single Press] command

LOGS:

2020-05-05 06:15:26.880 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 16 03 80 03 64 00 

2020-05-05 06:15:26.887 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 03 80 03 64 

2020-05-05 06:15:26.891 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 03 80 03 64 

2020-05-05 06:15:26.893 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2020-05-05 06:15:26.896 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Application Command Request (ALIVE:DONE)

2020-05-05 06:15:26.898 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: resetResendCount initComplete=true isDead=false

2020-05-05 06:15:26.902 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: Incoming command class COMMAND_CLASS_BATTERY, endpoint 0

2020-05-05 06:15:26.904 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: SECURITY NOT required on COMMAND_CLASS_BATTERY

2020-05-05 06:15:26.908 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 22: Received COMMAND_CLASS_BATTERY V1 BATTERY_REPORT

2020-05-05 06:15:26.911 [DEBUG] [ommandclass.ZWaveBatteryCommandClass] - NODE 22: Battery report value = 100

2020-05-05 06:15:26.913 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got an event from Z-Wave network: ZWaveCommandClassValueEvent

2020-05-05 06:15:26.916 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_BATTERY, value=100

2020-05-05 06:15:26.919 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Updating channel state zwave:device:ce48c1c4:node22:battery-level to 100 [DecimalType]

2020-05-05 06:15:26.923 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Commands processed 1.

2020-05-05 06:15:26.925 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@e9f6b4.

2020-05-05 06:15:26.927 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:15:26.930 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:15:26.932 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2020-05-05 06:15:26.935 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2020-05-05 06:15:26.941 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 16 05 5B 03 1D 80 03 25 

2020-05-05 06:15:26.950 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 05 5B 03 1D 80 03 

2020-05-05 06:15:26.954 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 05 5B 03 1D 80 03 

2020-05-05 06:15:26.957 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2020-05-05 06:15:26.959 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Application Command Request (ALIVE:DONE)

2020-05-05 06:15:26.960 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: resetResendCount initComplete=true isDead=false

2020-05-05 06:15:26.962 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0

2020-05-05 06:15:26.964 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: SECURITY NOT required on COMMAND_CLASS_CENTRAL_SCENE

2020-05-05 06:15:26.966 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 22: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION

2020-05-05 06:15:26.967 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 22: Received scene 3 at key 0 [Single Press]

2020-05-05 06:15:26.970 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got an event from Z-Wave network: ZWaveCommandClassValueEvent

2020-05-05 06:15:26.971 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=3.0

2020-05-05 06:15:26.974 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Updating channel state zwave:device:ce48c1c4:node22:scene_number to 3.0 [DecimalType]

2020-05-05 06:15:26.978 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Commands processed 1.

Then, if you long hold it does not send. I am not sure how long that is exactly but I am assuming it is a couple of seconds because if you hold it any longer the light will come on and that is when the 3rd command is sent. But when the 3rd command is sent, it sends:

2020-05-05 06:25:52.962 [vent.ItemStateChangedEvent] - SceneNumber changed from 3.0 to 3.2

2020-05-05 06:25:52.968 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@169c015.

2020-05-05 06:25:52.973 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:25:52.978 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:25:52.981 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2020-05-05 06:25:52.984 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2020-05-05 06:25:53.200 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 16 05 5B 03 4A 81 03 73 

2020-05-05 06:25:53.204 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 05 5B 03 4A 81 03 

2020-05-05 06:25:53.206 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 05 5B 03 4A 81 03 

2020-05-05 06:25:53.208 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2020-05-05 06:25:53.209 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Application Command Request (ALIVE:DONE)

2020-05-05 06:25:53.211 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: resetResendCount initComplete=true isDead=false

2020-05-05 06:25:53.213 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0

2020-05-05 06:25:53.214 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: SECURITY NOT required on COMMAND_CLASS_CENTRAL_SCENE

2020-05-05 06:25:53.216 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 22: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION

2020-05-05 06:25:53.217 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 22: Received scene 3 at key 1 [Key Released]

2020-05-05 06:25:53.219 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got an event from Z-Wave network: ZWaveCommandClassValueEvent

2020-05-05 06:25:53.221 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=3.1

2020-05-05 06:25:53.223 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Updating channel state zwave:device:ce48c1c4:node22:scene_number to 3.1 [DecimalType]

2020-05-05 06:25:53.226 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Commands processed 1.

2020-05-05 06:25:53.227 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@12f5b8f.

2020-05-05 06:25:53.229 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:25:53.231 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

==> /var/log/openhab2/events.log <==

2020-05-05 06:25:53.233 [vent.ItemStateChangedEvent] - SceneNumber changed from 3.2 to 3.1

==> /var/log/openhab2/openhab.log <==

2020-05-05 06:25:53.233 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2020-05-05 06:25:53.236 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2020-05-05 06:25:53.414 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 16 03 80 03 64 00 

2020-05-05 06:25:53.417 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 03 80 03 64 

2020-05-05 06:25:53.419 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 03 80 03 64 

2020-05-05 06:25:53.421 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2020-05-05 06:25:53.423 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Application Command Request (ALIVE:DONE)

2020-05-05 06:25:53.425 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: resetResendCount initComplete=true isDead=false

2020-05-05 06:25:53.427 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: Incoming command class COMMAND_CLASS_BATTERY, endpoint 0

2020-05-05 06:25:53.429 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 22: SECURITY NOT required on COMMAND_CLASS_BATTERY

2020-05-05 06:25:53.431 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 22: Received COMMAND_CLASS_BATTERY V1 BATTERY_REPORT

2020-05-05 06:25:53.433 [DEBUG] [ommandclass.ZWaveBatteryCommandClass] - NODE 22: Battery report value = 100

2020-05-05 06:25:53.435 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got an event from Z-Wave network: ZWaveCommandClassValueEvent

2020-05-05 06:25:53.437 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_BATTERY, value=100

2020-05-05 06:25:53.440 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 22: Updating channel state zwave:device:ce48c1c4:node22:battery-level to 100 [DecimalType]

2020-05-05 06:25:53.442 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Commands processed 1.

2020-05-05 06:25:53.443 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 22: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@1ddc687.

2020-05-05 06:25:53.445 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:25:53.446 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2020-05-05 06:25:53.448 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2020-05-05 06:25:53.449 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

If you press the same amount of time again, it then sends the change again. It will not ever really land on 3.2. It will change from 3 or 3.1 to 3.2 and then to 3.1. It seems that I can only get 2 states out of the buttons.

Has anyone been able to get the 3 states from the buttons and if so, how?

Thanks in advance!

This is the same behavior I see out of my nano-mote. I don’t think you’re ever really going to be able to take advantage of the X.2 states. As far as I can tell, that state is just the ‘button held down’ indicator state and the X.1 state is the ‘button released’ state. However, because the device won’t send the ‘held down’ state until after the release (presumably because it is waiting to see how long the button is held), you don’t get the X.2 state without it immediately being overridden by the X.1 state.

The tech specs for the device seem to confirm that you really should only expect two functions out of each button. Press and “press and hold”.

Thanks for the information. Seeing the explanation you gave for the press and release and how it reports is exactly the way it happens. 3 is probably too much anyway.
Now I’m just using a case statement with if statements to create toggles of states. With that I can get 2 items with each button.