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:

Der Thread ist zwar schon etwas älter, möchte ihn aber gern wieder hoch holen da ich auch einen Shelly Uni und einen Hydrosensor 4 -20 mA nutze um den Füllstand in meinen Brunnen ( 1 meter Durchmesser und ca. 5 Meter hoch) zu messen. Am Uni habe ich 2 x 1 k Ω parralel angeschlossen und erhalte dann bei leer ca. 1,34 Volt

Fantross schrieb weiter oben
"So sähe die Liter-Rechnung 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."

Was ich noch nicht verstehe, was oder wie kommt er auf 4.7?
Bei meinen gegebenheiten vom Brunnen (1 m D und ca. 5 m hoch) und Spannungsmessung von 1,34 Volt sollte doch dann die Formel etwa so aussehen > {{round((2.5-1,34)/4.7*3927,1)}} (wobei dann die 3927 die Gesamtliterzahl dann ist), richtig? Was ich dann aber eben nicht verstehe ist die 4.7, woher nimmt er/du diese Zahl? Laut Grundflächenberechnung sollte doch die Grundfläche dann bei mir 0,785 m² sein oder liege ich da völlig falsch?

Würde mich über eine Antwort und die entsprechende Formel dann freuen. Vielen Dank

PS: Bin durch Zufall und Googlesuche auf dieses Board gestoßen und habe mich gleich mal registriert.

Hallo Heiner und herzlich willkommen!

Da der Shelly UNI in dem o.g. Fall bei einem Füllstand von 0 % bereits eine Spannung von 0.6 V ausgibt, müssen diese 0.6 V berücksichtigt bzw. verrechnet werden.
0 % Füllstand = 0.6 V
100 % Füllstand = 5.3 V
5.3 V (100 % Füllstand) - 0.6 V (0 % Füllstand) = 4.7 V Füllstandsbereich (0 - 100 %)
Die 4.7 (V) spiegeln also den tatsächlichen Füllstandsbereich zwischen 0 und 100 % dar.
In diesem Fall spielt die Dimension der Zisterne also gar keine Rolle, sondern einfach nur der Füllstand.


In Deinem Fall fehlt also noch die Spannung vom Shelly UNI, wenn der Brunnen voll ist.
0 % Füllstand = 1.34 V
100 % Füllstand = x V
x V (100 % Füllstand) - 1.34 V (0 % Füllstand) = x V Füllstandsbereich

Um einen 2. Spannungswert zu bekommen, muss der Brunnen ja nicht zwingend vollständig gefüllt sein. Dieser Spannungswert kann ja entweder auf 5 Meter bzw. 3.927 Liter hochgerechnet werden. Dazu müsstest Du aber entweder den aktuellen Füllstand (in mm/cm/m) oder das Volumen (in l) kennen.

Beispiel
Der Füllstand liegt bei 1.29 m und der Shelly UNI zeigt eine Spannung von 2.23 V an.
1.29 m bzw. 2.23 V (ohne Abzug des 0 % Wertes) entsprechen demnach einem Füllstand von 25.8 % bezogen auf 5 m Höhe.

Wieviel V entsprechen demnach 100 %?

Berechnung des Faktors
100 : 25.8 = 3.876

Berechnung der Spannung
3.876 * 2.23 V = 8.6434 V ~ 8.64 V
Die 8.64 V würden also ungefähr einem Füllstand von 100 % entsprechen.

Berechnung des Füllstandsbereiches für die Formel(n)
8.64 V (= 100 %) - 1.34 V (= 0 %) = 7.30 V

Die Formeln müssten also wie folgt aussehen:

  • Füllstand in %
    (V - 1.34) : 0.073
    bzw.
    {{round((V-1,34)/0.073,1)}}

  • Füllstand in l
    (V - 1.34) : 7.3 x 3927
    {{round((V-1,34)/7.3*3927,1)}}

Ich war schon immer schlecht im Erklären, aber ich hoffe, dass es einigermaßen verständlich ist und ich keinen Fehler eingebaut habe… :wink:

@ Fantross

vielen , vielen Dank. Nun verstehe ich es besser und kann damit auch was anfangen. Unser Brunnen hat zur Zeit nur ca. 1,15 m Wasserstand, wovon ich aber nur bis minimal ca. 0,70 m nutzen kann da sonst die Drucktauchpumpe Luft zieht. Aber du hast mir (und sicher auch anderen Usern) :sweat_smile: sehr geholfen.
Bis bald mal wieder

LG
Heiner

Hallo ,

kurze frage an @Heiner_Lindner, wie hast Du das jetzt umgesetzt? Die formel versteh ich ja, aber
wie pflege ich das jetzt in iobroker zb. mit ein. Habs mit js versucht bin aber kläglich gescheitert.

LG

OPI