OpenHAB-Einbindung von HomematicIP Geräten
Bei den HomematicIP Geräten sind die meisten Items etwas anders benannt, als bei den klassischen Homematic-Geräten. Besonders nervig war das für mich, als ich in eine Umgebung von 11 Homematic Heizkörper-Thermostaten noch neu HomematicIP Heizkörper-Thermostate einbinden wollte.
Vergleich der Geräte
Im einfachsten Fall wird aus ActualTemperature dann Actual_Temperature. Ich kann nicht mehr nachvollziehen, warum bei mir viele der Parameter ohne Unterstrich auftauchen. Entweder liegt das an einer vorherigen Version eines der Programme oder an mir in der Lernphase. Jedenfalls habe ich viele Homematic-Geräte und es wäre aufwändig die alle zu bearbeiten. Einfacher ist es, die neuen Geräte daran anzupassen.
Es gibt aber auch eine Reihe von Umbenennungen. Was mich Zeit gekostet hat, sind Änderungen wie ValveState zu Level.
Homematic | HomematicIP | |
---|---|---|
ActualTemperature | Actual_Temperature | |
SetTemperature | Set_Point_Temperature | |
BatteryState | Operating_Voltage | |
NiedrigerBatteriestatus | Niedriger_Batteriestatus | |
ValveState | Level | HomematicIP liefert z.B. 0.12 wo Homematic 12 liefert |
Signalstärke | Signalstärke | OpenHAB mach Signalstarke daraus |
LowBattery | Low_Bat | |
Homematic
Die folgenden Parameter und Werte liefert die Homematic UI:
Kanal 0:
BidCos-RF.MEQ1885552:0.UNREACH: false
BidCos-RF.MEQ1885552:0.STICKY_UNREACH: false
BidCos-RF.MEQ1885552:0.CONFIG_PENDING: false
BidCos-RF.MEQ1885552:0.LOWBAT: false
BidCos-RF.MEQ1885552:0.RSSI_DEVICE: 1
BidCos-RF.MEQ1885552:0.RSSI_PEER: 188
BidCos-RF.MEQ1885552:0.INHIBIT: false
BidCos-RF.MEQ1885552:0.DEVICE_IN_BOOTLOADER: false
BidCos-RF.MEQ1885552:0.UPDATE_PENDING: false
BidCos-RF.MEQ1885552:0.AES_KEY: 0
Kanal 4:
BidCos-RF.MEQ1885552:4.CONTROL_MODE: 0
BidCos-RF.MEQ1885552:4.FAULT_REPORTING: 0
BidCos-RF.MEQ1885552:4.BATTERY_STATE: 2.700000
BidCos-RF.MEQ1885552:4.VALVE_STATE: 0
BidCos-RF.MEQ1885552:4.BOOST_STATE: 0
BidCos-RF.MEQ1885552:4.ACTUAL_TEMPERATURE: 21.600000
BidCos-RF.MEQ1885552:4.SET_TEMPERATURE: 19.500000
BidCos-RF.MEQ1885552:4.AUTO_MODE:
BidCos-RF.MEQ1885552:4.MANU_MODE:
BidCos-RF.MEQ1885552:4.BOOST_MODE:
BidCos-RF.MEQ1885552:4.COMFORT_MODE:
BidCos-RF.MEQ1885552:4.LOWERING_MODE:
BidCos-RF.MEQ1885552:4.PARTY_MODE_SUBMIT:
BidCos-RF.MEQ1885552:4.PARTY_TEMPERATURE: 5.000000
BidCos-RF.MEQ1885552:4.PARTY_START_TIME: 0
BidCos-RF.MEQ1885552:4.PARTY_START_DAY: 1
BidCos-RF.MEQ1885552:4.PARTY_START_MONTH: 1
BidCos-RF.MEQ1885552:4.PARTY_START_YEAR: 0
BidCos-RF.MEQ1885552:4.PARTY_STOP_TIME: 0
BidCos-RF.MEQ1885552:4.PARTY_STOP_DAY: 1
BidCos-RF.MEQ1885552:4.PARTY_STOP_MONTH: 1
BidCos-RF.MEQ1885552:4.PARTY_STOP_YEAR: 0
OpenHAB macht daraus:
Der folgende Text beschreibt die Einbindung eines HomematicIP Thermostaten in eine Umgebung basierend auf Homematic.
Homematic IP
Die folgenden Parameter und Werte liefert die Hoematic UI:
Kanal 0:
HmIP-RF.00395F29AA356E:0.CONFIG_PENDING: false
HmIP-RF.00395F29AA356E:0.DUTY_CYCLE: false
HmIP-RF.00395F29AA356E:0.INSTALL_TEST: true
HmIP-RF.00395F29AA356E:0.LOW_BAT: false
HmIP-RF.00395F29AA356E:0.OPERATING_VOLTAGE: 2.900000
HmIP-RF.00395F29AA356E:0.OPERATING_VOLTAGE_STATUS: 0
HmIP-RF.00395F29AA356E:0.RSSI_DEVICE: -84
HmIP-RF.00395F29AA356E:0.RSSI_PEER: -82
HmIP-RF.00395F29AA356E:0.UNREACH: false
HmIP-RF.00395F29AA356E:0.UPDATE_PENDING: true
Kanal 1:
HmIP-RF.00395F29AA356E:1.ACTIVE_PROFILE: 1
HmIP-RF.00395F29AA356E:1.ACTUAL_TEMPERATURE: 21.000000
HmIP-RF.00395F29AA356E:1.ACTUAL_TEMPERATURE_STATUS: 0
HmIP-RF.00395F29AA356E:1.BOOST_MODE: false
HmIP-RF.00395F29AA356E:1.BOOST_TIME: 0
HmIP-RF.00395F29AA356E:1.CONTROL_DIFFERENTIAL_TEMPERATURE:
HmIP-RF.00395F29AA356E:1.CONTROL_MODE:
HmIP-RF.00395F29AA356E:1.DURATION_UNIT:
HmIP-RF.00395F29AA356E:1.DURATION_VALUE:
HmIP-RF.00395F29AA356E:1.FROST_PROTECTION: false
HmIP-RF.00395F29AA356E:1.LEVEL: 0.010000
HmIP-RF.00395F29AA356E:1.LEVEL_STATUS: 0
HmIP-RF.00395F29AA356E:1.PARTY_MODE: false
HmIP-RF.00395F29AA356E:1.PARTY_SET_POINT_TEMPERATURE: 0.000000
HmIP-RF.00395F29AA356E:1.PARTY_TIME_END:
HmIP-RF.00395F29AA356E:1.PARTY_TIME_START:
HmIP-RF.00395F29AA356E:1.QUICK_VETO_TIME: 0
HmIP-RF.00395F29AA356E:1.SET_POINT_MODE: 0
HmIP-RF.00395F29AA356E:1.SET_POINT_TEMPERATURE: 19.500000
HmIP-RF.00395F29AA356E:1.SWITCH_POINT_OCCURED: false
HmIP-RF.00395F29AA356E:1.VALVE_ADAPTION: false
HmIP-RF.00395F29AA356E:1.VALVE_STATE: 4
HmIP-RF.00395F29AA356E:1.WINDOW_STATE: 0
OpenHAB macht daraus:
Einbindung aus der Inbox
Der Start ist ganz einfach, über die Inbox lassen sich die neuen Things ganz normal hinzufügen und in das Modell integrieren.
Hier habe ich erst einmal nur vier Points übernommen, dabei aber gleich die Namen angepasst, da man diese später nicht mehr ändern kann. Man müsste dann den entsprechenden Point aus dem Modell entfernen und neu einfügen.
Die Anpassungen gehen los, indem ich im Model das Gerät anklicke und dann mit einem Klick auf Edit dort die Zeilen mit den weiteren Eigenschaften öffne. Dort wähle ich dann unter SemanticClass die Einstellung RadiatorControl aus.
Ventilstellung
Etwas umständlich fand ich den Umgang mit dem "Level", von mir zu "ValveState" angepasst. In dem Screenshot oben ist zu sehen, dass das Element vom Typ Dimmer ist. Damit habe ich aber keine vernünftige Darstellung erreichen können.
Das löst jetzt weitere Anpassungen aus. Es ist so, dass HomematicIP hier Werte zwischen 0 und 1 liefert, also Prozentwerte, die klassische Homematic liefert Werte zwischen 0 und 100. Mit der Darstellung der Werte hatte ich trotzdem Probleme, bis ich mich daran erinnerte, dass OpenHAB alles als String übernimmt. Also habe ich unten in der Rubrik Channel Links auf den zugehörigen Link geklickt und das Profil bearbeiten lassen:
Das kleine Javascript-Programm mal1.js ist im Verzeichnis /etc/openhab/transform gespeichert :
(function(i) {
return parseFloat(i) * 1;
})(input)
letztendlich macht es nicht mehr, als eine reine Zahl zu liefern, ohne das eventuell vorhandene Einheitszeichen. Ob das Produkt mit der 1 wirklich notwendig ist, muss ich mal ausprobieren, ursprünglich hatte ich mit 100 experimentiert.
Zusätzlich habe ich dann noch bei den Eigenschaften von Level zwei Metadata Elemente angegeben.
- im Element Unit steht nur % als Angabe
- im Element State Description Werte 0 und 100 für die untere bzw. obere Grenze.
Mit diesen Anpassungen lassen sich die HomematicIP Thermostaten auch mit meinem Widget State_Grid darstellen.
Die Modi
Ganz schwierig ist es mit der Anpassung der Daten für Thermostat-Control, da EQ3 hier zu massive Änderungen vorgenommen hat.