Homematic Binding rollershutter state 100 or 0

Hi!

When rollershutter “Spielzimmer” gets command DOWN it changes its state direct to 100 then back to 0 then again 100.
If i send the command STOP during the rollershutter is closing it updates the correct actual state (logfile 36%).

Is it possible to constantly get the correct state? Why does the state changes immediatly to 100 after sending the DOWN command?
Background: I want to write a rule, which sends me a notification on my mobile that the rollershutter is really closed after i send a command… I’m sending this notification when STATE == 100. So i’m getting two notifications per command…

Build #954 event.log:
2017-06-19 20:13:25.990 [ItemCommandEvent ] - Item ‘Rolladen_Spielzimmer’ received command DOWN
2017-06-19 20:13:26.384 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 0 to 100
2017-06-19 20:13:26.503 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 100 to 0
2017-06-19 20:13:26.606 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 0 to 100
2017-06-19 20:13:31.970 [ItemCommandEvent ] - Item ‘Rolladen_Spielzimmer’ received command STOP
2017-06-19 20:13:32.300 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 100 to 36
2017-06-19 20:13:43.545 [ItemCommandEvent ] - Item ‘Rolladen_Spielzimmer’ received command UP
2017-06-19 20:13:43.877 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 36 to 0
2017-06-19 20:13:44.056 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 0 to 36
2017-06-19 20:13:44.141 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 36 to 0
2017-06-19 20:13:52.015 [ItemCommandEvent ] - Item ‘Rolladen_Spielzimmer’ received command DOWN
2017-06-19 20:13:52.415 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 100 to 0
2017-06-19 20:13:52.460 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 0 to 100
2017-06-19 20:13:52.497 [ItemStateChangedEvent ] - Rolladen_Spielzimmer changed from 0 to 100

greetings

Dominik

Is it possible to constantly get the correct state? Why does the state changes immediatly to 100 after sending the DOWN command?

This depends on the message sent by the CCU. If there are no messages sent by the CCU the state won’t change. If you enable the DEBUG log and look into the openhab.log you can see what messages were sent by the CCU and then handled by the binding.

Martin

Did this:

openhab.log

2017-06-21 11:43:28.953 [DEBUG] [ematic.handler.HomematicThingHandler] - Received command 'DOWN' for channel 'homematic:HG-HM-LC-Bl1PBU-FM:NEQ:1#LEVEL'
2017-06-21 11:43:29.049 [DEBUG] [ommunicator.AbstractHomematicGateway] - Sending datapoint 'NEQ:1#LEVEL' with value '0.0' to gateway with id ''
2017-06-21 11:43:29.264 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-42' for 'NEQ:0#RSSI_DEVICE' from gateway with id ''
2017-06-21 11:43:29.343 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#RSSI'
2017-06-21 11:43:29.380 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#SIGNAL_STRENGTH'
2017-06-21 11:43:29.433 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '2' for 'NEQ:1#DIRECTION' from gateway with id ''
2017-06-21 11:43:29.468 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '1.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:43:29.541 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'true' for 'NEQ:1#WORKING' from gateway with id ''
2017-06-21 11:43:29.641 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:44:02.226 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-41' for 'NEQ:0#RSSI_DEVICE' from gateway with id ''
2017-06-21 11:44:02.273 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#RSSI'
2017-06-21 11:44:02.293 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#SIGNAL_STRENGTH'
2017-06-21 11:44:02.330 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '0' for 'NEQ:1#DIRECTION' from gateway with id ''
2017-06-21 11:44:02.368 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:44:02.445 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'false' for 'NEQ:1#WORKING' from gateway with id ''

event.log

2017-06-21 11:43:29.008 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100
2017-06-21 11:43:29.290 [ItemCommandEvent          ] - Item 'Rolladen_Buero' received command DOWN
2017-06-21 11:43:29.604 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 100 to 0
2017-06-21 11:43:29.752 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100

merged by timestamp

2017-06-21 11:43:28.953 [DEBUG] [ematic.handler.HomematicThingHandler] - Received command 'DOWN' for channel 'homematic:HG-HM-LC-Bl1PBU-FM:NEQ:1#LEVEL'

2017-06-21 11:43:29.008 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100

2017-06-21 11:43:29.049 [DEBUG] [ommunicator.AbstractHomematicGateway] - Sending datapoint 'NEQ:1#LEVEL' with value '0.0' to gateway with id ''
2017-06-21 11:43:29.264 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-42' for 'NEQ:0#RSSI_DEVICE' from gateway with id ''

2017-06-21 11:43:29.290 [ItemCommandEvent          ] - Item 'Rolladen_Buero' received command DOWN

2017-06-21 11:43:29.343 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#RSSI'
2017-06-21 11:43:29.380 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#SIGNAL_STRENGTH'
2017-06-21 11:43:29.433 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '2' for 'NEQ:1#DIRECTION' from gateway with id ''
2017-06-21 11:43:29.468 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '1.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:43:29.541 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'true' for 'NEQ:1#WORKING' from gateway with id ''

2017-06-21 11:43:29.604 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 100 to 0

2017-06-21 11:43:29.641 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQ:1#LEVEL' from gateway with id ''

2017-06-21 11:43:29.752 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100

2017-06-21 11:44:02.226 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-41' for 'NEQ:0#RSSI_DEVICE' from gateway with id ''
2017-06-21 11:44:02.273 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#RSSI'
2017-06-21 11:44:02.293 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQ:0#SIGNAL_STRENGTH'
2017-06-21 11:44:02.330 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '0' for 'NEQ:1#DIRECTION' from gateway with id ''
2017-06-21 11:44:02.368 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:44:02.445 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'false' for 'NEQ:1#WORKING' from gateway with id ''

I thought that itemstate is only updated when #WORKING is set to false and the state changes.
So why is first event 0 to 100 fired and why is it set back to 0 with the second event.

For me the eventlog must have two entries for one command to a rollershutter:

“received command DOWN”
“changed from 0 (or whatever) to 100”

First of all a simple question: which version of the binding are you using?

I see several things that confuse me:

  • the CCU sends strange values for LEVEL. It changes from 0.0 to 1.0 to 0.0 and then there is another value of 0.0 received and I don’t understand yet why the last LEVEL value appears as “new value” because it did not change its value.
  • the ItemStateChangedEvents are really looking strange. Normally the binding only reacts on the received messages. But I have seen that there is some special handling for rollershutters.
  • the messages regarding the missing channels are also a bit strange.

Can you please try the following:

  • delete the rollershutter item, start a new discovery and add it again. Did the messages regarding the missing channels disappear?
  • did the ItemStateChangeEvents also change after recreating the item?

If nothing has changed, please create a new log with log level TRACE. This will give more information and will contain also the messages from the CCU.

HI Matin!

I’m using the version:

185 | Active | 80 | 2.1.0.201706211311 | Homematic Binding

with homegear 0.7.2-1207

It seems that an event is fired when the binding converts the value to FLOAT. I assume that this is the cause that a state change is BEFORE “Received command DOWN” in events.log.

I deleted the binding and reinstalled it.
The missing channels is a bug with slow systems (eg RPI) and there is another thread in the forum.

Here is the TRACE:

events.log

2017-06-22 08:34:38.689 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100
2017-06-22 08:34:39.022 [ItemCommandEvent          ] - Item 'Rolladen_Buero' received command DOWN
2017-06-22 08:34:39.279 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 100 to 0
2017-06-22 08:34:39.480 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100

openhab.log

2017-06-22 08:33:56.976 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:33:56.990 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:33:57.005 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

2017-06-22 08:34:12.014 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:34:12.057 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:34:12.073 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

2017-06-22 08:34:27.084 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:34:27.098 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:34:27.124 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

