Seite 1 von 1

Füllstandanzeige in PaperUI

Verfasst: 14. Jun 2020 17:08
von Weltenbummler18
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

Re: Füllstandanzeige in PaperUI

Verfasst: 14. Jun 2020 18:49
von udo1toni
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).

Re: Füllstandanzeige in PaperUI

Verfasst: 14. Jun 2020 22:01
von Weltenbummler18
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).
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.

Vielen Dank für Deine Zeit und die Infos!

Re: Füllstandanzeige in PaperUI

Verfasst: 15. Jun 2020 12:24
von Weltenbummler18
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.

Re: Füllstandanzeige in PaperUI

Verfasst: 15. Jun 2020 15:54
von udo1toni
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



Re: Füllstandanzeige in PaperUI

Verfasst: 15. Jun 2020 21:13
von Weltenbummler18
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?

Re: Füllstandanzeige in PaperUI

Verfasst: 15. Jun 2020 21:16
von Weltenbummler18
Disregard - habe schon ein Beispiel gefunden, probiere es aus und wenn ich Probleme habe, melde ich ich nochmal.