Shelly Messspannung in % bzw. Liter umrechnen?

Hallo,
ich messe über einen Shelly UNI und einen 4-20 mA Drucksensor den Füllstand meiner Zisterne. Leider ist die Anzeige in Volt. Der Füllstand der Zisterne bewegt sich zwischen 0,6 Volt für 0% und 5,3 Volt für 100%.
Für die Steuerung meiner Bewässerung kann ich die Werte verwenden, für eine Füllstandsanzeige ist mir das zu kryptisch.
Habt ihr eine Idee, wie ich das in Litern oder % in Homey darstellen kann?

Danke für Eure Ideen!

Die flexibelste Variante wäre wohl Homeyscript. Setzt aber etwas Programmierung in JavaScript voraus (für die Umrechnung).
Man könnte bei Wertänderung deines Sensors(?) per Flow das Homeyscript aufrufen. Dort den Wert des Gerätes lesen, konvertieren und per Tag an den Flow zurückgeben.
Im Dann-Bereich des Flows könnte man den Wert in einen virtuellen Sensor übernehmen.

Also wenn du jetzt nicht nur Fragezeichen siehst sondern mit Homeyscript und Virtuellen Geräten etwas anfangen kannst, dann wäre das evtl. für dich. Ansonsten ist das vllt. zu technisch.

Es gäbe vielleicht noch eine Möglichkeit, aus den verfügbaren Volt Angaben eine Formel zu erstellen, um eine Variable im gewünschten Format zu berechnen. Um da spontan ein Beispiel der Formel zu geben, war ich zu schlecht in Mathe.

So etwas:

(V-0,6):0,047 ist in %
(V-0,6):4,7x500 ist in L
V anzeige der Shelly
Zisterne ist 500L

Helft dir das?

1 Like

Dann so wie @Undertaker vorgeschlagen hat:
Im Flow bei Änderung des Originalwertes die Berechnung ausführen und dann einen virtuellen Sensor damit füllen.
Den Originalwert wirst du nicht überschreiben können. Ich kenne den Shelly aber auch nicht.

Rechnen kannst du im Flow mit doppels geschweiften Klammern. Siehe hier:

So sähe die Liter-Berechnung inkl. Rundung auf eine Dezimalstelle aus:

{{round((2.5-0.6)/4.7*500,1)}}

Wobei die 2.5 einen gewissen Pegelstand simuliert und die 500 sich auf eine 500 Liter Zisterne bezieht (lt. Rechenbeispiel von @Wilfred_Greven). „round“ und die „,1“ runden das Ergebnis auf eine Dezimalstelle.
Die 2.5 müsste natürlich durch das Shelly Volt Tag ersetzt werden.

1 Like

Danke Danke an alle.
Ich denke, ich habe jetzt eine Vorstellung wie ich das lösen kann. Ich hab zwar noch nicht mit Script und virtuellen Geräten gearbeitet, aber das wird schon. Und wenn, werde ich mich bei euch wieder melden.

1 Like

Bin mir jetzt nicht sicher ob Du der Meinung bist, dass es nur per Skript funktioniert, weil es funktioniert rel. einfach mit nur einem Flow.

Was wird benötigt?

  • Eine numerische Variable, z.B. „Zisterne“
  • Ein virtuelles Gerät (Thermostat) von der Virtuelle Geräte App

Hinzufügen und Konfiguration des virtuellen Geräts:
Geräteübersicht + → Virtuelle Geräte → Gerät → Verbinden → Namen vergeben → weiter → Symbol auswählen oder eine eigene SVG-Datei hochladen → „Thermostat“ auswählen und die Einstellungen übernehmen, die im Screenshot zu sehen sind → weiter

Flow:

Ergebnis in der Geräteübersicht:

image

Info: Leider lässt das virtuelle Gerät nur ein Maximum von 200 (Liter) zu, deshalb habe ich das Beispiel in Prozent dargestellt.

Hallo fantross,
ich danke Dir für die einfache Darstellung.
Ich hab’s so umgesetzt und es funktioniert auch. Ich denke, mit der Ausweisung in % kann ich leben.
Die Begrenzung mit den 200, liegt das am virtuellen Gerät (Thermostat)?
MfG

Ja, ich meine früher war das Maximum sogar noch geringer und auf Wunsch einiger User wurde der Bereich angepasst. Für den App Entwickler wäre es wahrscheinlich durchaus möglich das Maximum weiter hochzusetzen, allerdings vermute ich das bei 999 Schluss ist. Eine vierstellige Ziffer wird vermutlich nicht mehr in die Anzeige passen. Aber Du kannst in diesem Beitrag ja einfach mal nachfragen.

Ich habe die Füllstandsmessung nach Deinem Vorschlag aufgebaut und muss sagen, dass funktioniert bisher 1A zuverlässig.
PS: in der Formel aus dem Bild fehlt noch die Nullwertkorrektur im Nenner. Richtig ist hier: /(0.047 -0.6),0)

Freut mich, dass es funktioniert. :+1:t3:

Nein, in den 0.047 sind die 0.6 (= Zisterne leer) schon berücksichtigt, ansonsten stünde da ja 0.053.

Mit Deiner Formel würdest Du bei vollem Tank (= 5.3 V) folgendes Ergebnis erhalten:
(5.3-0.6)/(0.047-0.6) = -8.5

Einfach mal nachrechnen…

Natürlich, Du hast recht. Ich hätte wohl meinen eigenen Beitrag besser lesen müssen :see_no_evil: