Ultraschallmessung - Korrekturen bei ESPEasy möglich?

Begonnen von Tedious, 07 Dezember 2017, 09:41:52

Vorheriges Thema - Nächstes Thema

Tedious

Guten Morgen,

ich bastele grade an einer Ultraschallmessung um das Restöl in meinen Tanks zu berechnen (Rechnen in FHEM muss ich erst mal verstehen - aber das ist ein anderes Problem :))

Am ESP hängen ein HC-SR04 und ein DTH11 und liefern mit die Werte für Temperatur, Luftfeuchte und Distanz im Tank bzw im Tankraum. Soweit, so gut, das funktioniert schon mal. Ich messe alle 3 Stunden die Distanz (Temperatur nur alle 6, die ist eh recht konstant) und bilde bei der Füllhöhe ein Mittel über 12 Stunden um Messungenauigkeiten zu minimieren. Ich bekomme also beispielsweise einen Wert von 98, der Sensor hängt auf 158cm Höhe, bleiben also 60cm Füllhöhe im Tank. Fein, ich habe noch rund 2400l Öl (wie gesagt, momentan berechne ich das noch händisch, zum Thema Berechnungen in FHEM muss ich mich noch einfuchsen, das hatte ich noch nicht auf dem Radar).

Die Frage ist aber die folgende: ich habe gelesen dass die Schallgeschwindigkeit von Temperatur und Luftfeuchte abhängen. Nun liefert mir ESPEasy aber nicht die gemessene Zeit, sondern die Distanz. Insofern kann ich nur schwerlich eine Korrekturberechnung durchführen. Weiß jemand ob ich

a) das umstellen kann? Also mir von ESPEasy nur den Zeitwert statt der Distanz liefern lassen?

oder

b) welchen Wert (Schallgeschwingigkeit) ESPEasy default für die Berechnung benutzt? 20°C? Denn könnte ich das zumindest rückrechnen und mit den gemessenen Parametern korrigieren - ist zwar umständlich, aber zumindest ein Workaround...

Oder geht das noch einfacher und ich habe mal wieder einen Knoten im Hirn....

Bin für jeden Tip dankbar,

Grüße Sascha
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Bapt. Reverend Magersuppe

Ich kann mir nicht vorstellen das Temperaturschwankungen so viel ausmachen das du signifikante Abweichungen bekommst. Ob der Aufwand lohnt?
Vor allem hat man in so einem Ölkeller auch wenig Temperaturänderungen, die Temperatur misst du doch auch.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Morgennebel

Zitat von: Tedious am 07 Dezember 2017, 09:41:52
Soweit, so gut, das funktioniert schon mal. Ich messe alle 3 Stunden die Distanz (Temperatur nur alle 6, die ist eh recht konstant) und bilde bei
[...]
Die Frage ist aber die folgende: ich habe gelesen dass die Schallgeschwindigkeit von Temperatur und Luftfeuchte abhängen. Nun liefert mir

Wenn die Temperatur so konstant ist, daß sie nur alle 6h gemessen werden muß, wofür der Aufwand?

Du fährst den Tank ja nicht auf 0.01% runter...

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Tedious

Hi,

natürlich sind die Schwankungen der Temperatur marginal. Aber wenn als Referenz beispielsweise 20°C benutzt wird um die Distanz zu berechnen, und ich im Bereich 12-14°C real messe tritt eine Differenz auf. Und die würde ich gerne korrigieren. Es sind zwei Tanks, zusammen 6000l. 1cm entspricht ~20l Öl, bei 2 Tanks also 40l. Liefert die Messung also falsche Werte wird das Ganze also ungenau, bei 3cm sind das schnell mal 180l. Natürlich, ich denke mal das dürfte auch nicht ungenauer sein als die alte "Lampe auf den Tank und mit dem Zollstock messen"-Variante, aber wenn man schon mal dabei ist... ;)
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

automatisierer

dann solltest du auch noch den Wärmeausdehnungskoeffizient des Heizoels und des Oeltanks mit einbeziehen...

Morgennebel

Zitat von: Tedious am 07 Dezember 2017, 10:03:15
natürlich sind die Schwankungen der Temperatur marginal. Aber wenn als Referenz beispielsweise 20°C benutzt wird um die Distanz zu berechnen, und ich im Bereich 12-14°C real messe tritt eine Differenz auf. Und die würde ich gerne korrigieren. Es sind zwei Tanks, zusammen 6000l. 1cm

Laut https://www.pepperl-fuchs.com/global/de/25518.htm pro Grad Kelvin 0.17% Abweichung.

Dann hast Du gnadenlose 1.36% auf der gemessenen Distanz (8 Grad Kelvin). Bei 60cm Füllhöhe sind dies 0.00816cm. D.h. die Meßungenauigkeit ist in etwa 0.5L  bei Deinen beiden Tanks.

Da würd ich doch KISS nehmen und das ganze ignorieren...

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Tedious

Hi,

danke für die Hinweise. nun, denn ist das ja doch eher marginal was die Abweichung betrifft. Fein, denn bleibt es einfach so ;)
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

automatisierer

wenn mich meine Mathekenntnisse nicht im stich lassen, dann ergibt sich bei 3000L Tankinhalt und einem Grad Temperaturveränderung eine Änderung vom 2,5L Volumen... Dasd haut dann schon eher rein... aber immer noch irrelevant - würde ich sagen...

Die Messgenauigkeit von dem Ultraschallsensor liegt übrigends bei :
ZitatSpecifications:
power supply :5V DC
quiescent current : <2mA
effectual angle: <15°
ranging distance : 2cm–500 cm
resolution : 0.3 cm

0,3cm...

Tedious

#8
Danke, Ihr habt mich überzeugt. Ist manchmal so - man latscht alle zwei Wochen in den Keller und misst mit einem Zollstock, trägt das in Excel ein und freut sich über Statistiken und Kurven die sich aktualisieren. Denn will man sich das sparen und macht sich über Messungenauigkeiten einen Kopf - irgendwie paradox :D Ich lass das erst mal so und schau mal wie sich das Ganze so entwickelt.

Aber vielleicht darf ich grade noch einmal nachfragen. FHEM und rechnen, das ist nicht meine Welt. Ich generiere meine Daten und will die jetzt auch auswerten. So weit, so gut... Manuell kann ich das alles berechnen, in FHEM klemmt es noch, vielleicht hat ja jemand noch einen Schubs für mich ;)

Ich berechne einen 12-Stunden Mittelwert mit

{myAverage("43200", "myDbLog", "ESPEasy_Oeltank_Sensor_Distanz:Distance::")}

Das würde ich gerne in einen Dummy schreiben

set Restfuellstand_Oel_Average12h {myAverage("43200", "myDbLog", "ESPEasy_Oeltank_Sensor_Distanz:Distance::"}

Das State ist bei dem Aufrauf aber

{myAverage("43200", "myDbLog", "ESPEasy_Oeltank_Sensor_Distanz:Distance::")}

statt einer Zahl. Muss an meiner Klammerung liegen, aber mir ist nicht ganz klar warum. Mit Set dummy mache ich ihm klar was ich will, mit { rufe ich die Funktion auf - dachte ich zumindest, ist aber offensichtlich nicht der Fall... wo liegt mein Denkfehler?

FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

automatisierer

die entsprechende sub hast du in die 99_myUtils eingefügt?

Tedious

Ja. Rufe ich die Funktion aus FHEM heraus direkt auf liefert er mir auch den Wert.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

automatisierer

set Restfuellstand_Oel_Average12h {(myAverage("43200", "myDbLog", "ESPEasy_Oeltank_Sensor_Distanz:Distance::"))}

try this

justme1968

die temperatur hat einen ziemlichen einfluss. je nach keller sind hier tag und nacht schwankungen deutlich zu sehen.

die luft feuchte ist aber tatsächlich zu verbachlässigen. zum einen ist der einfluss viel kleiner als dabei der temperatur, zum anderen ist dir genauigkeit der messung so schlecht das es die abweichung eher noch vergrößert.

da die zu findenden formeln auch alle für luft ohne heizöl anteil sind ist auch noch ein grund die feuchte zu ignorieren.

ansonsten kannst du ja einfach mal ausrechnen ob die temperatur schwankungen in deinem keller relevant sind.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tedious

@automatisierer:

Besten Dank, das funktioniert - Klammern und ich, wir stehen auf Kriegsfuß ;)

Ich werde das jetzt mal ne Weile laufen lassen und parallel ab und an "klassisch" mit dem Zollstock kontrollieren. Sollte ich eine signifikante Differenz feststellen schau ich mla ob ich eine Analogie sehe und eine Korrektur einrechne. Wenns halbwegs passt und die Differenz nicht grade ein paar huntert Liter sind kann ich damit an sich gut leben.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

automatisierer

Würde mich freuen von den Ergebnissen zu hören, dieses Projekt liegt auch noch vor mit.

Tedious

#15
Klar, kein Thema, gerne.

Schaut inzwischen so aus (Bilder).

An die Pins am Levelshifter kommen die Datenleitungen, oben denn die Versorgung (5V/GND) für die Sensoren. Gehäuse muss ich noch drucken, wollte erst mal testen ob alles funktioniert. Muss noch 5V in den Tankraum legen, im Moment hängt das Ganze an einer Powerbank und läuft rund 2 Tage. Noch nicht getestet habe ich den SleepMode. Wobei mir LiPo-Akkus im tankraum an sich auf Dauer nicht so recht sind.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

automatisierer

keine Angst, Flammpunkt ist irgendwo über 55°C. Vermutlich kannst du nen Brennenden LiPo Akku zum löschen in den Tank schmeißen.

Gut, kommt drauf an wie groß der ist... 8)

marco-f

Ich les hier mal mit ... denn das Thema möchte ich auch noch angehen.

Wie hast Du vor die Sensoren im/am Tank zum montieren?

MfG
Marco

Tedious

Ich habe für den Sensor ein Gehäuse gedruckt. Den Sensor ins Gehäuse rein, mit Heißkleber abgedichtet. Denn den Sensor mit Heißkleber mittig in einen Deckel geklebt, am Rand des Deckels ein kleines Loch gebohrt... Kabel durchgeführt und auch mit Heißkleber versiegelt.

Der erste Versuch war es zwei Löcher in den Deckel zu bohren durch den die beiden Sender/Empfänger des US-Sensors durchpassen. Das hat aber nur Mist geliefert, schätze ich war entweder nciht genau mittig oder es gab Reflexionen. So passt das gut. DTH ist außerhalb des Tanks - wenn der Raum 12°C hat hat es der Öl vermutlich auch... ;)
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

ChrisW

Hi plane auch so ein Projekt aber ich hab 4 Tanks also 4 Sensoren an den ESP. Geht das + Temperatur? Wie sind deine Erfahrungen bis heute ?
Raspberry PI3 mit allem möglichen.

Tedious

#20
An sich sollten die Tanks verbunden sein und sich untereinander nivellieren, so ist das zumindest bei mir. Denn brauchst Du nur an einem zu Messen und multiplizieren. Normalerweise wird ja auch beim Füllen nur einer gefüllt, der Rest nivelliert sich - oder sind das tatsächlich 4 einzeln stehende nicht verbundene und separat gefüllte Tanks?

Und noch ein Hinweis (Erfahrung): ich habe aus dem Heizraum einen kleinen 8mm Durchbruch gebohrt und hole mir von da die 5V DC per Kabel (normales Telefonkabel, 4-adig - durchgeführt und mit Acry versiegelt). Das läuft so weit sehr stabil, aber wenn der ESP z.B. nach Stomausfall neu booten muss reichen die 5V am Vin scheinbar nicht aus um ihn stabil zu booten. Ich muss denn immer eine Powerbank kurz anstecken, denn bootet er durch und läuft wieder stabil (Powerbank wieder ab nach Boot). Ich hab jetzt micoUSB-Stecker zum löten gekauft und versorge ihn (wenn ich mal Zeit habe..) denn per USB-Buchse. Nur als Hinweis...
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

ChrisW

wie lang darf das Kabel vom sensor zum ESP den sein ? Ja sind 4 die sich ausgleichen. ABER ich hab ab und zu das was verstopft und die Tanks nicht mehr gleich sind. ABER JA 1 Sensor sollte auch erstmal reichen.
Dachte nur bei dem Preis wieso nicht auf nummer sicher.
+ Leckalarm über Fhem :) Wobei der Leckalarm ja auch geht bei einem Sensor.
Raspberry PI3 mit allem möglichen.

Tedious

Zur Länge kann ich wenig sagen (maximal). Ist bei mir ca. 40 cm lang. Am US-Sensor sitzt noch ein Stützkondensator zwischen + und -.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...