2017-06-22 08:34:38.613 [DEBUG] [ematic.handler.HomematicThingHandler] - Received command 'DOWN' for channel 'homematic:HG-HM-LC-Bl1PBU-FM:aXXXXXXX:NEQXXXXXXX:1#LEVEL'
2017-06-22 08:34:38.664 [TRACE] [converter.type.AbstractTypeConverter] - Converting type UpDownType with value 'DOWN' to FLOAT value with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'
2017-06-22 08:34:38.709 [TRACE] [converter.type.AbstractTypeConverter] - Converting type PercentType with value '100' to FLOAT value with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'
2017-06-22 08:34:38.737 [DEBUG] [ommunicator.AbstractHomematicGateway] - Sending datapoint 'NEQXXXXXXX:1#LEVEL' with value '0.0' to gateway with id 'aXXXXXXX'
2017-06-22 08:34:38.764 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
setValue()
NEQXXXXXXX:1
LEVEL
0.0

2017-06-22 08:34:38.773 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:34:38.970 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:0
			RSSI_DEVICE
			-42
		]
	}
]

2017-06-22 08:34:38.996 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:


2017-06-22 08:34:39.013 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-42' for 'NEQXXXXXXX:0#RSSI_DEVICE' from gateway with id 'aXXXXXXX'
2017-06-22 08:34:39.061 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQXXXXXXX:0#RSSI'
2017-06-22 08:34:39.082 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQXXXXXXX:0#SIGNAL_STRENGTH'
2017-06-22 08:34:39.117 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			DIRECTION
			2
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			LEVEL
			1.0
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			WORKING
			true
		]
	}
]

2017-06-22 08:34:39.134 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '2' for 'NEQXXXXXXX:1#DIRECTION' from gateway with id 'aXXXXXXX'
2017-06-22 08:34:39.168 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '1.0' for 'NEQXXXXXXX:1#LEVEL' from gateway with id 'aXXXXXXX'
2017-06-22 08:34:39.208 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '1.0' with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'
2017-06-22 08:34:39.242 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'true' for 'NEQXXXXXXX:1#WORKING' from gateway with id 'aXXXXXXX'
2017-06-22 08:34:39.324 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			LEVEL
			0.0
		]
	}
]

2017-06-22 08:34:39.355 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQXXXXXXX:1#LEVEL' from gateway with id 'aXXXXXXX'
2017-06-22 08:34:39.387 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '0.0' with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'
2017-06-22 08:34:42.135 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:34:42.146 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:34:42.163 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

2017-06-22 08:34:57.185 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:34:57.194 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:34:57.209 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

2017-06-22 08:35:03.016 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			LEQ1344572:0
			RSSI_DEVICE
			-57
		]
	}
]

2017-06-22 08:35:03.032 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-57' for 'LEQ1344572:0#RSSI_DEVICE' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:03.063 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'LEQ1344572:0#RSSI'
2017-06-22 08:35:03.088 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'LEQ1344572:0#SIGNAL_STRENGTH'
2017-06-22 08:35:03.125 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			LEQ1344572:2
			CURRENT
			0.0
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			LEQ1344572:2
			ENERGY_COUNTER
			0.0
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			LEQ1344572:2
			FREQUENCY
			50.01
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			LEQ1344572:2
			POWER
			0.0
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			LEQ1344572:2
			VOLTAGE
			237.6
		]
	}
]

2017-06-22 08:35:03.135 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'LEQ1344572:2#CURRENT' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:03.150 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'LEQ1344572:2#ENERGY_COUNTER' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:03.173 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '50.01' for 'LEQ1344572:2#FREQUENCY' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:03.191 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'LEQ1344572:2#POWER' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:03.204 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '0.0' with DecimalTypeConverter for 'LEQ1344572:2#POWER'
2017-06-22 08:35:03.228 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '237.6' for 'LEQ1344572:2#VOLTAGE' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:12.106 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:0
			RSSI_DEVICE
			-41
		]
	}
]

2017-06-22 08:35:12.125 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '-41' for 'NEQXXXXXXX:0#RSSI_DEVICE' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:12.146 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQXXXXXXX:0#RSSI'
2017-06-22 08:35:12.159 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'NEQXXXXXXX:0#SIGNAL_STRENGTH'
2017-06-22 08:35:12.183 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			DIRECTION
			0
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			LEVEL
			0.0
		]
	}
	{
		methodName=event
		params=
		[
			RF-aXXXXXXX
			NEQXXXXXXX:1
			WORKING
			false
		]
	}
]

2017-06-22 08:35:12.204 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '0' for 'NEQXXXXXXX:1#DIRECTION' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:12.219 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:35:12.222 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQXXXXXXX:1#LEVEL' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:12.234 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:35:12.249 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '0.0' with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'
2017-06-22 08:35:12.270 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

2017-06-22 08:35:12.309 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'false' for 'NEQXXXXXXX:1#WORKING' from gateway with id 'aXXXXXXX'
2017-06-22 08:35:27.296 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-06-22 08:35:27.305 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-06-22 08:35:27.321 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=VBC2688033
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=Homegear default BidCoS interface
	}
]

@gerrieg can you have a look? I have checked the trace and I assume on of these conversions is too much and causes to many (and maybe wrong) events:

2017-06-22 08:34:38.664 [TRACE] [converter.type.AbstractTypeConverter] - Converting type UpDownType with value 'DOWN' to FLOAT value with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'
2017-06-22 08:34:38.709 [TRACE] [converter.type.AbstractTypeConverter] - Converting type PercentType with value '100' to FLOAT value with PercentTypeConverter for 'NEQXXXXXXX:1#LEVEL'

Thank you for the info @MHerbst, i will look at it in the next days

The two conversions are correct, in fact there is only one with two trace logs. The first conversion is for the command to a PercentType, the second for the PercentType to a double value for the gateway.

This is the DOWN command, the item is changed to 100% and the value is sent to the gateway:

2017-06-21 11:43:29.008 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100
2017-06-21 11:43:29.049 [DEBUG] [ommunicator.AbstractHomematicGateway] - Sending datapoint 'NEQ:1#LEVEL' with value '0.0' to gateway with id ''

Now, the gateway sends the current state 0%:

2017-06-21 11:43:29.468 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '1.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:43:29.604 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 100 to 0

and then the new one 100%

2017-06-21 11:43:29.641 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '0.0' for 'NEQ:1#LEVEL' from gateway with id ''
2017-06-21 11:43:29.752 [ItemStateChangedEvent     ] - Rolladen_Buero changed from 0 to 100

I also don’t like this behaviour, some weeks ago i tried to suppress some events based on the WORKING and/or DIRECTION values. But it’s impossible, because the sequence of these events are random and can also be split into multiple events.

fyi: to remove these warnings, remove and readd the thing, this is not the ‘slow system’ problem:

2017-06-22 08:35:03.063 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'LEQ1344572:0#RSSI'
2017-06-22 08:35:03.088 [WARN ] [ematic.handler.HomematicThingHandler] - Channel not found for datapoint 'LEQ1344572:0#SIGNAL_STRENGTH'

Hi Gerhard,

thanks for your anwer.
I think there is only one event,which is not nessesary:

2017-06-21 11:43:29.008 [ItemStateChangedEvent ] - Rolladen_Buero changed from 0 to 100

Why is the rollershutter set to 100 before the DOWN command is sent to the device?

I think, if the first event isnt fired the second event wouldnt occur.?! So everything would be fine.

That’s the OH framework itself as a reaction of the DOWN command. It sets the new value and then informs the binding. The binding is not involved in the first StateChangedEvent.

OK, understood…

Is it possible to supress this first event or in other words: Is it possible to trigger a rule only on the final state change, when the rollershutter has sent its answer to homegear/binding?

I know no possibility at the moment, as I have mentioned, i’ve tested this a while ago with a cache in the binding and with the consideration of the WORKING and DIRECTION channels. But the gateway sends it in a random order, the only way is to cache the value from the gateway some seconds, and if no other value arrives, post only the last one to the event bus. But then you have the disadvantage of a delay of some seconds.

I’ll think about it in detail and possibly add a channel property something like receive-delay similar to the send-delay.

That bothers me too, because the sliders are jumping around in the UI’s.

1 Like

Implemented a receiveDelay channel property with this PR

Readme