Überwachung Wasserstand des Gartenteichs

Begonnen von felskrone, 06 August 2017, 20:32:26

Vorheriges Thema - Nächstes Thema

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 entweicht
Insbesondere 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-Klemmen
Gebastel:
"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)
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;
}

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

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

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


Darstellung in FTUI:
Verbesserungsvorschläge (die nicht die Hardware betreffen - das ist zu spät!) sind willkommen!
___________________________
FHEM 5.8 auf Raspi 1B und HMLAN

Helmi55

Hallo
Cool. Das könnte ich auch für meine 300l Zisterne verwenden.
Wo hast du die Schwimmer her?
Nice eve Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

felskrone

#2
...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.  ::)
___________________________
FHEM 5.8 auf Raspi 1B und HMLAN

Helmi55

Danke - nimm zur Sicherheit den großen Fluss raus.
Sonst gibts vielleicht noch Ärger wegen Werbung...........
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

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?

felskrone



Hi leachim200,

klar, kein Problem.

Hast Du das ebenfalls für den Gartenteich nachgebaut? Dann häng doch mal Bilder an; vielleicht hast Du ja etwas optimiert?
Ich suche auch noch bessere Symbole, als die Batterie...

Hier der FTUI-Code


Zitat
    <header><div data-type="label" class="large">Teichlevel<></header>
    <div data-device="dummy_Teich_Level"
          data-type="symbol"
          data-get="STATE"
          data-get-on='[".*"]'
          data-states='["leer","min","ok","max","error"]'
          data-colors='["red","yellow","green","blue","red"]'
          class="big inline compressed-50"
          data-icons='["fa-battery-0 blink","fa-battery-1","fa-battery-3","fa-battery-4","fa-exclamation-circle fa-spin"]' >
    <>
    <div data-type="label"
          data-device="dummy_Teich_Level"
          data-limits='["leer","min","ok","max","error"]'
          data-colors='["red","yellow","green","blue","red"]'
          class='big inline'
    <>



___________________________
FHEM 5.8 auf Raspi 1B und HMLAN