Solltemperatur lesen/schreiben über Exec Binding

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
hannesk1973
Beiträge: 9
Registriert: 4. Mär 2021 19:05
Answers: 0

Solltemperatur lesen/schreiben über Exec Binding

Beitrag von hannesk1973 »

Hallo zusammen,
ich bin jetzt schon einige Zeit am basteln und eigentlich schon weit gekommen, mein Projekt ist dass ich zusätzlich zu einigen anderen Dingen in meinem Home meine Heizung ansteuern kann.
Die Heizung ist über Netzwerk erreichbar und über ein proprietäres Interface (kein Binding) kann ich Werte lesen und schreiben.
Da ich mich über ein eigenes Binding noch nicht drübergetraut habe schreibe ich über ein kleines Programm zyklisch die Werte auf Dateien in einem TempFs auf meinem Raspi.
Anzeigen dieser Werte über das Exec Binding ist soweit auch problemlos möglich.

Mein Ziel wäre aber jetzt die Solltemperatur für einen Heizkreis nicht nur lesen sondern auch schreiben zu können.
Damit bin ich aber bisher mit meinem Exec Binding noch gescheitert.

Cmd Line:
/home/openhabian/readwritecmd.sh RaumtemperaturSollEG %2$s

readwritecmd.sh
#!/bin/bash
prev=$(cat /home/openhabian/tmp/in/heizung_$1)
if [ $2 != $prev ]
then
echo $2 > /home/openhabian/tmp/out/heizung_$1
fi
echo $prev
Bekomme aber folgende Exception
An exception occurred while formatting the command line '/home/openhabian/readwritecmd.sh RaumtemperaturSollEG %2$s' with the current time 'Thu Mar 04 19:57:40 CET 2021' and input value 'null': Format specifier '%2$s'
Wie bekomme ich denn Initial einen Wert auf das Item drauf.

Gibt es Ideen wie ich das anders lösen könnte ?

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Solltemperatur lesen/schreiben über Exec Binding

Beitrag von udo1toni »

Das Item muss mit dem Input Channel von Exec gekoppelt sein. Dann setzt Du noch autorun auf true und wenn das Item sich ändert, wird der Befehl gesendet.

Allerdings ist das Ganze in meinen Augen relatives Gemurkse :)
Meine Empfehlung wäre, dass Du Dein Programm dahingehend änderst, dass es über mqtt kommuniziert. Du hast leider nicht geschrieben, in welcher Sprache Du programmiert hast, aber letztlich sollte es für die meisten Umgebungen Libraries geben, bei Python wäre das z.B. paho, das ist sehr komfortabel zu verwenden.
Ich habe bei mir verschiedene Systeme laufen, die ich mit mqtt kommunizieren lasse, z.B. einen RGB LED Stripe oder auch einen Rechner, auf dem zwei Dienste installiert sind, die nicht gleichzeitig laufen dürfen (es geht hier um zwei Web-Schnittstellen zu meiner Calibre Buchverwaltung), über mqtt kann ich zwischen beiden Servern hin- und her schalten oder auch beide Server beenden (wenn ich calibre selbst starten möchte).
Der Client läuft jeweils als Dienst auf dem Remote Rechner und reagiert zum Einen auf Steuerbefehle, zum Anderen sendet er selbst eine Bestätigung, dass der Befehl ausgeführt wurde.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

hannesk1973
Beiträge: 9
Registriert: 4. Mär 2021 19:05
Answers: 0

Re: Solltemperatur lesen/schreiben über Exec Binding

Beitrag von hannesk1973 »

Wahrscheinlich hast du recht das ist ein Gemurkse, aber auf der Heizung kann und will ich kein MQTT implementieren.
Die Heizung unterstützt lediglich ein RPC Protokoll für das ich eine Java Lib habe mit der ich eben die Werte lesen und schreiben kann.
Auf dem Openhab dann noch einen MQTT Client zu implementieren scheint mir aber auch nicht die eleganteste Lösung oder ?
Wahrscheinlich wäre die beste Möglichkeit ein Binding auf Basis dieser Lib zu implementieren.




Aja und Item ist natürlich auf den Eingabewert/Input gemappt nur ist Wert Initial "NULL" und der kann scheinbar nicht auf %2$f formatiert werden lt. Fehlermeldung.

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Solltemperatur lesen/schreiben über Exec Binding

Beitrag von udo1toni »

Na aber die Java Lib verwendest Du ja auch irgendwo in einem Programm... Dann kannst Du dieses Programm doch leicht um mqtt erweitern, für Java gibt es doch auch mqtt Libraries.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

hannesk1973
Beiträge: 9
Registriert: 4. Mär 2021 19:05
Answers: 0

Re: Solltemperatur lesen/schreiben über Exec Binding

Beitrag von hannesk1973 »

Ja läuft localhost auf meinem Raspi auf dem auch OpenHab läuft.
Aber ja mein nächster Versuch wird dann den MQTT Client localhost mit dem MQTT Broker zu verbinden, hoffe das funktioniert dann auch so.
Das Design mit Exec und Filesystem habe ich aus ein paar Beispielen mit DHT22 und darum so weitergemacht.

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Solltemperatur lesen/schreiben über Exec Binding

Beitrag von udo1toni »

hannesk1973 hat geschrieben: 5. Mär 2021 07:51 Ja läuft localhost auf meinem Raspi auf dem auch OpenHab läuft.
Aber ja mein nächster Versuch wird dann den MQTT Client localhost mit dem MQTT Broker zu verbinden, hoffe das funktioniert dann auch so.
Das Design mit Exec und Filesystem habe ich aus ein paar Beispielen mit DHT22 und darum so weitergemacht.
Ja, das ist überhaupt kein Problem. mosquitto läuft ja (wenn installiert) auch auf dem Raspberry parallel zu openHAB, da ist openHAB auch "nur" ein Client, der halt localhost zugreift.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

hannesk1973
Beiträge: 9
Registriert: 4. Mär 2021 19:05
Answers: 0

Re: Solltemperatur lesen/schreiben über Exec Binding

Beitrag von hannesk1973 »

Danke nochmal für die schnelle Hilfe, habe jetzt auf MQTT umgestellt und läuft toll.

Antworten