@miss-erfolg Please see https://forum.pimatic.org/topic/1179/how-to-post-code-snippets-and-alike-on-the-forum
-
Homematic mit Pimatic verbinden?!
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
-
sudo -E pm2 startup -u smarthome
Heißt dein System smarthome? Da muss dr nutzername rein. Ich nehme an “pi” ??
Also:sudo -E pm2 startup -u pi
-
Ich habe, wie in der Anleitung beschrieben, den User smarthome angelegt. Aber mit dem anderen User Pi kommt die gleiche Fehlermeldung.
Vielleicht setze ich mal ein frisches Raspbian auf und versuche nochmal neu?!?!
Wie füge ich denn die Sensoren hinzu?
-
Es klappt noch immer noch nicht so richtig. In Pimatic bekomme ich keine Werte angezeigt.
Ich gehe davon aus, dass die Werte von den Homematic-Komponenten bereits auf dem MQTT-Server sind, denn mit mqtt-admin bekomme ich alle Daten angezeigt.
Wenn ich das hier
hm/status/Badezimmer DG:1/ACTUAL_TEMPERATURE
schicke, bekomme ich das hier zurück:
{"val":22.6,"ts":xxxxxxxxxxxxx,"lc":xxxxxxxxxxxxx,"hm":{"ADDRESS":"xxxxxxxxxxxxxx:1"}}
Ich vermute, dass meine Konfig in pimatic nicht richtig ist. Denn woher weiß pimatic, dass ich nur den zweiten Wert 22.6 haben möchte?
Kannst Du mir mal eine Beispielkonfiguration von einem Homematic-Sensor in Pimatic geben?
-
Lad dir mal einen lokalen Clienten runter unter gib “#” ein, dann bekommst du alle Meldungen die dein Broker empfängt auch. Dann kannst du dir die entsprechenden Aktoren raussuchen.
Neue Clienten legst du in der CCU an. Die werden dann automatisch mit dem Broker synchronisiert.
Als Beispiel für ein Thermostat:"brokerId": "homematic", "attributes": [ { "name": "val", "topic": "hm/status/HM-CC-RT-DN NEQ1408593:4/ACTUAL_TEMPERATURE", "type": "number", "unit": "°C", "acronym": "Temp", "messageMap": {} } ], "xAttributeOptions": [], "echo": { "additionalNames": [] }, "id": "wohnzimmer-temperatur-thermostat", "name": "Wohnzimmer Temperatur Thermostat", "class": "MqttSensor" },
Zum ändern musst du folgenden Befehl in eine Rule schreiben
{ "id": "wohnzimmer-ubertragen", "name": "Wohnzimmer übertragen", "rule": "when $heizung-wohnzimmer.temperatureSetpoint changes then publish mqtt message \"$heizung-wohnzimmer.temperatureSetpoint\" on topic \"hm/set/NEQ1408593:4/SET_TEMPERATURE\" on broker homematic qos: 1 retain: true", "active": true, "logging": false },
-
Hab’s hin bekommen. Der Knackpunkt war, dass der Name “val” sein muss. Ich hatte irgendeinen beschreibenden Namen gewählt. Kann mir einer erklären, warum der Name “val” sein muss? Habe das nicht verstanden.
Danke für Deine Unterstützung.
-
Ich habe auch lange probiert 😂😂
-
Muss man für jeden Wert, den man in Pimatic anzeigen möchte, ein neues Gerät/Device anlegen? Ich habe z.B. einen Homematic IP Raumtemperaturfühler, der Soll-, Ist-Temperatur und Luftfeuchtigkeit an den MQTT-Broker übermittelt. Da der Name des Attributs immer “val” ist, kann ich innerhalb eines Geräts/Device nur ein Attribut z.B. Luftfeuchtigkeit definieren. Wenn nun noch die Ist-Temperatur im gleichen Gerät konfiguriert werden soll, kann der dieses nicht anzeigen, weil wie oben erwähnt jedes Attribut “val” heißt. Oder hast Du das Problem irgendwie lösen können?
-
Nein, leider nicht… lasse es mich wissen, wenn du es geschafft hast
-
Hallo!
Danke für deine Anleitung zur Integration von Homematic! Hat mir sehr weitergeholfen!
Auch wir verwenden die Rolladenaktoren.
Da ich aber nur einen Pi für Pimatic verwende und keinen zweiten nur für hm2mqtt verwenden möchte,
habe ich eine Lösung auf Basis von n (ist auch in der verlinkten Anleitung verwendet worden) gefunden, die es erlaubt mehrere Node Versionen auf einmal zu verwenden. Dadurch braucht man nur noch einen Pi
Dazu ist eine Modfifizierung des Pimatic-Init.d-Scripts und des pm2 Startbefehls nötig.In der Anleitung wird mit
sudo n stable
die neuste node Version installiert, zusätzlich dazu muss an dieser Stelle mitsudo n 4.8.7
die zurzeit neuste Node 4 Version installiert werden.Zusätzlich wird das Init Script von Pimatic geändert, sodass Pimatic immer auf Node 4 zugreift.
Dazu muss der Pfad zu Node herausgefunden werden, das gelingt mitn bin 4.8.7
Den ausgegebenen Pfad kopieren und nun mit
sudo nano /etc/init.d/pimatic
die Zeilepimatic.js $1
ändern zu
/usr/local/n/versions/node/4.8.7/bin/node /home/pi/pimatic-app/node_modules/pimatic/pimatic.js $1
und die Pfade anpassen.Bei mit hatte pm2 keine Schreibrechte für das Log im Home-Directory, sodass es nur mit root genutzt werden konnte, ich wollte hm2mqtt aber als Nutzer “pi” ausführen, die Lösung war das .pm2 Verzeichnis neu zu erstellen:
sudo rm -r /home/pi/.pm2
mkdir /home/pi/.pm2
Nun können mit
n
die installierten Node Versionen angezeigt werden um herauszufinden, welche Version als latest installiert wurde (bei mit 9.4.0).
Anschließend mitn bin 9.4.0
(Version natürlich anpassen) den Pfad zur neuen Node Version kopieren.
Folgend kann mit pm2 hm2mqtt gestartet werden. Hierbei muss der Interpreter Pfad, die CCU-IP und die MQTT-Server IP (bei mir die IP vom Pi) angepasst werden:
pm2 start --interpreter /usr/local/n/versions/node/9.4.0/bin/node hm2mqtt -- --ccu-address 192.168.X.X --mqtt-url mqtt://192.168.X.X
Mit
pm2 list
undpm2 show hm2mqtt
kann nun der Status der Anwendung ausgegeben werden. Hier sieht man auch, dass es als Nutzer pi läuft.
Meine Ausgabe:
Jetzt nur noch mittels
pm2 save
undpm2 startup -u pi
und kopieren der Ausgabe wie beschrieben den Service in den Autostart packen (Ausgabe bei mir:sudo env PATH=$PATH:/usr/local/bin pm2 startup systemd -u pi --hp /home/pi
)Mittels
pm2 stop hm2mqtt
kann falls gewünscht das Programm gestoppt werden.Sind diese Schritte erfolgreich ausgeführt, kann wie in der von @t1m0 verlinkten Anleitung fortgefahren werden. (Verbindung mit MQTT-Server über MQTT-Admin, Hinzufügen der Devices in Pimatic usw.)
Bei meinen Rolläden habe ich jeweils ein MQTT-Shutter (für rauf/runter) und ein MQTT-Buttons Device (für 50% und 75%) in Pimatic eingerichtet.