Hallo,
ich habe am Raspi über GPIO einen Ultraschallsensor angeschlossen, um mir im Frischwassertank den Füllstand anzeigen zu lassen.
Dazu habe ich diese Anleitung verwendet: https://tutorials-raspberrypi.de/entfer ... r-hc-sr04/
Funktioniert auch wunderbar. Wenn ich das Script aufrufe, wird mir die errechnete Distanz in der Console ausgegeben. Wie kann ich denn nun die Ausgabe aus dem Script, welches die Distanz berechnet, unter PaperUI darstellen?
Viele Grüße,
Thomas
Füllstandanzeige in PaperUI
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Füllstandanzeige in PaperUI
Es ist die Frage, wie das Script arbeitet.
Das auf der von Dir verlinkten Seite läuft ja nun dauerhaft und macht sekündlich ein Update. Wenn Du das so laufen lassen willst, wäre es am sinnvollsten, das Script um einen mqtt Client zu erweitern (dafür gibt es die mqtt.paho Bibliothek) und den Wert bei Wertänderung nach mqtt zu schicken.
Alternativ könntest Du das Script so ändern, dass es nur einen einzelnen Wert liefert. Dann kannst Du das Exec Binding verwenden, um den Rückgabewert in ein String Item zu schreiben. Wenn Du den Wert als Zahl verwenden willst, musst Du danach das String Item bei Wertänderung in ein NumberItem parsen lassen (dazu muss eine kleine Rule herhalten).
Das auf der von Dir verlinkten Seite läuft ja nun dauerhaft und macht sekündlich ein Update. Wenn Du das so laufen lassen willst, wäre es am sinnvollsten, das Script um einen mqtt Client zu erweitern (dafür gibt es die mqtt.paho Bibliothek) und den Wert bei Wertänderung nach mqtt zu schicken.
Alternativ könntest Du das Script so ändern, dass es nur einen einzelnen Wert liefert. Dann kannst Du das Exec Binding verwenden, um den Rückgabewert in ein String Item zu schreiben. Wenn Du den Wert als Zahl verwenden willst, musst Du danach das String Item bei Wertänderung in ein NumberItem parsen lassen (dazu muss eine kleine Rule herhalten).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 6
- Registriert: 27. Jan 2020 12:21
Re: Füllstandanzeige in PaperUI
Das hört sich vielversprechend an. ExecBinding hört sich gut an. Ich habe zwar noch nicht gelesen, was es macht, aber wenn man vom Namen auf die Funktion schließen kann, könnte das die Lösung für das Problem sein. Werde ich die Tage mal angehen und das Ergebnis posten.udo1toni hat geschrieben: ↑14. Jun 2020 18:49 Alternativ könntest Du das Script so ändern, dass es nur einen einzelnen Wert liefert. Dann kannst Du das Exec Binding verwenden, um den Rückgabewert in ein String Item zu schreiben. Wenn Du den Wert als Zahl verwenden willst, musst Du danach das String Item bei Wertänderung in ein NumberItem parsen lassen (dazu muss eine kleine Rule herhalten).
Vielen Dank für Deine Zeit und die Infos!
-
- Beiträge: 6
- Registriert: 27. Jan 2020 12:21
Re: Füllstandanzeige in PaperUI
Bingo!
Ich habe die Schleife, in der der Wasserstand berechnet und ausgegeben wird entfernt. Dann das Bindig ExecBinding installiert und eingerichtet. Das script habe ich dann samt Pfad in die exec.whitelist Datei eingefügt und es funktioniert.
Kleiner Schönheitsfehler: leider "verrutscht" die Anzeige des Output-Werts eine Zeile tiefer, so daß Label und Value nicht auf einer Linie sind.
Ich habe die Schleife, in der der Wasserstand berechnet und ausgegeben wird entfernt. Dann das Bindig ExecBinding installiert und eingerichtet. Das script habe ich dann samt Pfad in die exec.whitelist Datei eingefügt und es funktioniert.
Kleiner Schönheitsfehler: leider "verrutscht" die Anzeige des Output-Werts eine Zeile tiefer, so daß Label und Value nicht auf einer Linie sind.
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Füllstandanzeige in PaperUI
Das deutet darauf hin, dass zu Beginn der Ausgabe ein Zeilenumbruch steht. Solange es nur um die Anzeige geht, ist ein String sicher ausreichend, aber sobald Du mit dem Messwert etwas anfangen willst (z.B. eine Prozent-Anzeige mit dynamischem Icon) musst Du den String in ein Number Item parsen. Da der exec Channel "output" immer vom Typ String ist, musst Du das per Rule und Proxy Item erledigen. Beim parsen wird aber der Zeilenumbruch auch gleich entfallen.
Gesendet von meinem SM-G973F mit Tapatalk
Gesendet von meinem SM-G973F mit Tapatalk
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 6
- Registriert: 27. Jan 2020 12:21
Re: Füllstandanzeige in PaperUI
Ja, das ist auch meine Vermutung. Leider kann ich nur trailing line feeds über das print-Kommando in Python rausfiltern.
Gibt es denn ein Beispiel für die Konversion von String in Number?
Gibt es denn ein Beispiel für die Konversion von String in Number?
-
- Beiträge: 6
- Registriert: 27. Jan 2020 12:21
Re: Füllstandanzeige in PaperUI
Disregard - habe schon ein Beispiel gefunden, probiere es aus und wenn ich Probleme habe, melde ich ich nochmal.