Open mdzio opened 2 years ago
Sehr sexy fände ich das Publizieren von Topics, worüber Homeassistant die Geräte der Zentrale erkennen und einbinden kann. Die Homematic-Integration in HA ist nicht sonderlich gut und funktioniert z.B. nicht wenn SSL auf der Zentrale aktiviert ist.
Sehr sexy fände ich das Publizieren von Topics, worüber Homeassistant die Geräte der Zentrale erkennen und einbinden kann. Die Homematic-Integration in HA ist nicht sonderlich gut und funktioniert z.B. nicht wenn SSL auf der Zentrale aktiviert ist.
Da gab es bisher auch schon Anfragen (siehe auch Eintrag #7) . Leider ist dies sehr aufwändig und ist daher nicht in Planung.
Servus, ich bin nun nach zig Jahren von ioBroker auf HomeAssistant umgestiegen. Ich denke das Projekt erfreut sich deutlich größerer Beliebtheit und Aktivität. In diesem Sinne wäre nun die HASS Discovery tatsächlich eine richtig gute Sache, um CCU (bei mir Docker Raspberrymatic) anzubinden. Per Bridge die CCU Daten ein meinem EMQX senden wäre easy (die dann von HASS aufgrund der Discovery Daten so abgeholt werden können), fehlen nun tatsächlich aber die Metadaten. Erstens überlege ich einen Python Translater zu bauen, oder zweitens ein XMLAPI query, die dann das HASS Discovery per MQTT bereitstellt. Ich wüsste eben nicht wie ich anders leicht an die Daten der CCU käme. Also: CCU-Jack mit HASS Discovery wäre schon geil und ein richtiger Mehrwert, weshalb ich denke, dass das rauf-priorisiert anstatt herabgesetzt werden sollte. :-) Der Vorteil wäre auch, dass man sich eben für die in der Überschrift genannten Dinge keine Gedanken machen muss, weil eben die Spezifizierung durch HASS Discovery bereits existiert.
Gesagt, getan, ich habe einen ersten Wurf hochgeladen: https://github.com/kaistraube/ccujack_homeassistant Mit dem Script "hass_discovery_ccu.py" werden per CCU-Jack Rest API alle benötigten Daten ermittelt und an den MQTT Broker gesendet. Ich kann nun HomeMatic per MQTT verwenden. :-)
Schönes Projekt. Ich nehme an, dass Du nichts dagegen hast, wenn ich von der CCU-Jack-Dokumentation auf dieses Projekt verweise. Um noch mehr Anwender zu erreichen und Rückmeldungen zu erhalten, kannst Du Dein Projekt auch im CCU-Jack Forum bekannt machen.
Ja, sehr gern. Ich schau mal ins Forum...
Was ist denn aus der Idee geworden das in CCU-Jack zu implementieren? in https://github.com/mdzio/ccu-jack/issues/73#issuecomment-1107862492
Als Lösungsidee...
Wenn ich das richtig sehe, werden mehrere CCU-Interfaces abgefragt:
"BidCosRF",
"HmIPRF",
"VirtualDevices",
"BidCosWired",
"CUxD"
Dabei kann jeder Dienst nicht bzw. noch nicht verfügbar sein.
Würde man nun RegHass als Interface aufnehmen, dann könnte der seine Topics ab seiner Verfügbarkeit ebenfalls im MQTT publizieren. Beispielsweise in den vorhandenen Channel-Topics. https://github.com/mdzio/ccu-jack/issues/73#issuecomment-1107862492
Mit Veap müsste das auch nicht im Wiedersprich stehen. Dort könnten die Informationen aus RegHass auch erst nach Aktivierung des Interfaces verfügbar werden.
(Edit) Wenn es im CCU-Jack auch noch eine vom Interface abhängige Konfiguration (ähnlich der VirtualDevices) geben würde, dann wäre sogar das veröffentlichen als HA Discovery möglich. Prinzipiell, steht das HA Discovery zu den restlichen Topics auch nicht in Konkurrenz.
"RegHass": {
"EnableHAMQTTDiscovery": true
}
"VirtualDevices": {
"Enable": false,
"NextSerialNo": 0,
"Devices": {}
}
Mir persönlich würden Read-Only Werte ausreichen.
Für mich kann NodeRed mehrere Topics zu einem JSON-Objekte zusammenfassen:
[
{
"id": "52d3c6d54b39ee66",
"type": "mqtt in",
"z": "a079c2c6d85e8f14",
"name": "raspberrymatic/device/status/OEQ1234567/1/TEMPERATURE",
"topic": "raspberrymatic/device/status/OEQ1234567/1/TEMPERATURE",
"qos": "2",
"datatype": "json",
"broker": "80511ebb.0e3c18",
"nl": false,
"rap": false,
"rh": "0",
"inputs": 0,
"x": 340,
"y": 160,
"wires": [
[
"91cf7844d9e92f21"
]
]
},
{
"id": "838a824d56ffd735",
"type": "mqtt in",
"z": "a079c2c6d85e8f14",
"name": "raspberrymatic/device/status/OEQ1234567/1/HUMIDITY",
"topic": "raspberrymatic/device/status/OEQ1234567/1/HUMIDITY",
"qos": "2",
"datatype": "json",
"broker": "80511ebb.0e3c18",
"nl": false,
"rap": false,
"rh": "0",
"inputs": 0,
"x": 350,
"y": 240,
"wires": [
[
"91cf7844d9e92f21"
]
]
},
{
"id": "91cf7844d9e92f21",
"type": "change",
"z": "a079c2c6d85e8f14",
"name": "Entfernen Topic Prefix & verschieben \"v\" nach Payload",
"rules": [
{
"t": "change",
"p": "topic",
"pt": "msg",
"from": ".*/",
"fromt": "re",
"to": "",
"tot": "str"
},
{
"t": "move",
"p": "payload.v",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 800,
"y": 200,
"wires": [
[
"3627f9e774896fb9"
]
]
},
{
"id": "3627f9e774896fb9",
"type": "join",
"z": "a079c2c6d85e8f14",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": false,
"timeout": "",
"count": "2",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1070,
"y": 200,
"wires": [
[
"de861f737a331563"
]
]
},
{
"id": "de861f737a331563",
"type": "debug",
"z": "a079c2c6d85e8f14",
"name": "debug 3",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1200,
"y": 200,
"wires": []
},
{
"id": "80511ebb.0e3c18",
"type": "mqtt-broker",
"name": "mqtt",
"broker": "mqtt",
"port": "1883",
"clientid": "",
"autoConnect": true,
"usetls": false,
"compatmode": false,
"protocolVersion": "5",
"keepalive": "60",
"cleansession": true,
"autoUnsubscribe": true,
"birthTopic": "",
"birthQos": "0",
"birthRetain": "false",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closeRetain": "false",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willRetain": "false",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
}
]
Ich bin auch endlich mal aktiv geworden und dabei heraus gekommen ist ein kleines Python-Tool, welches für die vorhandenen Homematic-Geräte, Systemvariablen und Programme MQTT Auto Discovery Einträge für Home Assistant erstellt und veröffentlicht. Alternativ die Ausgabe als HA yaml-Konfiguration.
Bisher werden nur Wertaktualisierungen von Datenpunkten über MQTT publiziert. Geräte-/Kanal-/Parametereigenschaften sollten zusätzlich über separate Topics publiziert werden.
Erste Überlegungen dazu sind in #73 zu finden.