FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Feinfinger am 19 März 2019, 17:02:26

Titel: Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 17:02:26
Hallo zusamman,

Ich habe ermittel mit einem Ultraschallsensor die Höhe des Wasserspiegels in meiner Zisterne. (Einfacher Zylinder)

Jetzt würde ich gerne den Füllstand in Litern errechnen, allerdings komme ich nicht mit ValueFn zurecht.

Die Beispiele im Forum belaufen sich alle auf komplizierte Behälterformen.

Ich muss ja lediglich diese Formel nutzen V=pi*r²*h.

Kann mir mal jemand unter die Arme greifen?


Gruß Dirk
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Maui am 19 März 2019, 17:10:04
Stichwort userreadings  ;)
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 17:30:15
Sorry, aber damit ist nichts anzufangen.
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: amenomade am 19 März 2019, 17:40:01
https://fhem.de/commandref_DE.html#userReadings
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Maui am 19 März 2019, 17:42:19
Zitat von: amenomade am 19 März 2019, 17:40:01
https://fhem.de/commandref_DE.html#userReadings
Mist, du warst schneller.

PS: Wir wollen dir helfen, aber du erwartest eine fertige Lösung und keine Hilfe.
Und das ohne alle Infos zu geben.
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 18:28:46
Sorry, das habt ihr falsch verstanden.

Wenn ich es über das attr userReading lösen wollte, müsste der Syntax meiner Meinung nach so aussehen:

attr Wasserstand userReadings Volumen {ReadingsVal("Wasserstand","state",0)*1130400 ." L"}

Dann kommt aber beim Reading Volumen folgender Fehlercode.

Error evaluating Wasserstand userReading Volumen: Not enough arguments for main::ReadingsVal at (eval 665986) line 1, near "))"

Titel: Antw:Volumen mit Reading berechnen
Beitrag von: amenomade am 19 März 2019, 18:43:04
Mach mal ein "list Wasserstand" bitte
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 18:46:33
Internals:
   CFGFN     
   DEF        Zisterne:usensor
   DEVICE     Zisterne
   FUUID      5c90fde1-f33f-000f-b2c8-364670972b1083de
   NAME       Wasserstand
   NOTIFYDEV  global,Zisterne
   NR         245807
   NTFY_ORDER 50-Wasserstand
   READING    usensor
   STATE      153
   TYPE       readingsProxy
   CONTENT:
     Zisterne   1
   READINGS:
     2019-03-19 17:25:28   Volumen         Error evaluating Wasserstand userReading Volumen: Not enough arguments for main::ReadingsVal at (eval 665986) line 1, near "))"

     2019-03-19 17:25:28   state           153
Attributes:
   group      Zisterne
   room       MQTT-Devices
   userReadings Volumen {ReadingsVal("Wasserstand","state",0)*1130400 ." L"}
   valueFn    { (-1*(ReadingsVal("Zisterne","usensor", "180")-180)) }
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: amenomade am 19 März 2019, 18:51:06
Was soll valueFn hier machen?

Eigentlich egal, so lange "state" immer einen numerischen Wert hat.

Bei mir funktioniert das userReading wie Du es geschrieben hast.
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 18:56:24
Ich möchte das Volumen gerne in Litern angezeigt bekommen.

In diesem Beispiel ist der Code für eine ganz komplizierte Behäterform, die habe ich aber nicht, bin aber auch leider nicht in der Lage, diese auf meine Bedürfnisse anzupassen.

attr Tankinhalt valueFn { int((0.5*(20106-((6400*(acos(1-((ReadingsVal("Zisterne","USensor", "160")+0)/80)))-(sqrt(160*(ReadingsVal("Zisterne", "USensor", "160")+0)-((ReadingsVal("Zisterne", "USensor", "160")+0)**2))*(80-(ReadingsVal("Zisterne", "USensor", "160")+0)))))))) }
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: amenomade am 19 März 2019, 19:03:53
Heisst das Reading USensor oder usensor?
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 19:11:29
usensor


Hab ich aber auch schon getestet.
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: amenomade am 19 März 2019, 19:15:50
Also gib bitte noch dazu ein "list Zisterne"

Ich würde nicht userReadings und valueFn mischen. Insb. wenn jede mit seinen eigene "default" Werte arbeitet.
Der Syntaxfehler im userReading verstehe ich aber nicht.

Warum nicht einfach ein userReading direkt auf Zisterne, ohne den Umweg über readingsProxy?
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 19:58:30
Internals:
   CFGFN     
   FUUID      5c90fe99-f33f-000f-9b22-c79f9993b4862b52
   IODev      Mosquitto
   NAME       Zisterne
   NR         245868
   STATE      27
   TYPE       MQTT_DEVICE
   READINGS:
     2019-03-19 15:48:54   transmission-state incoming publish received
     2019-03-19 15:48:54   usensor         27
   message_ids:
   sets:
   subscribe:
     Sensor/Wasserstand
   subscribeExpr:
     ^Sensor\/Wasserstand$
   subscribeQos:
     Sensor/Wasserstand 0
   subscribeReadings:
     Sensor/Wasserstand:
       cmd       
       name       usensor
Attributes:
   IODev      Mosquitto
   group      Zisterne
   room       MQTT-Devices
   stateFormat usensor
   subscribeReading_usensor Sensor/Wasserstand


Ich nutze den readingsProxy um den Abstand zur Wasseroberfläche den der Sensor misst in eine Behälter Füllhöhe umzurechnen.
Titel: Antw:Volumen mit Reading berechnen
Beitrag von: Feinfinger am 19 März 2019, 20:11:33
kurze Rückmeldung.

Geht jetzt.

Durch das ganze testen hatte sich der Wemos mit dem Sensor aufgehangen. Ein reboot hat das Problem gelöst :-)

Danke an alle.