Füllstandsanzeige: Wemos plus Wägesens. (HX711, Problem) dann Abstandsse. US-100

Begonnen von andies, 17 Juli 2020, 22:48:54

Vorheriges Thema - Nächstes Thema

Papa Romeo

... is oft so... es kommt Ersten anders, als man Zweitens denkt.

Wollte eigentlich den Durchfluss-Sensor auch schon für heute Nacht (nächster Regenerationszyklus) eingebaut haben.
Aber heute war das Wetter ideal für nen Heckenschnitt. Waren halt wieder 4 Stunden die für´s Hobby fehlen  >:( ;) ;D

Die Patinen für das I2C-Zählmodul sind zwar gestern gekommen und ich hab eben mal auch noch Eine aufgebaut, den
Sketch auf dem NRF-Gateway schnell noch entsprechend aktualisiert, damit er diesen Sensor auch kennt, aber jetzt
will ich einfach nicht mehr ran, den Durchfluss-Sensor auch noch einzubauen.

Jetzt ist Zeit für`s "Feierabendbier"... so 1-2 ......... oder schreibt man zwölf ohne Bindestrich...  ::) :P :o ;D ;D ;D ;D ;D


LG

Papa Romeo

...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Der Vorgang scheint sich zu bestätigen.

Salzverbrauch um die 1.8 kg und wieder fast 45 min. lang die "Erleichterung" der Anlage um bis zu knapp über 6 kg.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Durchflussmesser eingebaut und die nächste Regeneration abgewartet.

Dieses mal wurden nur etwa 1,5 kg Salz verbraucht und die Anlage hat sich vorübergend nur um ca. 5,7 kg erleichtert. Dauer des Vorganges 35 min.

Der Wasserverbrauch beim Regenerationsvorgang lag bei knapp über 50 Liter bei einem maximalen Durchfluss von etwa 5 l/min.

Am Diagramm für den Durchfluss ist auch gut zu erkennen, dass am Anfang und am Ende des Vorgangs jeweils eine 4 minütige Spülphase mit etwa 5 l/min statt findet. Dazwischen wird für 10 min mit um die 1 l/min gespült, gefolgt von einer 17 minütigen Ruhephase.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Nächste Regenaration. Der Vorgang bezüglich den Gewichten scheint sich zu bestätigen.

Salzverbrauch: 1.5 kg
Kurzfristige Gewichtserleichterung der Anlage: 5.7 kg

Bezüglich den Zeit gibt´s Differenzen.

Dauer: 40 min. (5 min. länger als letztes mal)

und...die Anlage hat eine Tag früher regeneriert. Keine Ahnung warum. Muss ich erst noch klären.

Durchfluß- und Mengewerte habe ich dieses mal keine, da ich den Zähler für eine Modifikation abgebaut hatte
und erst heute im Laufe des Tages wieder montieren wollte, da die Regeneration ja eigentlich erst heute Nacht
stattfinden sollte.

LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

Also, nach einem Monat sehe ich immer noch nichts. Ich kann nur deutlich erkennen, dass der Sensor (trotz seiner drei Nachkommastellen) einfach zu ungenau ist. Unten ist ein Mitschnitt der Webseite, wenn man für 15 Sekunden mal anschaut, welchen Abstand der Sensor zu einer Haufen Salztabletten misst. Diese Tabletten bewegen sich nicht, es ist auch kein Wasser da zu sehen (mit Wasser sind die Schwankungen noch viel größer, wegen der Reflektion). Das Gerät ist einfach zu ungenau, um präzise Aussagen zu treffen. Ich muss schauen, wie ich da weitermache. Aber so geht das nicht wirklich.

https://youtu.be/ylZflw_1ZbU
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Hallo andies,

das ist gerade mal 1cm. Bei einer Regeneration wird dieser Wert doch mehr als 1cm betragen. Und damit kann ich doch schon mal eine Aussage treffen.
Bei meiner (deiner Anfangsmessmethode übers Gewicht) ist es ebenso. Ich habe durch die Wasserentnahme durch die Verbraucher kurzzeitige Schwankungen bis
zu 500 Gramm, aber im Durchschnitt eigentlich relativ konstant. Ist aber eigentlich uninteressant, da eine Regeneration bisher mindestens 1,5 kg an Salz verbraucht hat.
Und das ist für mich dann Aussagekräftig.

LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

Danke, das war ein guter Tipp. Ich werde jetzt (neben dem Mittelwert) die Schwankung auswerten, wobei ich dabei erst lernen musste,  dass beim event-aggregator kein Leerzeichen stehen darf
attr Salzmenge event-aggregator Schwankung:60:none:sd:3600,AverageDistance:60:none:mean:43200
attr Salzmenge userReadings AverageDistance {0.01*int(100*ReadingsNum($name, "SR04_Distance", 0)+0.05)}, Schwankung {0.01*int(100*ReadingsNum($name, "SR04_Distance", 0)+0.05)}

Wenn man die stündlichen Schwankungen ansieht, dann scheinen die ziemlich konstant zu sein, falls Salz auf dem Boden liegt. Daran kann ich zumindest erkennen, ob ich schon Wasser messe oder noch Tabletten. Und zudem scheint 28-29cm als Abstand auf einen leeren Kasten hinzudeuten, damit werde ich etwas anfangen können.

PS Übrigens scheint mir Standardabweichung falsch berechnet zu werden, https://forum.fhem.de/index.php/topic,114954.msg1091796.html#msg1091796
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Tja, das mit der Standardabweichung hat was gebracht. Unten sieht man die Beobachtung über drei Tage. Am ersten bedeckten Salztabletten völlig den Boden, etwa ab dem zweiten schien Wasser durch. Und schon geht die Standardabweichung durch die Decke.  Damit habe ich jetzt ein Maß, das ich auswerten kann. Irgendwie "Sd>0.6 => Abstand muss 31cm sein => Tabletten alle" oder so. Ich muss allerdings weiter beobachten, weil ich nicht weiß, ob 0.6 der richtige Wert ist.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Nach ein paar weitern Tagen muss ich sagen, dass die Standardabweichung doch nichts liefert. Eine so zerklüftete Oberfläche wie Salztabletten kann man nicht leicht messen (man müsste, wie Papa Romeo sagt, mehrere Sensoren anbringen, um einen Durchschnitt zu erfassen). Und da passieren komische Dinge: Durch die Regeneration verteilt sich im Behälter das Salz neu, es entsteht ein kleines Tal und der Abstand zum Sensor steigt, das ist intuitiv.  Bei der nächsten Regeneration aber fällt das Salz weiter und das Tal wird wieder zugeschüttet - dann sinkt auf einmal der Abstand zum Sensor! Der Abstand kann also steigen und fallen während einer Messperiode. Zudem wächst die Standardabweichung kurz nach einer Regeneration und auch wenn Wasser sichtbar ist - beides kann man aber nicht einfach unterscheiden. Dann nützt die Standardabweichung wenig.

Ich ändere wieder die Versuchseinstellung. Den Durchschnitt der Abstände nehme ich jetzt über die Werte eines Tages und ich experimentiere mit einem Wochendurchschnitt. Und ich plane weniger eine FHEM-Prognose der Form "Salz muss voraussichtlich am 31.12. getauscht werden" an, ich denke es wird eher hinauslaufen auf "Salz muss voraussichtlich in der KW 34 getauscht werden". (Wenn man nur KW-Vorhersagen macht, reicht auch eine Durchschnittsbildung über eine ganze Woche.) Ich hoffe, dass dann die oben genannten Probleme verschwinden, schauen wir mal.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Hallo andies,

parallel zur "Gewichtsmessung" hab ich auch noch ein wenig mit der Abstandsmessung "rumprobiert". Allerdings mit dem VL53LDK.

Vor der letzten Regeneration waren die Werte auch plausibel und entsprachen in etwa den "Aussagen" der Gewichtsmessung.

(Wasseroberfläche entsprach in etwa der Salzoberfläche)

Nach der letzen Regeneration gab´s dann Abweichungen. Das Salzstand sank unter die Wasseroberfläche des Salzbehälters.

Der Sensor misst jetzt nur noch den Stand der Wasseroberfläche und nicht mehr die Oberfläche der Salzfüllung, obwohl der Behälter noch gut zu einem Drittel (~ 7 kg) 

mit Salz befüllt ist. Lt. Beschreibung wird meine Anlage nach jeder Regeneration immer mit einer konstanten Menge Wasser für das Bilden der Salzsole befüllt.

Werde jetzt mal weiter beobachten, ob der jetzige Pegel dieser konstante Wasserstand ist oder ob dieser noch weiter fällt wenn wieder regeneriert wird.

Aber wie auch immer, wenn dieser Pegel erreicht ist, wird über die Abstandsmessung keine weitere Aussage über eine eventuell weiters durchgeführte Regeneration

getroffen werden können, außer man hat z.B. einen Durchflussmesser in der Spülleitung verbaut und frägt diesen ab.

Die Gewichtsmessung hat dahingehend weiter funktioniert, da das Salz in etwa doppelt so schwer ist, wie das Wasser.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Das Diagramm von der letzten Regeneration heute Nacht.
Ich hab die "Kurve" etwas entschärft, so dass nur noch Erreignisse grösser 500 Gramm
übermittelt und angezeigt werden.

Das Problem mit "Regeneration einen Tag früher" ist auch geklärt. Die Regeneration erfolgt nicht alle 8 sonder alle 7 Tage.

LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Meine Anlage hat heute nach wieder regeneriert. Die Gewichtsmessung zeigt die Wert wie bei den vorherigen Regenerationen auch.
Während der Refeneration wird die Anlage um über 6 kg leichter. Nach abgeschlossener Regeneration entspricht die Differenz wieder
ungefähr 1,5 kg, was wiederum der verbrauchten Salzmenge entspricht.

Die Abstandsmessung zeigt folgendes:

- vor der Regeneration lag der Wasserspiegel bei etwa 28 cm und das Salz um die 33 cm unter der Oberkante des Behälters
- nach der Regeneration liegt der Wassespiegel immer noch bei etwa 28 cm und das Salz bei ca. 36 cm unter der Oberkante des Behälters.

Da  die Abstandsmessung nicht unter Wasser- und Salzoberfläche differenzieren kann erhielt ich, wie erwartet, vor sowie nach der Regeneration
die gleichen Abstandswerte. Die oben aufgeführten Distanzen hab ich dann mit dem Meterstab ermittelt.

Fazit und "Ernüchterung": Die Abstandsmessung über Sensoren ist an ihre Grenzen gestoßen.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Die letzte Regeneration hat etwas ,,seltsame" Werte gebracht.

Lt. Waage wurden nur etwa 700 gr Salz verbraucht, obwohl die Spülwassermenge gegenüber den letzten Regenerationen mit etwa 50 Liter konstant war und das nachmessen des Salzverbrauches mit dem Meterstab in etwa dieselben Werte wie bei den letzten Beiden male ergab.

--> Wasserstand bei ca. 28 cm unterhalb Oberkante Behälter
--> Salzstand bei etwa   39 cm unterhalb Oberkante Behälter

...also wie bei den letzten malen, wieder ein Salzverbrauch von ca. drei ,,Höhenzentimetern"

Warum die Waage jetzt allerdings nicht konform geht, muß ich jetzt erst mal klären.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

Ich habe jetzt drei Wochen lang gemessen. Also der Abstandssensor war ja ungenau (d.h. eventuell misst er zwar punktgenau, aber die Salzmenge ist ja so zerklüftet, dass man nicht genau weiß, welches Maß er da nimmt) und so habe ich eine Kurve, die ich so nicht nutzen kann. Rohdaten sind unten. 

ich habe dann daraus mit event-aggregator über eine gesamte Woche lang Daten gemittelt. Das Bild sieht besser aus, aber nicht spektakulär. Immerhin konnte ich damit eine Trendlinie erstellen (X-Achse enthält Unix-Datum, Y-Achse enthielt Salzhöhe) und daraus ergibt sich ungefähr alle 3 Tage ein Zentimeter Verlust in der Salzhöhe. Um also bei 27cm anzukommen (=leerer Behälter), benötigt man also ca 7 Wochen und das passt zu meiner Beobachtung. Damit arbeite ich jetzt mal weiter, also
attr Salzmenge stateFormat {int((27-ReadingsVal($name, "AverageDistance", "offline"))*3/7)." Wochen (".0.1*int(10*ReadingsVal($name, "AverageDistance", "")+0.005)." cm)"}
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

pink99panther

Inspiriert durch diesen thread habe ich meine kleine BWT Entkalkunsanlage
( ~50 kg betriebsbereit ) nun auch auf die Waage gestellt.
Dazu habe ich eine ADE BE 1307 Tilda Personenwaage zerlegt.
Den HX711 und einen ESP8266 D1mini mit ESPeasy Mega (test_beta)
habe ich mit Panzertape unter der Waage angebracht.
Beim ersten Test hat ein Gewichts plus eine negativere Zahl am ESP ergeben.
Ein Tausch von E+ mit E- hat das geändert.
Im unbelasteten Zustand hatte ich dann einen Wert von 187465
den ich durch -187465 im Feld Offset auf ~0 gebracht habe.
Die folgenden Tests ergaben, dass das Gewicht auf der Waage jetzt schon
ohne weitere Umrechnung in 0,1 g ausgegeben wurde.
Durch %value% / 10000 im Feld Formula und eine 1 im Feld Decimals
bekomme ich nun das Gewicht meiner Anlage in kg mit einer Auflösung von 100g,
was mir vollkommen ausreicht.
Ich möchte ja nur wissen, wann ich Salztabs nachfüllen sollte.
Bei unserer alten Benkiser war das rein zeitgesteuert.
Da haben Einträge im Kalender genügt.
Die BWT macht das bedarfsabhängig.
Damit ich nicht selbst rechnen muss hab ich im FHEM-Device ein Userreading angelegt,
dass mir durch abziehen des Anlagengewichts die enthaltene Salzmenge anzeigt.