HomeMatic Weather Station HM-WDS100-C6-O-2


(Slavisa Lukic) #1

It seems that some data points (rain today, rain yesterday) of this thing are stored in system variables and are not visible in Thing’s Channels generated through PaperUI.
Would it be possible to be insourced as a standard channel, or does anybody know how to access this value and get the actual value without refreshing over GatewayExtras.

<state>
<device name="Dach Wetterstation" ise_id="4964" unreach="false" sticky_unreach="true" config_pending="false">
<channel name="Dach Wetterstation:0" ise_id="4965">
<datapoint name="BidCos-RF.NEQ0344045:0.UNREACH" type="UNREACH" ise_id="4984" value="false" valuetype="2" valueunit="" timestamp="1497290694"/>
<datapoint name="BidCos-RF.NEQ0344045:0.STICKY_UNREACH" type="STICKY_UNREACH" ise_id="4980" value="true" valuetype="2" valueunit="" timestamp="1497289562"/>
<datapoint name="BidCos-RF.NEQ0344045:0.CONFIG_PENDING" type="CONFIG_PENDING" ise_id="4966" value="false" valuetype="2" valueunit="" timestamp="1499706085"/>
<datapoint name="BidCos-RF.NEQ0344045:0.LOWBAT" type="LOWBAT" ise_id="4974" value="false" valuetype="2" valueunit="" timestamp="1499706085"/>
<datapoint name="BidCos-RF.NEQ0344045:0.RSSI_DEVICE" type="RSSI_DEVICE" ise_id="4978" value="1" valuetype="8" valueunit="" timestamp="1499706085"/>
<datapoint name="BidCos-RF.NEQ0344045:0.RSSI_PEER" type="RSSI_PEER" ise_id="4979" value="205" valuetype="8" valueunit="" timestamp="1499706085"/>
<datapoint name="BidCos-RF.NEQ0344045:0.DEVICE_IN_BOOTLOADER" type="DEVICE_IN_BOOTLOADER" ise_id="4970" value="false" valuetype="2" valueunit="" timestamp="1499706085"/>
<datapoint name="BidCos-RF.NEQ0344045:0.UPDATE_PENDING" type="UPDATE_PENDING" ise_id="4988" value="false" valuetype="2" valueunit="" timestamp="1499706085"/>
</channel>
<channel name="HM-WDS100-C6-O-2 NEQ0344045:1" ise_id="4992">
<datapoint name="BidCos-RF.NEQ0344045:1.TEMPERATURE" type="TEMPERATURE" ise_id="4998" value="25.900000" valuetype="4" valueunit="°C" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.HUMIDITY" type="HUMIDITY" ise_id="4994" value="67" valuetype="16" valueunit="%" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.RAINING" type="RAINING" ise_id="4995" value="false" valuetype="2" valueunit="" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.RAIN_COUNTER" type="RAIN_COUNTER" ise_id="4996" value="215.055000" valuetype="4" valueunit="mm" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.WIND_SPEED" type="WIND_SPEED" ise_id="5001" value="6.700000" valuetype="4" valueunit="km/h" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.WIND_DIRECTION" type="WIND_DIRECTION" ise_id="4999" value="275" valuetype="16" valueunit="degree" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.WIND_DIRECTION_RANGE" type="WIND_DIRECTION_RANGE" ise_id="5000" value="67" valuetype="16" valueunit="degree" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.SUNSHINEDURATION" type="SUNSHINEDURATION" ise_id="4997" value="252" valuetype="16" valueunit="" timestamp="1499706031"/>
<datapoint name="BidCos-RF.NEQ0344045:1.BRIGHTNESS" type="BRIGHTNESS" ise_id="4993" value="103" valuetype="16" valueunit="" timestamp="1499706031"/>
<datapoint name="${sysVarRainToday}" type="" ise_id="5002" value="43.660000" valuetype="4" valueunit="mm" timestamp="1499706031"/>
<datapoint name="${sysVarRainYesterday}" type="" ise_id="5003" value="0.000000" valuetype="4" valueunit="mm" timestamp="1497504600"/>
</channel>
</device>
</state>

(Slavisa Lukic) #2


(Gerhard Riegler) #3

Would be interesting which output the API delivers. Can you switch the binding to TRACE mode please and post the result for this device from the logfile?


(Slavisa Lukic) #4

The values are stored in System Variable, and probably not transfered.

<datapoint name="${sysVarRainToday}" type="" ise_id="5002" value="43.660000" valuetype="4" valueunit="mm" timestamp="1499706031"/>
<datapoint name="${sysVarRainYesterday}" type="" ise_id="5003" value="0.000000" valuetype="4" valueunit="mm" timestamp="1497504600"/>

The log TRACE:

2017-09-14 07:25:32.641 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			TEMPERATURE
			14.1
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			HUMIDITY
			70
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			RAINING
			false
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			RAIN_COUNTER
			34.81
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			WIND_SPEED
			31.7
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			WIND_DIRECTION
			315
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			WIND_DIRECTION_RANGE
			45
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			SUNSHINEDURATION
			26
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			BRIGHTNESS
			205
		]
	}
]

2017-09-14 07:25:32.649 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '14.1' for 'NEQ0344045:1#TEMPERATURE' from gateway with id '9aa663c8'
2017-09-14 07:25:32.653 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 3050d21c1a36d9bc expected MID 58377 but received 26689
2017-09-14 07:25:32.664 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '14.1' with DecimalTypeConverter for 'NEQ0344045:1#TEMPERATURE'
2017-09-14 07:25:32.679 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 9cf9 expected MID 54751 but received 15921
2017-09-14 07:25:32.702 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '70' for 'NEQ0344045:1#HUMIDITY' from gateway with id '9aa663c8'
2017-09-14 07:25:32.706 [TRACE] [converter.type.AbstractTypeConverter] - Converting INTEGER value '70' with DecimalTypeConverter for 'NEQ0344045:1#HUMIDITY'
2017-09-14 07:25:32.721 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 046cf6ea expected MID 58296 but received 26641
2017-09-14 07:25:32.727 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'false' for 'NEQ0344045:1#RAINING' from gateway with id '9aa663c8'
2017-09-14 07:25:32.738 [TRACE] [converter.type.AbstractTypeConverter] - Converting BOOL value 'false' with OnOffTypeConverter for 'NEQ0344045:1#RAINING'
2017-09-14 07:25:32.762 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '34.81' for 'NEQ0344045:1#RAIN_COUNTER' from gateway with id '9aa663c8'
2017-09-14 07:25:32.775 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '34.81' with DecimalTypeConverter for 'NEQ0344045:1#RAIN_COUNTER'
2017-09-14 07:25:32.809 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Double) value '31.7' for 'NEQ0344045:1#WIND_SPEED' from gateway with id '9aa663c8'
2017-09-14 07:25:32.826 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 1a928d expected MID 57283 but received 26361
2017-09-14 07:25:32.837 [TRACE] [converter.type.AbstractTypeConverter] - Converting FLOAT value '31.7' with DecimalTypeConverter for 'NEQ0344045:1#WIND_SPEED'
2017-09-14 07:25:32.848 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 59 expected MID 4435 but received 462
2017-09-14 07:25:32.865 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 2bf9067c7519 expected MID 60399 but received 27542
2017-09-14 07:25:32.871 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '315' for 'NEQ0344045:1#WIND_DIRECTION' from gateway with id '9aa663c8'
2017-09-14 07:25:32.880 [TRACE] [converter.type.AbstractTypeConverter] - Converting INTEGER value '315' with DecimalTypeConverter for 'NEQ0344045:1#WIND_DIRECTION'
2017-09-14 07:25:32.906 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '45' for 'NEQ0344045:1#WIND_DIRECTION_RANGE' from gateway with id '9aa663c8'
2017-09-14 07:25:39.731 [TRACE] [converter.type.AbstractTypeConverter] - Converting INTEGER value '45' with DecimalTypeConverter for 'NEQ0344045:1#WIND_DIRECTION_RANGE'
2017-09-14 07:25:39.821 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 079e expected MID 22288 but received 54158
2017-09-14 07:25:39.833 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '26' for 'NEQ0344045:1#SUNSHINEDURATION' from gateway with id '9aa663c8'
2017-09-14 07:25:39.840 [TRACE] [converter.type.AbstractTypeConverter] - Converting INTEGER value '26' with DecimalTypeConverter for 'NEQ0344045:1#SUNSHINEDURATION'
2017-09-14 07:25:39.857 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 9e expected MID 728 but received 54193
2017-09-14 07:25:39.859 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 5c expected MID 4110 but received 54196
2017-09-14 07:25:39.871 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Integer) value '205' for 'NEQ0344045:1#BRIGHTNESS' from gateway with id '9aa663c8'
2017-09-14 07:25:39.880 [TRACE] [converter.type.AbstractTypeConverter] - Converting INTEGER value '205' with DecimalTypeConverter for 'NEQ0344045:1#BRIGHTNESS'
2017-09-14 07:25:40.033 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 79 expected MID 62727 but received 54313
2017-09-14 07:25:40.063 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 7b expected MID 1626 but received 54334
2017-09-14 07:25:40.089 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: cb expected MID 1754 but received 54344
2017-09-14 07:25:40.137 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: bd expected MID 25318 but received 54359
2017-09-14 07:25:40.166 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 28 expected MID 708 but received 54390
2017-09-14 07:25:40.169 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 96 expected MID 3492 but received 54392
2017-09-14 07:25:40.218 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: 01dacbaf expected MID 59420 but received 27089
2017-09-14 07:25:40.248 [WARN ] [pse.californium.core.network.Matcher] - Possible MID reuse before lifetime end: ca expected MID 3974 but received 54494
2017-09-14 07:25:40.255 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcRequest:
listBidcosInterfaces()

2017-09-14 07:25:40.257 [TRACE] [al.communicator.client.SocketHandler] - Returning socket for port 2001
2017-09-14 07:25:40.268 [TRACE] [nal.communicator.client.BinRpcClient] - Client BinRpcResponse:
[
	{
		ADDRESS=NEQ0219371
		CONNECTED=true
		DEFAULT=true
		DESCRIPTION=
		DUTY_CYCLE=4
		FIRMWARE_VERSION=2.8.5
		TYPE=CCU2
	}
]



(Gerhard Riegler) #5

that’s not enough, i need the trace log when the metadata of the device is loaded. Your output is from the XML-API add-on, it is generated with scripts. The binding works with the Homematic API.


(Slavisa Lukic) #6

Here the trace when restarting bundle:

2017-09-15 07:05:50.161 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: newDevices()
RF-9aa663c8
[

.........
.........
	{
		ADDRESS=NEQ0344045
		CHILDREN=
		[
			NEQ0344045:0
			NEQ0344045:1
		]
		FIRMWARE=1.6
		FLAGS=1
		INTERFACE=NEQ0219371
		PARAMSETS=
		[
			MASTER
		]
		PARENT=
		RF_ADDRESS=4919427
		ROAMING=0
		RX_MODE=14
		TYPE=HM-WDS100-C6-O-2
		UPDATABLE=1
		VERSION=17
	}
	{
		ADDRESS=NEQ0344045:0
		AES_ACTIVE=0
		DIRECTION=0
		FLAGS=3
		INDEX=0
		LINK_SOURCE_ROLES=
		LINK_TARGET_ROLES=
		PARAMSETS=
		[
			MASTER
			VALUES
		]
		PARENT=NEQ0344045
		PARENT_TYPE=HM-WDS100-C6-O-2
		TYPE=MAINTENANCE
		VERSION=17
	}
	{
		ADDRESS=NEQ0344045:1
		AES_ACTIVE=0
		DIRECTION=1
		FLAGS=1
		INDEX=1
		LINK_SOURCE_ROLES=WEATHER_CS
		LINK_TARGET_ROLES=
		PARAMSETS=
		[
			LINK
			MASTER
			VALUES
		]
		PARENT=NEQ0344045
		PARENT_TYPE=HM-WDS100-C6-O-2
		TYPE=WEATHER
		VERSION=17
	}
.......
.......
]
	
2017-09-15 07:06:04.372 [TRACE] [nicator.server.BinRpcResponseHandler] - Event BinRpcMessage: system.multicall()
[
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			TEMPERATURE
			10.1
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			HUMIDITY
			64
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			RAINING
			false
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			RAIN_COUNTER
			35.4
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			WIND_SPEED
			2.4
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			WIND_DIRECTION
			135
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			WIND_DIRECTION_RANGE
			45
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			SUNSHINEDURATION
			201
		]
	}
	{
		methodName=event
		params=
		[
			RF-9aa663c8
			NEQ0344045:1
			BRIGHTNESS
			150
		]
	}
]


(Gerhard Riegler) #7

That’s only a small excerpt from the logfile. Please restart openhab with the homematic binding in TRACE mode and send me the FULL startup logfile.


(Slavisa Lukic) #8

sent link by message


(F1nn) #9

Any news on this topic? I’d also like to get the rain today and rain yesterday in openHab.


(Slavisa Lukic) #10

I would suggest you google about MQTT and HomeMatic. It is possible to send mqtt messages from homematic. so setup a program which sends the value over mqtt over to openhab.


(Slavisa Lukic) #11

I implemented following ignoring the path of getting the values from HomeMatic:

persistence
I set up some time ago influxdb as for persistence, and using it for grafana.

items

Switch WSRaining 			"WS Raining [MAP(rain.map):%s]" 			<temperature> { channel="homematic:HM-WDS100-C6-O-2:9aa663c8:NEQ0344045:1#RAINING" }
Number WSRainCounter 		"WS Raining Counter[%.2f mm]" 	<rain>  { channel="homematic:HM-WDS100-C6-O-2:9aaxxxxx:NEQ034yyyy:1#RAIN_COUNTER" }
Number WSRainLastHour 		"Rain Last Hour[%.2f mm]" 	<rain>  
Number WSRainLast24h 		"Rain Last 24h[%.2f mm]" 	<rain>  
Number WSRainLast7d 		"Rain Last 7 days[%.2f mm]" 	<rain>  
Number WSRainLast30d 		"Rain Last 30 days[%.2f mm]" 	<rain>  

rule

rule "WSRainCounter update"
when
    Item WSRainCounter changed or 
    Time cron "	0 0/1 * 1/1 * ? *"
then
    try{
    //	logInfo("WSRainCounter update Rule", "triggered") 
        val lastHour = WSRainCounter.deltaSince(now.minusHours(1), "influxdb")
        val last24h = WSRainCounter.deltaSince(now.minusHours(24), "influxdb")
        val last7d = WSRainCounter.deltaSince(now.minusHours(7*24), "influxdb")
        val last30d = WSRainCounter.deltaSince(now.minusHours(30*24), "influxdb")
    //  logInfo("WSRainCounter update Rule", String.valueOf(lastHour)) 
    //	logInfo("WSRainCounter update Rule", String.valueOf(last24h)) 
    //	logInfo("WSRainCounter update Rule", String.valueOf(last7d)) 
    //	logInfo("WSRainCounter update Rule", String.valueOf(last30d)) 
        if (WSRainLastHour.state as Number != lastHour as Number) 
            WSRainLastHour.postUpdate(lastHour as Number)
        if (WSRainLast24h.state as Number != last24h as Number)
            WSRainLast24h.postUpdate(last24h as Number)
        if (WSRainLast7d.state as Number != last7d as Number)
            WSRainLast7d.postUpdate(last7d as Number)
        if (WSRainLast30d.state as Number != last30d as Number)
            WSRainLast30d.postUpdate(last30d as Number)
  	} catch(Exception e) {
        // initiate items
        WSRainLastHour.postUpdate(0.0)
        WSRainLast24h.postUpdate(0.0)
        WSRainLast7d.postUpdate(0.0)
        WSRainLast30d.postUpdate(0.0)
    }
//    logInfo("WSRainCounter update Rule", "exit") 
end