Ich stehe gerade vor einem kleine Problem. Da das Openhab2-Hue Binding eher langsam und auch unzuverlässig ist, was die Updates des Schaltstatus der HUE-Lampen angeht, habe ich mich entschlossen Homegear im zusammenspiel mit dem Homematic-Binding zu nutzen.
Nun habe ich ein Gerät welches sich nicht anschalten lässt. Ich vermute der Grund liegt an dem nicht vorhandenen Brightnesswert (bri) im STATE-Package. Die vorhanden LCT.xml habe ich demnach kopiert, alle nicht vorhandenen Elemente wie HUE, XY, BRIGHTNESS … entfernt und ebenso das State-Package um das element bri verkleinert.
Egal was ich tue, dem Device wird aber nur der TYP “LCT001” zugeweisen. Auch wenn ich in der entsprechenden LCT.xml ein Device mit hinzugefügt hatte, wurde dieses nicht erkannt. Wie konfiguriert man die Devices xml jetzt so, das diese auch erkannt werden?
Bei der TypeNumber ist ja nur irgend eine freie zu wählen?
Homegear Version (Debian Repo)
root@x-hab:~# homegear -v
Homegear version 0.6.7-1480
Copyright (c) 2013-2016 Sathya Laufer
hue/lights/deviceID:
{
"state":{
"on":false,
"alert":"none",
"reachable":true
},
"type":"On/Off plug-in unit",
"name":"On/Off plug-in unit 1","
modelid":"Plug 01","
manufacturername":"OSRAM",
"uniqueid":"XX:XX:XX:XX:XX:XX:XX:XX-XX",
"swversion":"V1.04.12"
}
XML:
<homegearDevice version="1">
<supportedDevices>
<device id="Plug 01">
<description>Osram Plug-in unit</description>
<typeNumber>0x942</typeNumber>
<minFirmwareVersion>0x0</minFirmwareVersion>
</device>
</supportedDevices>
<properties/>
<functions>
<function channel="0" type="MAINTENANCE" channelCount="1">
<properties>
<internal>true</internal>
</properties>
<configParameters>maint_ch_master--0</configParameters>
<variables>maint_ch_values--0</variables>
</function>
<function channel="1" type="SWITCH" channelCount="1">
<properties/>
<configParameters>config--1</configParameters>
<variables>switch_valueset--1</variables>
</function>
</functions>
<packets>
<packet id="ALERT_SET">
<direction>fromCentral</direction>
<type>0x2</type>
<jsonPayload>
<element>
<key>on</key>
<constValueBoolean>true</constValueBoolean>
</element>
<element>
<key>alert</key>
<parameterId>ALERT</parameterId>
</element>
</jsonPayload>
</packet>
<packet id="INFO">
<direction>toCentral</direction>
<type>0x1</type>
<channel>1</channel>
<jsonPayload>
<element>
<key>state</key>
<subkey>on</subkey>
<parameterId>STATE</parameterId>
</element>
<element>
<key>state</key>
<subkey>alert</subkey>
<parameterId>ALERT</parameterId>
</element>
<element>
<key>state</key>
<subkey>reachable</subkey>
<parameterId>REACHABLE</parameterId>
</element>
</jsonPayload>
</packet>
<packet id="STATE_SET">
<direction>fromCentral</direction>
<type>0x2</type>
<jsonPayload>
<element>
<key>transitiontime</key>
<parameterId>TRANSITION_TIME</parameterId>
</element>
<element>
<key>on</key>
<parameterId>STATE</parameterId>
</element>
</jsonPayload>
</packet>
<packet id="FAST_STATE_SET">
<direction>fromCentral</direction>
<type>0x2</type>
<jsonPayload>
<element>
<key>transitiontime</key>
<constValueInteger>0</constValueInteger>
</element>
<element>
<key>on</key>
<parameterId>STATE</parameterId>
</element>
</jsonPayload>
</packet>
</packets>
<parameterGroups>
<configParameters id="config--1"/>
<configParameters id="maint_ch_master--0"/>
<variables id="maint_ch_values--0">
<parameter id="UNREACH">
<properties>
<writeable>false</writeable>
<service>true</service>
</properties>
<logicalBoolean/>
<physicalInteger groupId="UNREACH">
<operationType>internal</operationType>
</physicalInteger>
</parameter>
<parameter id="STICKY_UNREACH">
<properties>
<service>true</service>
<sticky>true</sticky>
</properties>
<logicalBoolean/>
<physicalInteger groupId="STICKY_UNREACH">
<operationType>internal</operationType>
</physicalInteger>
</parameter>
<parameter id="CONFIG_PENDING">
<properties>
<writeable>false</writeable>
<service>true</service>
</properties>
<logicalBoolean/>
<physicalInteger groupId="CONFIG_PENDING">
<operationType>internal</operationType>
</physicalInteger>
</parameter>
<parameter id="RSSI_DEVICE">
<properties>
<writeable>false</writeable>
</properties>
<logicalInteger/>
<physicalInteger groupId="RSSI_DEVICE">
<operationType>internal</operationType>
</physicalInteger>
</parameter>
<parameter id="RSSI_PEER">
<properties>
<writeable>false</writeable>
</properties>
<logicalInteger/>
<physicalInteger groupId="RSSI_PEER">
<operationType>internal</operationType>
</physicalInteger>
</parameter>
</variables>
<variables id="switch_valueset--1">
<parameter id="STATE">
<properties>
<casts>
<rpcBinary/>
</casts>
</properties>
<logicalBoolean/>
<physicalInteger groupId="STATE">
<operationType>command</operationType>
</physicalInteger>
<packets>
<packet id="STATE_SET">
<type>set</type>
</packet>
<packet id="INFO">
<type>event</type>
</packet>
</packets>
</parameter>
<parameter id="FAST_STATE">
<properties>
<casts>
<rpcBinary/>
</casts>
</properties>
<logicalBoolean/>
<physicalInteger groupId="STATE">
<operationType>command</operationType>
</physicalInteger>
<packets>
<packet id="FAST_STATE_SET">
<type>set</type>
</packet>
<packet id="INFO">
<type>event</type>
</packet>
</packets>
</parameter>
<parameter id="TRANSITION_TIME">
<properties>
<casts>
<rpcBinary/>
</casts>
</properties>
<logicalInteger>
<defaultValue>5</defaultValue>
<minimumValue>0</minimumValue>
<maximumValue>65535</maximumValue>
</logicalInteger>
<physicalNone groupId="TRANSITION_TIME">
<operationType>store</operationType>
</physicalNone>
</parameter>
<parameter id="ALERT">
<properties>
<casts>
<optionString/>
<rpcBinary/>
</casts>
</properties>
<logicalEnumeration>
<defaultValue>0</defaultValue>
<value>
<id>none</id>
<index>0</index>
</value>
<value>
<id>select</id>
<index>1</index>
</value>
<value>
<id>lselect</id>
<index>2</index>
</value>
</logicalEnumeration>
<physicalString groupId="ALERT">
<operationType>command</operationType>
</physicalString>
<packets>
<packet id="ALERT_SET">
<type>set</type>
</packet>
<packet id="INFO">
<type>event</type>
</packet>
</packets>
</parameter>
<parameter id="REACHABLE">
<properties>
<writeable>false</writeable>
<service>true</service>
<casts>
<rpcBinary/>
</casts>
</properties>
<logicalBoolean/>
<physicalInteger groupId="REACHABLE">
<operationType>command</operationType>
</physicalInteger>
<packets>
<packet id="INFO">
<type>event</type>
</packet>
</packets>
</parameter>
</variables>
</parameterGroups>
</homegearDevice>
Gruß
P.S. (nicht ganz so wichtig nur FYI)
Openhab2 -> *-binding-homematic -> homegear Probleme mit Hue.
Dimmer:
Sendet immer einen Wert von 0-100 (Prozent) an den Dimmer Channel. Dieser wird als Integer interpretiert und ist im Homegear dann der absolute Brightnesswert, damit sind die Lampen derzeit nur 39% des Dimmers nutzbar.
Eine transformation in openhab2 habe ich versucht, aber bei dem Dimmer akzeptiert er auch im sendCommand() nur Werte von 1-100. Den Channel als Number auszuwerten akzeptiert er ebenfalls nicht, erkennt dies dann systemintern automatisch als Dimmer / Slider.
Gibt es hier eine Möglichkeit diese Verhalten via xml, script im homegear zu verändern?
Colorpicker:
2016-09-28 11:58:19.198 [ItemCommandEvent ] - Item 'light_lounge_ceiling_c' received command 306,27,50
2016-09-28 11:58:19.496 [ItemCommandEvent ] - Item 'light_lounge_ceiling_c' received command 358,61,50
2016-09-28 11:58:19.795 [ItemCommandEvent ] - Item 'light_lounge_ceiling_c' received command 22,90,50
Openhab sendet auch hier einen HSBType. Auch hier wäre eine Umwandlung nötig.
Für Dimmer und Colorpicker nutze ich gerade das Hue-Binding parallel zum ein-aus-schalten und statusabfrage mittels Homematic-Binding.