Volumen mit Reading berechnen

Begonnen von Feinfinger, 19 März 2019, 17:02:26

Vorheriges Thema - Nächstes Thema

Feinfinger

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
Proxmox VM - MAPLE-CUL - SIGNALDINO

Maui


Feinfinger

Sorry, aber damit ist nichts anzufangen.
Proxmox VM - MAPLE-CUL - SIGNALDINO

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Maui

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.

Feinfinger

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 "))"

Proxmox VM - MAPLE-CUL - SIGNALDINO

amenomade

Mach mal ein "list Wasserstand" bitte
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Feinfinger

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)) }
Proxmox VM - MAPLE-CUL - SIGNALDINO

amenomade

#8
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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Feinfinger

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)))))))) }
Proxmox VM - MAPLE-CUL - SIGNALDINO

amenomade

Heisst das Reading USensor oder usensor?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Feinfinger

usensor


Hab ich aber auch schon getestet.
Proxmox VM - MAPLE-CUL - SIGNALDINO

amenomade

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?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Feinfinger

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.
Proxmox VM - MAPLE-CUL - SIGNALDINO

Feinfinger

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.
Proxmox VM - MAPLE-CUL - SIGNALDINO