Verschiedenes > Projekte

Überwachung Wasserstand des Gartenteichs

(1/2) > >>

felskrone:
Hallo zusammen.

in der vergangenen Woche habe ich mein erstes Mini-Projekt zusammengebastelt:
https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82712;image

Ich habe einen Gartenteich mit 2 Pumpen, die per FHEM ein/ausgeschaltet werden können:

* Pumpe 1
läuft ganzjährig (24/7/365)
geringer Höhnenunterschied
geringes Risiko, dass Wasser aus dem Kreislauf entweicht
* Pumpe 2
läuft von ca. April bis Oktober 24/7
großer Höhenunterschiede
diverse Zwischenfilter und Filterteiche im Kreislauf
höheres Risiko, dass Wasser aus dem Kreislauf entweichtInsbesondere wegen Pumpe2, möchte ich den Wasserstand überwachen. Im letzten Jahr habe ich mir an einem Wochenende mehrere Kubikmeter Wasser aus dem Teich gepumpt, da ein fetter Frosch einen der Abläufe im Kreislauf von Pumpe 2 zu seinem neuen Zuhause machen wollte.

Vorhandene Geräte wie z.B. der Homematic Füllstandsmesser, schienen mir nicht geeignet, da der Höhenunterschied, den ich überwachen möchte so bei ca. 12 cm liegt.
Also musste ich selber basteln - folgendes ist dabei herausgekommen:

verwendete Teile: https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82714;image

* Homematic HM-SCI-3-FM (Funk-Schliesserkontaktschnittstelle)
* Aufputzdose
* Isolierrohre EN16
* RohrClips EN16
* 3 Wasser-Füllstandsensoren
* Wago-KlemmenGebastel:

* Step 1 https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82716;image

* die Isolierrohre auf gewünschte Länge schneiden (Unterschied zwischen längstem und kürzestem Rohr definiert die Überwachungshöhe)
* Einkleben der Füllstandsensoren in die Rohre
* Kabel durch die Aufputz-Dose führen
* Step 2 https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82718;image

* Einkleben der Rohre in die Dose
* Abstand der Rohre mit 3 RohrClips fixieren, damit die Schwimmer gängig bleiben
* Step 3 https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82720;image

* Montage der Schwimmer (Drehen der Schwimmer um 180° wechselt zwischen Öffner/Schliesser)
* Anklemmen der Kontakte (Verdrahtung)
* technischer Test https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82722;image

* pairen des HM-SCI-3-FM
* cyclicInfoMsg einschalten
* "Entprellen" durch Einstellung von eventDlyTime auf 60
* eventOnChange auf .* stellen"Programmierung" FHEM

* Funktion in MyUtils: SetTeichLevel

* Auswerten der Zustände von Level_01, Level_02 und Level_03:
* open  -  open  -  open  -> TeichLevel "leer"; Pumpe1 und Pumpe2 werde ausgeschaltet
* closed -  open  -  open  -> TeichLevel "min"; Pumpe2 wird ausgeschaltet
* closed - closed -  open  -> TeichLevel "ok"
* closed - closed - closed -> TeichLevel "max"
* die 4 übrigen Kombinationen -> TeichLevel "error"; Pumpe1 und Pumpe2 werde ausgeschaltet - eingefroren?
* Dummy "dummy_Teich_Level" zur Zusammenfassung der 3 Level zu einem Zustand
* Notify "Notify_Teich_Level" (bei Änderung eines der 3 der Levels)
* Notify "Notify_Startsequenz" (Initialisieren des TeichLevels bei FHEM-Neustart)
--- Code: ---sub setTeichLevel() {
  my $Level1 = ReadingsVal("Teich_Level_01", "state", "open");
  my $Level2 = ReadingsVal("Teich_Level_02", "state", "open");
  my $Level3 = ReadingsVal("Teich_Level_03", "state", "open");
  my $Message = "";
  my $Icon = "";
  my $ret;
  Log 1, "$Level1 $Level2 $Level3";
  if ($Level1 eq "open") {
    if ($Level2 eq "open") {
      if ($Level3 eq "open") {
        $ret = "leer";
     }
     else {
        $ret = "error";
     }
   }
   else {
     $ret = "error";
   }
  }
  else {
    if ($Level2 eq "open") {
      if ($Level3 eq "open") {
        $ret = "min";
     }
     else {
        $ret = "error";
     }
   }
   else {
      if ($Level3 eq "open") {
        $ret = "ok";
     }
     else {
        $ret = "max";
     }
   }
  }
  fhem("set dummy_Teich_Level $ret");
  if (($ret eq "error") || ($ret eq "leer")) {
    $Icon="error-Icon";
    fhem("set Teich_Pumpe1 off");
    fhem("set Teich_Pumpe2 off");
   $Message="\nPumpe1 und Pumpe2 ausgeschaltet";
  }
  elsif ($ret eq "min") {
    $Icon="Exclamation-Icon";
    fhem("set Teich_Pumpe2 off");
    $Message="\nPumpe2 ausgeschaltet";
  }
  elsif ($ret eq "max") {
    $Icon="Exclamation-Icon";
  }
  else {
     $Icon="OK-Icon";
  }
  $Message=$Icon . " Teichlevel: " . $ret . "\n" . $Message;
  fhem("set TBot message $Message");
  Log 1, "$ret";
  return $ret;
}

--- Ende Code ---

--- Code: ---define dummy_Teich_Level dummy;
attr dummy_Teich_Level alias Teich-Füllstand;
attr dummy_Teich_Level setList state:leer,min,ok,max,error;
--- Ende Code ---

--- Code: ---define Notify_Teich_Level notify Teich_Level_0[123]:(open|closed) {
    setTeichLevel()
}
--- Ende Code ---

--- Code: ---define Notify_Startsequenz notify global:INITIALIZED.*  {
    fhem("set TBot message $NAME $EVENT \nFHEM neu gestartet");
   setTeichLevel()
}
--- Ende Code ---

Darstellung in FTUI:

* Füllstand max: https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82724;image
* Füllstand ok: https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82726;image
* Füllstand min: https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82728;image
* Füllstand leer: https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82730;image
* Füllstand error: https://forum.fhem.de/index.php?action=dlattach;topic=75129.0;attach=82732;imageVerbesserungsvorschläge (die nicht die Hardware betreffen - das ist zu spät!) sind willkommen!

Helmi55:
Hallo
Cool. Das könnte ich auch für meine 300l Zisterne verwenden.
Wo hast du die Schwimmer her?
Nice eve Helmut

felskrone:
...such mal bei Amazon nach ZP4510... da gibt es diverse Stückelungen.

Ich wollte keine Werbung machen, sondern Deine Frage beantworten.


Dann musst Du eben selber suchen, wonach Du suchen willst.  ::)

Helmi55:
Danke - nimm zur Sicherheit den großen Fluss raus.
Sonst gibts vielleicht noch Ärger wegen Werbung...........

leachim200:
Hi
Der Beitrag ist schon etwas älter aber wäre es dir möglich vllt deinen Code für FTUI auch zur verfügung zu stellen?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln