NEWS
Homematic IP Cloud Access Point Adapter
-
@ofbeqnpolkkl6mby5e13 sagte in Homematic IP Cloud Access Point Adapter:
Nein, Jogibear hat die von Greenberet für iobroker portiert.
Na dann mag es so gewesen sein ...
-
Ich hab die normalen HMIP Thermostate und die zeigen im Adapter die Ventilpositionen an, weiß jetzt nicht ob das hier hilft.
-
Hallo,
ich habe mal mit der Restapi ein wenig rumgespielt, wo ich jetzt dazu sagen muss dass ich mit python sehr wenig am Hut habe.
Aber ich habe er irgendwie geschafft die Ventilpositionen auszugeben, der letzte Wert ist die VentilpositionVerteiler Heizkreislauf (1) Arbeitszimmer ADAPTION_DONE 0.0
Verteiler Heizkreislauf (2) Badezimmer ADAPTION_DONE 1.0
Verteiler Heizkreislauf (3) Schlafzimmer ADAPTION_DONE 0.0
Verteiler Heizkreislauf (4) Flur/Bad ADAPTION_DONE 0.0
Verteiler Heizkreislauf (5) WoZi 1 Kamin ADAPTION_DONE 0.0
Verteiler Heizkreislauf (6) WoZi 2 Mitte ADAPTION_DONE 0.0
Verteiler Heizkreislauf (7) WoZi 3 Fenster ADAPTION_DONE 0.0
Verteiler Heizkreislauf (8) Flur Eingang ADAPTION_DONE 0.0
Verteiler Heizkreislauf (9) Küche ADAPTION_DONE 0.0
Verteiler ADJUSTMENT_TOO_SMALL None
Verteiler ADJUSTMENT_TOO_SMALL None
Verteiler ADJUSTMENT_TOO_SMALL NoneDazu habe ich in der Klasse device.FloorTerminalBlock12 folgenden Code eingefügt
c = get_functional_channel("FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", js) if c: self.set_attr_from_dict("label", c) self.set_attr_from_dict("valvePosition", c)
und in der functionalChannels.py class FloorTerminalBlockMechanicalChannel
def from_json(self, js, groups: Iterable[Group]): super().from_json(js, groups) self.set_attr_from_dict("valveState", js) self.set_attr_from_dict("valvePosition", js)
Das ist natürlich wildes gehacke. Wie bekommen wir das denn jetzt sauber in die API?
-
Hier ebenfalls über Greenberets Python REST-API:
"3014F7110000000000000100": { "availableFirmwareVersion": "1.4.6", "connectionType": "HMIP_RF", "firmwareVersion": "1.4.6", "firmwareVersionInteger": 66566, "functionalChannels": { "0": { "busConfigMismatch": null, "coProFaulty": false, "coProRestartNeeded": false, "coProUpdateFailure": false, "configPending": false, "coolingEmergencyValue": 0.0, "deviceCommunicationError": null, "deviceDriveError": null, "deviceDriveModeError": null, "deviceId": "3014F7110000000000000100", "deviceOverheated": false, "deviceOverloaded": false, "devicePowerFailureDetected": false, "deviceUndervoltage": false, "displayContrast": null, "dutyCycle": false, "frostProtectionTemperature": 8.0, "functionalChannelType": "DEVICE_BASE_FLOOR_HEATING", "groupIndex": 0, "groups": [ "00000000-0000-0000-0000-000000000040" ], "heatingEmergencyValue": 0.25, "index": 0, "label": "", "lockJammed": null, "lowBat": null, "minimumFloorHeatingValvePosition": 0.0, "mountingOrientation": null, "multicastRoutingEnabled": false, "particulateMatterSensorCommunicationError": null, "particulateMatterSensorError": null, "powerShortCircuit": null, "profilePeriodLimitReached": null, "pulseWidthModulationAtLowFloorHeatingValvePositionEnabled": false, "routerModuleEnabled": false, "routerModuleSupported": false, "rssiDeviceValue": 128, "rssiPeerValue": null, "shortCircuitDataLine": null, "supportedOptionalFeatures": { "IFeatureBusConfigMismatch": false, "IFeatureDeviceCoProError": false, "IFeatureDeviceCoProRestart": false, "IFeatureDeviceCoProUpdate": false, "IFeatureDeviceCommunicationError": false, "IFeatureDeviceDriveError": false, "IFeatureDeviceDriveModeError": false, "IFeatureDeviceIdentify": false, "IFeatureDeviceOverheated": false, "IFeatureDeviceOverloaded": false, "IFeatureDeviceParticulateMatterSensorCommunicationError": false, "IFeatureDeviceParticulateMatterSensorError": false, "IFeatureDevicePowerFailure": false, "IFeatureDeviceTemperatureHumiditySensorCommunicationError": false, "IFeatureDeviceTemperatureHumiditySensorError": false, "IFeatureDeviceTemperatureOutOfRange": false, "IFeatureDeviceUndervoltage": false, "IFeatureMinimumFloorHeatingValvePosition": true, "IFeatureMulticastRouter": false, "IFeaturePowerShortCircuit": false, "IFeatureProfilePeriodLimit": false, "IFeaturePulseWidthModulationAtLowFloorHeatingValvePosition": true, "IFeatureRssiValue": true, "IFeatureShortCircuitDataLine": false, "IOptionalFeatureDeviceErrorLockJammed": false, "IOptionalFeatureDisplayContrast": false, "IOptionalFeatureDutyCycle": true, "IOptionalFeatureLowBat": false, "IOptionalFeatureMountingOrientation": false }, "temperatureHumiditySensorCommunicationError": null, "temperatureHumiditySensorError": null, "temperatureOutOfRange": false, "unreach": false, "valveProtectionDuration": 5, "valveProtectionSwitchingInterval": 14 }, "1": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 1, "groups": [ "00000000-0000-0000-0000-000000000038" ], "index": 1, "label": "Bad", "valvePosition": 0.04, "valveState": "ADAPTION_DONE" }, "10": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 10, "groups": [], "index": 10, "label": "", "valvePosition": null, "valveState": "ADJUSTMENT_TOO_SMALL" }, "11": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 11, "groups": [], "index": 11, "label": "", "valvePosition": null, "valveState": "ADJUSTMENT_TOO_SMALL" }, "12": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 12, "groups": [], "index": 12, "label": "", "valvePosition": null, "valveState": "ADJUSTMENT_TOO_SMALL" }, "13": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "HEAT_DEMAND_CHANNEL", "groupIndex": 0, "groups": [ "00000000-0000-0000-0000-000000000101", "00000000-0000-0000-0000-000000000102" ], "index": 13, "label": "" }, "14": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "DEHUMIDIFIER_DEMAND_CHANNEL", "groupIndex": 0, "groups": [ "00000000-0000-0000-0000-000000000103" ], "index": 14, "label": "" }, "15": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "CHANGE_OVER_CHANNEL", "groupIndex": 0, "groups": [ "00000000-0000-0000-0000-000000000104", "00000000-0000-0000-0000-000000000105", "00000000-0000-0000-0000-000000000106", "00000000-0000-0000-0000-000000000107" ], "index": 15, "label": "" }, "2": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 2, "groups": [ "00000000-0000-0000-0000-000000000021" ], "index": 2, "label": "Schlafen 1", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "3": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 3, "groups": [ "00000000-0000-0000-0000-000000000044" ], "index": 3, "label": "WC", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "4": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 4, "groups": [ "00000000-0000-0000-0000-000000000030" ], "index": 4, "label": "K\u00fcche ", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "5": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 5, "groups": [ "00000000-0000-0000-0000-000000000030" ], "index": 5, "label": "K\u00fcche", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "6": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 6, "groups": [ "00000000-0000-0000-0000-000000000046" ], "index": 6, "label": "Wohnen 1", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "7": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 7, "groups": [ "00000000-0000-0000-0000-000000000046" ], "index": 7, "label": "Wohnen 3", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "8": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 8, "groups": [ "00000000-0000-0000-0000-000000000046" ], "index": 8, "label": "Wohnen 2", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" }, "9": { "deviceId": "3014F7110000000000000100", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 9, "groups": [ "00000000-0000-0000-0000-000000000046" ], "index": 9, "label": "Wohnen 1", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" } }, "homeId": "00000000-0000-0000-0000-000000000001", "id": "3014F7110000000000000100", "label": "Fu\u00dfbodenheizungsaktor \u2013 12-fach, motorisch", "lastStatusUpdate": 1663348784591, "liveUpdateState": "LIVE_UPDATE_NOT_SUPPORTED", "manufacturerCode": 1, "modelId": 365, "modelType": "HmIP-FALMOT-C12", "oem": "eQ-3", "permanentlyReachable": true, "serializedGlobalTradeItemNumber": "3014F7110000000000000100", "type": "FLOOR_TERMINAL_BLOCK_12", "updateState": "UP_TO_DATE" } },
Also da hat EQ-3 die valvePosition hinzugefügt. Im Januar gab es das noch nicht. Siehe mein Issue aus der Zeit:
GitHub -
@okoehler sagte in Homematic IP Cloud Access Point Adapter:
Das ist natürlich wildes gehacke. Wie bekommen wir das denn jetzt sauber in die API?
In der API ist es. Der Adapter unterstützt es bisher nicht. Vielen Dank erstmal für die Info!
Ich mache ein Issue auf:
https://github.com/iobroker-community-adapters/ioBroker.hmip/issues/395
-
@ofbeqnpolkkl6mby5e13 Jo, kommt die tage dann
-
@ofbeqnpolkkl6mby5e13 sagte in Homematic IP Cloud Access Point Adapter:
Also da hat EQ-3 die valvePosition hinzugefügt. Im Januar gab es das noch nicht. Siehe mein Issue aus der Zeit:
Ja das ist "blöd" ... das sehe ich nicht wenn es mal eingebaut ist wenn die neue States hinzufügen
-
Danke für die Integration der Ventilposition und des Channellabels des HmIP-FALMOT-C12!
Für die Einheit hast du natürlich % gewählt. In den Dump-Daten, die ich aus der Python REST-API gezogen habe, steht aber keine Einheit. Zumindest habe ich das nicht gefunden. War das Logik, oder worauf ist das begründet?
Ich frage das, weil bei keiner anderen valvePosition im Adapter eine Einheit vorgegeben ist.
-
@ofbeqnpolkkl6mby5e13 Annahme und weil es sinn macht? Bzw checke gern was der Wert ist wenn ganz offen - wenn 100 dann ists % ... dann kann ich die Einheit ggf nachziehen bei den anderen
-
100% macht kein Heizungsventil auf und schon gar nicht bei einer Fußbodenheizung mit hydraulischem Abgleich durch den FALMOT-C12. Ich wüsste auch nicht, wie ich das provozieren sollte.
-
@ofbeqnpolkkl6mby5e13 Ok, dann anders: Macht die Einheit % für dich sinn? Wenn ja lassen wirs so, wenn nein dann halt nicht ... Eine einheitenlose Zahl ist auch nicht das gelbe vom Ei ...
Ein weiterer Anhaltspunkt für % war das hmip hier wohl 0,04 als Wert hatte bei einem Datensatz ... -
Ja, natürlich, das ergibt absolut Sinn. Ich war halt positiv über die Einheit überrascht, weil die sonst nicht gesetzt war.
Aktuell ist ein Wert bei 14%, also keine 0,irgendwas Werte.
Ach so, durch die Einheit % wird das automatisch umgerechnet.
-
@ofbeqnpolkkl6mby5e13 sagte in Homematic IP Cloud Access Point Adapter:
Aktuell ist ein Wert bei 14%, also keine 0,irgendwas Werte.
Ach so, durch die Einheit % wird das automatisch umgerechnet.Nicht automatisch, aber ja ich rechne das um. Problem kist wenn ich das bei den anderen mache dann wird es ein breaking change wenn user darauf logik haben ...hhmmmmmmmm
-
Ist das denn viel Arbeit für dich, wenn du sowas im Adapter änderst? Denn die shutterLevel-Werte müssten eigentlich auch in % angezeigt werden.
Oh, ich erinnere mich, dass das beim Netatmo-Adapter, bei dem ich 310 Aliasse ändern musste, weniger Bauchschmerzen bereitete...
-
@ofbeqnpolkkl6mby5e13 wir da ein Wert <1 angezeigt?
-
Bei den shutterLevel-Werten? Nein.
-
@ofbeqnpolkkl6mby5e13 Komisch ... anaj ich adde mal die nur unit
-
Wieso ist das komisch? Der Rollladen kann sich doch nur zwischen 0 und 1 befinden.
-
@ofbeqnpolkkl6mby5e13 Ja meine frage war ob es <1 ist ... also 0..1
-
Ach, Mist, sorry!