Hi,
nachdem ich in den letzten Monaten erfolgreich meine Hausautomation mit Hilfe des Wikis
und eifrigem Lesen hier im Forum mein Hausautomation realisiert habe,
stehe ich bei einem Teil meines neuen Projektes auf dem Schlauch und bräuchte von
Euch mal einen Fingerzeig in die richtige Richtung.
Mein neues Projekt ist eine automatische Poolsteuerung mit Temperaturmessung, Solarsteuerung,
Filterdruckmessung, Füllstandsanzeige etc.. Irgendwann auch mall Redox/Chlor und PH-Messung und - Regulierung. Dazu wird später noch Gartenlichtsteuerung, sowie Bewässerung kommen
Die meisten Sensoren und Module(Horter Module über I2C, 1-Wirebus, Signalduino...) habe ich zusammen
und angeschlossen. So weit, so gut.
Jetzt möchte ich jedoch eine Volumenstrommessung auf der Saugseite meiner Pooolpumpe durchführen.
Dadurch kann ich erkennen, ob die Skimmer verstopft sind.
Implementieren möchte ich das mit folgendem Durchflussmesser: https://de.aliexpress.com/item/32812172932.html (https://de.aliexpress.com/item/32812172932.html) (YF-DN50)
Jetzt ist die Frage, wie schliesse ich den Sensor am besten am Raspi an bzw. wie binde ich den in FHEM ein.
Eine kabelgebundene Lösung bietet sich am ehesten an, da der Sensor in der Nähe vom Kleinverteiler mit
dem Raspi sitzen wird. Das ganze wird auf nem Raspi 4 mit 4GB laufen. Ein bisschen Overload, ich weiss.
Aber für meinen Raspi 2 hätte ich mir noch bluetooth- und wifi-dongle (evtl. noch aktiven usb-hub) zulegen
müssen und der Platz im Kleinverteiler wird langsam eng.
Einige Ideen, die ich gefunden habe, wären
- Arduino mit Firmata (Arduinos habe ich noch liegen)
- Arduino mit MQTT
- direkt an nem GPIO (Step-Down nicht vergessen ;-) ):
hier dann die Option Impulsauswertung und Umrechnung in FHEM oder Backgroundscript
Vieleicht hat jemand von Euch in einem anderen Zusammenhang ähnliches implementiert
und kann mir eine Idee oder Lösungsansatz liefern.
Bin für jeden Hinweis dankbar.
gruss
jones
Hallo jones,
ich würde das Ganze an einem GPIO Pin des Raspberry Pi's machen.
Welche Impulsform kommt denn aus dem Zähler raus? Nur etwas geschaltetes (und man braucht einen Pull-Up) oder eine Spannung (PWM)?. Im zweiteren Fall brauchst Du einen Pegelwandler.
Zitat Aliexpress:
ZitatAusgang Wellenform: Quadrat Welle, ausgang puls signal.
Das ist dann vermutlich PWM und Du musst den Pegelwandler (R-Teiler) in Abhängigkeit der Versorugngsspannung anpassen. Ggf. vorher mit dem Oszilloskop messen.
Generell sollte der Volumenstrommesser sollte nicht zu weit weg von der Auswerteeinheit sein (Kabellänge).
Es gibt auch Ansätze mit ESPEasy, aber das ist m.E. Overkill.
Gruß Peter
Hallo Peter,
Pegelwandler ist klar. Kabellönge zwischen Durchflussmesser und Raspi wären ca 100cm.
Direktanschluss und dann wie weiter? Messung alle 30 min würde mir reichen.
Script mir Cronjob? wie dann die werteübergabe?
oder mit at script ausführen?
eigenes Device dafür wäre natürlich am coolsten. dann müsste ich mich doch glatt mal dransetzen
und dafür ein Modul schreiben, falls es nichts ähnliches oder einen workaround gibt.
gruss jones
Hallo jones,
ich habe das mit dem Wasserzähler (Schaltausgang, braucht einen Pull-Up) so gelöst:
#------------------------------------------------------------------------------
# water counter over RaspberryPi GPIO 31 (P5-6) and GND (P5-8)
define WZpin RPI_GPIO 31
attr WZpin active_low yes
attr WZpin devStateIcon on:ios-on-blue.png off:ios-off
attr WZpin direction input
attr WZpin interrupt both
attr WZpin pud_resistor up
attr WZpin room 3.2_Wasser
attr WZpin toggletostate yes
# counter module
define Wasser HourCounter WZpin:on WZpin:off
# prepare reading for every 15 minutes difference to before
define Wasser15min_at at +*00:15:00 {\
my $last=ReadingsVal("Wasser", "counts15min_last", "0");;;; \
my $act=ReadingsVal("Wasser","countsOverall","0");;;; \
my $val15min=$act-$last;;;; \
fhem "setreading Wasser counts15min $val15min";;;; \
fhem "setreading Wasser counts15min_last $act";;;; \
}
attr Wasser15min_at room 3.2_Wasser
# prepare reading total water volume in every night
define WasserDay_at at *23:59:30 {my $new=ReadingsVal("Wasser","countsPerDay","0");;fhem "setreading Wasser countsPerDay_tot $new";;}
attr WasserDay_at room 3.2_Wasser
attr Wasser event-min-interval countsOverall:600
attr Wasser event-on-change-reading countsPerDay
attr Wasser event-on-update-reading counts15min,countsPerDay_tot
attr Wasser room 3.2_Wasser
# log values
define Wasser_log FileLog ./log/wasser-%Y-%m.log Wasser:countsOverall:.*|Wasser:countsPerDay:.*|Wasser:counts15min:.*
define 1_Wasser_svg SVG Wasser_log:PM_wasser:CURRENT
attr 1_Wasser_svg label "Wasserverbrauch: Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr 1_Wasser_svg room 3.2_Wasser
define Wasser_day_log FileLog ./log/wasser_d-%Y-%m.log Wasser:countsPerDay_tot:.*
define 2_Wasser_day_svg SVG Wasser_day_log:PM_wasser_d:CURRENT
attr 2_Wasser_day_svg label "Wasserverbrauch pro Tag: Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr 2_Wasser_day_svg fixedrange month
attr 2_Wasser_day_svg room 3.2_Wasser
# summary of readings
define 0_Wasser readingsGroup <Wasser>,<Gesamt>,<gestern>,<aktuell>,<15 min.> <hr> Wasser:countsOverall,countsPerDay_tot,countsPerDay,counts15min
attr 0_Wasser valueFormat {countsOverall => "%.0f l", countsPerDay_tot => "%.0f l", countsPerDay => "%.0f l", counts15min => "%.0f l"}
attr 0_Wasser room 3.2_Wasser
#------------------------------------------------------------------------------
Einmal mit RPI_GPIO den Pin definieren und mit HourCounter zählen lassen. Da ich noch 15 min. Werte wollte, habe ich die wie oben noch definiert.
Gruß Peter
Als Alternative könnte man sich noch ne Druck bzw Unterdruck Messung machen.
Gesendet von meinem MI 9 mit Tapatalk
Hi Sash,
Druck/Unterdruck hatte ich auch überlegt.
Hatte dazu einen Thread gefunden.
Jedoch geht es bei mir nicht um das Trockenlaufen der Pumpe,
sondern nur um einen verringerten Volumenstrom.
Skimmer sind, auf Grund von Bäumen um den Pool,
häufig mit Blättern zu. Wasser wird trotzdem noch angesaugt.
Die Filterleistung geht in den Keller und der Ppol wird grün.
Wie würde ich da ohne grosse Umstände den Messbereich
des benötigten Sensors ermitteln?
Ultraschallmessung der Strömungsgeschwindigkeit hatte ich auch
schon auf dem Zettel. Sensoren habe ich liegen. Wollte das mal
spasseshalber ausprobieren.
Flowmeter scheint mir da aber die einfachste Variante.
Frage ist halt nur, wie bekomme ich die Werte nach FHEM.
gruss
jones
Die Frage ist auch, ob vom zeugs was dem skimmer verstopft, auch nicht dem Flow Meter blockiert?
Gesendet von meinem MI 9 mit Tapatalk
Die Gefahr ist relativ gering, da die Skimmer feinmaschige Filterkörbe haben.
Diese setzen sich, gerade im nahenden Herbst, mit dem Laub der umstehenden Bäume zu.
Ich gebe Dir aber recht, dass das nicht auszuschliessen ist.
Da ich meine Pool-Verrohrung recht ,,modular" (mit Schraubverbindungen für die einzelnen
Segmente) vorgenommen habe, könnte ich den FlowMeter ohne grössere Umstände
durch eine andere Lösung ersetzen.
Daher würde ich es jetzt erst einmal mit der FlowMeter-Lösung probieren.
Da ich neugierig bin und gerne tüftel und bastel, werde ich bestimmt auch mal
die Unterdruck- und die Ultraschallvariante ausprobieren.
Zeitpunkt hängt allerdings davon ab, mit welchen Projekte meine bessere Hälfte
als nächstes aufwartet. :-)
gruss, jones
Dann viel Glück und gebe mal bitte Rückmeldung, ob und was wie funktioniert hat.
Gruß Sascha
Gesendet von meinem MI 9 mit Tapatalk
ich denke, dass ich jetzt meine Lösung gefunden habe:
Flowmeter wird (mit Spannungsteiler) an einen GPIO angeschlossen.
Die Impulse vom Flowmeter werde ich über einen Zeitraum von 15sek zählen und dann
entsprechend in Volumenstrom umrechnen.
Um den FHEM nicht zu blockieren wird der Mechanismus in ein externes Script ausgelagert,
non blocking aufgerufen (mehrfach am Tag und nur unter bestimmten Umständen, z.B. nur wenn
die Pumpe an ist) und die Rückgabewerte mit nc in ein Dummy-Device geschrieben.
Spricht irgendetwas gegen die Lösung?
gruss, jones
Zitat von: JonesFXR am 05 August 2019, 20:34:14
Spricht irgendetwas gegen die Lösung?
Nicht aus meiner Sicht. Bitte poste Deine Lösung, wenn sie funktioniert.
Gruß Peter
Hi
Bin auch gerade am Pool automatisieren.
Nachdem mir vor zwei Jahren die Pumpe wegen Kavitation (Blätter im Skimmer) verreckt ist werde ich das mit zweierlei zu lösen versuchen.
a) Ich messe die aufgenommene Leistung. Mit der Homatic Leistungsmessdose geht das recht genau. Wird aber später abgelöst.
b) Wenn ich mich Recht an den Bernouli und die Kontinuitätsgleichung erinnere sollte ich mittels Differenzdruckmessung ( Saug- und Druckseite der Pumpe) auf die Fördermenge kommen.
Den Flowmeter hatte ich verworfen weil er:
a) ein mechanisches Bauteil ist
b) einen nicht unerheblichen Strömungswiderstand darstellt.
c) auch Blasen und somit Luft zählt
d) schmutzanfällig ist
Allerdings ist deine Idee mit der Ultraschallmessung sehr interessant.
Wie geht das den ? :o
Hi Axel S. ;-),
Physik-Leistungskurs ist Jahrzehnte her, trotzdem bin ich mir nicht sicher, ob Differenzdruckmessung
funktioniert. Es kann ja eigentlich aus der Pumpe hinten nur rauskommen, was vorne reingeht.
Das würde bedeuten (vereinfacht ausgedrückt): Nimmt vorne die Wassermenge ab (und damit auch der
Unterdruck), sinkt hinten ebenfalls die Wassermenge und somit der Druck.
Aber vielleicht liest ja jemand mit, der, im Gegensatz zu mir, davon wirklich Ahnung hat und korrigiert mich.
Dann würde eher eine Einzeldruck/- unterdruckmessung, wie Peter vorgeschlagen hat, Sinn ergeben.
Ultraschallmessung ist vorerst nur eine Idee. Wobei ich da zumindest einige DIY-Ansätze im Netz
irgendwann mal gefunden hatte. Allerdings noch nicht weiter verfolgt.
Es gibt teure Lösungen, die auf diese Weise Volumenstrom messen bzw. die Strömungsgeschwindigkeit.
Dabei werden Ultraschallsender und -empfänger in einem bestimmten Abstand und Winkel an der Leitung
befestigt. Je nach Geschwindigkeit des Mediums (beim Pool wäre das das Wasser) in der Leitung, verändert
sich auch die Geschwindigkeit des Ultraschallsignals. Das mal im Groben.
gruss, jones
hab das ganze hier gerade mal gelesen ...
ich würde einfach den Strom der Pumpe messen - so sich diese nicht von alleine irgendwie regelt
Zitat von: JonesFXR am 06 August 2019, 19:33:57
Hi Axel S. ;-),
Physik-Leistungskurs ist Jahrzehnte her, trotzdem bin ich mir nicht sicher, ob Differenzdruckmessung
funktioniert. Es kann ja eigentlich aus der Pumpe hinten nur rauskommen, was vorne reingeht.
Das würde bedeuten (vereinfacht ausgedrückt): Nimmt vorne die Wassermenge ab (und damit auch der
Unterdruck), sinkt hinten ebenfalls die Wassermenge und somit der Druck.
Aber vielleicht liest ja jemand mit, der, im Gegensatz zu mir, davon wirklich Ahnung hat und korrigiert mich.
Dann würde eher eine Einzeldruck/- unterdruckmessung, wie Peter vorgeschlagen hat, Sinn ergeben.
Ultraschallmessung ist vorerst nur eine Idee. Wobei ich da zumindest einige DIY-Ansätze im Netz
irgendwann mal gefunden hatte. Allerdings noch nicht weiter verfolgt.
Es gibt teure Lösungen, die auf diese Weise Volumenstrom messen bzw. die Strömungsgeschwindigkeit.
Dabei werden Ultraschallsender und -empfänger in einem bestimmten Abstand und Winkel an der Leitung
befestigt. Je nach Geschwindigkeit des Mediums (beim Pool wäre das das Wasser) in der Leitung, verändert
sich auch die Geschwindigkeit des Ultraschallsignals. Das mal im Groben.
Differenzdruck war natürlich falsch ... oder unpräzise. ;D
Ich meinte den Druck vor und nach der Pumpe.
Ich muss mir das ganze aber mal herleiten ... irgendwo im Keller stehen noch die Bücher aus der Strömungslehre Vorlesung.
Zitat von: Wuppi68 am 06 August 2019, 20:46:17
hab das ganze hier gerade mal gelesen ...
ich würde einfach den Strom der Pumpe messen - so sich diese nicht von alleine irgendwie regelt
Bezüglich der Stromaufnahme sah das bei meiner Pumpe ( KSB Filtra 6E ) so aus wie auf dem angehängten Bild.
Man sieht schön wie sie in die Schutzschaltung des Motors läuft ... mehrfach.
Dann war sie futsch.
hab auch mal mitgelesen.
@Ultraschall: Hier müssen halt die Ultraschallwandler auch im Medium sein. Außer bei Clamp-On. Hier ist dann kein Eingriff ins Rohr notwendig, aber das Rohr muss aus einen Schall durchlässigen Material sein. Wird also nicht ganz so einfach zu bewerkstelligen sein.
Zitat von: AxelSchweiss am 06 August 2019, 21:18:44
Bezüglich der Stromaufnahme sah das bei meiner Pumpe ( KSB Filtra 6E ) so aus wie auf dem angehängten Bild.
Man sieht schön wie sie in die Schutzschaltung des Motors läuft ... mehrfach.
Dann war sie futsch.
ds sieht doch schon einmal super zum auswerten aus ... so wie das aussieht hast Du nicht wirklich viel Zeit zum reagieren.
Am Anfang super konstant, kurz auf Null und dann schön linear ansteigend. Das extrem schwankende Ende war der Todeskampf?
Hi,
gibt es irgendwelche Lösungsansätze zur Leistungsmessung direkt am Pi (über welches Interface auch immer)?
Möchte nicht noch ein Protokoll (wie z.B. Homatic, DECT) inkl. Adapter nutzen.
Ausserdem ziehe ich kabelgebundene Lösungen vor.
grüsse
jones
Du kannst mittels INA219 (via i2c) Strom und Spannung bei Kleinspannungen messen. da gibts auch ein FHEM-Modul für.
Ansonsten kannst du noch mittels Spulen den Strom messen. Wir dann als Spannung analog zum Strom ausgegeben.
Google mal nach "Strom 230 Volt messen arduino". Da findest du sehr viel.
Zitat von: JonesFXR am 07 August 2019, 13:21:29
gibt es irgendwelche Lösungsansätze zur Leistungsmessung direkt am Pi (über welches Interface auch immer)?
Möchte nicht noch ein Protokoll (wie z.B. Homatic, DECT) inkl. Adapter nutzen.
Ausserdem ziehe ich kabelgebundene Lösungen vor.
...der HLW8012 wäre auch eine Option, bezüglich Leistungs, Strom und Spannungsmesssung am 230 Volt Netz