Homematik – Zisterne

Update 04.03.2019: Zur Messung des Füllstands der Zisterne habe ich einen neuen Artikel mit einem anderen Ansatz zur Messung verfasst. Dieser ist hier zu finden.

Wieder eins von diesen Projekten wo viele sagen: “Das braucht doch kein Mensch!”. Richtig, das braucht man auch nicht nicht. Es macht aber Spaß (zumindest mir), den Füllstand meiner Zisterne zu wissen ohne das ich den Betondeckel rausheben muss und mir dabei die Finger quetsche.

Im Homematik-Sensor-Park gibt es einen kapazitiven Füllstandssensor (Hm-Sen-Wa-Od) als Bausatz der diese Aufgabe übernehmen kann. Wobei “Bausatz” nicht wirklich schwierige Lötarbeiten erfordert, sondern nur ein paar wenige Teile auf die Platine gelötet werden müssen (Batteriehalter, Funkmodul) und das Ganze in dem mitgelieferten Gehäuse verpackt werden muss.

IMG_3376

Nach dem Zusammenbau der Platine müssen die Messleitungen auf die entsprechende Länge (Tiefe der Zisterne und geplante Einbauhöhe des Sensors) angepaßt werden. Die Enden der Messleitungen müssen mit den beiligenden “Schrumpftüllen” die mit Kleber gefüllt sind wasserdicht verschlossen werden. Dazu reicht ein normaler Fön.

Alle 10 cm von unten beginnen müssen nun die Stege befestigt werden. Dieser Abstand  wird später für die Kalibrierung benötigt. Dann die Anschlussleitungen durch die Kabeldurchführungen an den beiden Klemmen befestigen.

Reichweite

Ich war zuerst skeptisch ob das mit dem Funk vom Kellerraum bis in die Zisterne funktioniert?! Immerhin ist der Sensor etwa 1m unter der Erde im Betonverlies gefangen… Bei mir sind es aber nur 10m Luftline zwischen Sensor und COC und es gibt keine Probleme mit der Funkverbindung.

Anlernen

Zum Anlernen des Sensors muss die Zentrale in den Anlernmodus gebracht werden

set <zentrale> hmPairForSec <zeit_in_sekunden>

und danach am Füllstandssensor die “Sensor”-Taste für <1 Sekunde gedrückt werden. Die Setup-LED blinkt in der Anlernphase und erlischt bei Erfolg. Danach sollte in der fhem.cfg ein ähnlicher Eintrag wie folgt erstellt worden sein:

define Zisterne CUL_HM 226555
attr Zisterne .devInfo 020101
attr Zisterne .stc 60
attr Zisterne IODev COC
attr Zisterne autoReadReg 4_reqStatus
attr Zisterne expert 2_full
attr Zisterne firmware 1.2
attr Zisterne model HM-Sen-Wa-Od
attr Zisterne peerIDs
attr Zisterne rawToReadable 10:0 72:1000 144:2000 216:3000 288:4000
attr Zisterne room Garten
attr Zisterne serialNr KEQ0365449
attr Zisterne subType sensor
#attr Zisterne hmClass sender
define FileLog_Zisterne FileLog /var/log/fhem/Zisterne-%Y.log Zisterne
attr FileLog_Zisterne logtype text
attr FileLog_Zisterne room Garten

Ich hab im Beispiel den kryptischen Gerätenamen durch “Zisterne” ersetzt. Das neue Gerät sollte dann auch in der FHEM-Weboberfläche im Raum “Garten” zu finden sein.

Mit dem folgenden Befehl werden die Register des Füllstandsmessers ausgelesen:

get Zisterne regList

Dabei sollte folgende Ausgabe zu sehen sein. Werden die Register nicht korrekt ausgelesen kann das u.a. mit einer zu alten Version von FHEM zusammenhängen. In der Version 5.3 war das Gerät anscheinend noch nicht implementiert . Mit der FHEM Version 5.5 funktionierte das Auslesen der Register korrekt.

list:         register | range              | peer     | description
   0: cyclicInfoMsgDis |   0 to 255         |          | cyclic message
   0: intKeyVisib      |     literal        |          | visibility of internal channel options:visib,invisib
   0: localResDis      |     literal        |          | local reset disable options:on,off
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   0: transmDevTryMax  |   1 to 10          |          | max message re-transmit
   1: caseDesign       |     literal        |          | case desing options:verticalBarrel,horizBarrel,rectangle
   1: caseHigh         | 100 to 10000cm     |          | case hight
   1: caseLength       | 100 to 10000cm     |          | case length
   1: caseWidth        | 100 to 10000cm     |          | case width
   1: fillLevel        | 100 to 300cm       |          | fill level
   1: ledOnTime        |   0 to 1.275s      |          | LED ontime
   1: meaLength        | 110 to 310cm       |          | 
   1: transmitTryMax   |   1 to 10          |          | max message re-transmit
   1: useCustom        |     literal        |          | use custom options:on,off
   1: waterUppThr      |   0 to 256         |          | water upper threshold
   1: waterlowThr      |   0 to 256         |          | water lower threshold
   4: expectAES        |     literal        | required | expect AES options:on,off
   4: fillLvlLoThr     |   0 to 255         | required | fill level lower threshold
   4: fillLvlUpThr     |   0 to 255         | required | fill level upper threshold
   4: peerNeedsBurst   |     literal        | required | peer expects burst options:on,off

Kalibrierung

Vor der Kalibrierung des Sensors müssen noch verschiedene Zisternen-spezifische Werte im Register gesetzt werden. Dazu gehören:

  • Behälterform
  • Behälterhöhe
  • Behälterdurchmesser
  • Länge der Messkabel
  • maximale Füllhöhe

Ich habe die maximale Füllhöhe und die Behälterhöhe auf die gleichen Werte gesetzt. Mit den folgenden Kommandos werden die Register gesetzt:

set Zisterne regSet caseDesign verticalBarrel
set Zisterne regSet caseHigh 130
set Zisterne regSet caseWidth 200
set Zisterne regSet meaLength 180
set Zisterne regSet fillLevel 130

Danach sollten die Werte in der Geräteübersicht in den Readings angezeigt werden:

zisterne_readings

Das “set_” vor den Werten sollte dann nach mindestens 24 Stunden verschwinden. Bei Problemen mit dem korrekten Setzen der Register wurde u.a. hier behandelt.

Sind die Werte alle korrekt gesetzt, erfolgt die eigentliche Kalibrierung des Sensors die nur bei komplett gefüllter Zisterne erfolgen kann. Dazu wie in der Anleitung beschrieben verfahren:

ziosterne_kalibrierung

Falls die grüne LED nicht erlischt, d.h. die Tabelle noch nicht vollständig gefüllt ist, hat das evtl. mit einer falschen angabe der Messleitungslänge und/oder der maximalen Füllhöhe in den Registern zu tun.

Befestigung in der Zisterne

Ich habe den Sensor auf ein Brett geschraubt welches ich lose auf den Rand eines Betonringes in der Zisterne gelegt habe. Das sollte ausreichen!

IMG_6937

IMG_6935

Daten loggen

Den Füllstand der Zisterne lasse ich wieder per Cron stündlich in eine MySQL-Datenbanktabelle schreiben. Dazu wird der Sensor wieder per Telnet abgefragt:

get_zisterne.php

[cclN_php]
“;
$mysqluser=””;
$mysqlpwd=””;
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die (“Verbindungsversuch fehlgeschlagen”);
$mysqldb=””;
mysql_select_db($mysqldb,$connection) or die(“Konnte die Datenbank nicht waehlen.”);
$sql = “INSERT INTO zisterne (timestamp,fuellstand) VALUES (CURRENT_TIMESTAMP,$zustand[1])”;
$query = mysql_query($sql) or die(“Anfrage 1 nicht erfolgreich”);
?>
[/cclN_php]

Visualisierung

Die Visualisierung habe ich wieder in meine “Intranet”-Seite eingebaut und neben dem aktuellen Füllstand in % wird noch ein Graph der letzten 14 Tage gezeichnet.

zisterne

Da wir die Tage einen Rollrasen verlegt haben wo ich ordentlich gießen musste und es zwei Tage später geregnet hat, sieht man das auch schön im Graphen. Die Einheit der X-Achse muss noch angepaßt werden.

Und mal wieder viel Spaß beim Datenloggen

Chris

20 Gedanken zu „Homematik – Zisterne

  • 26. März 2015 um 10:30 Uhr
    Permalink

    Hallo Christopher,
    ich habe bei mir den selben Sensor laufen, allerdings geportet er mir alle 3 Minuten nach FHEM wie der Füllstand ist. Das geht sehr stark auf die Batterien.
    In welchem Intervall kommen bei dir die Messwerte rein?

    Antwort
    • 27. März 2015 um 10:14 Uhr
      Permalink

      Hi Christoph,

      laut FHEM-Log ist der Messintervall bei mir 20 Minuten. 3 Minuten ist der kleinste einstellbare Intervall des Sensors. Bei mir ist allerdings aktuell auch die Batterie leer (hat ~1 Jahr gehalten), weshalb ich im Moment nicht schauen kann wie man das ggf. ändert. Spätestens morgen wird gewechselt. Hast Du die 1.2er Firmware?

      Gruß
      Chris

      Antwort
  • 28. April 2015 um 19:39 Uhr
    Permalink

    Vielen Dank für diesen ausführlichen Bericht aus der Praxis. Das erleichtert meine Kaufentscheidung 🙂

    Viele Grüße
    Bernd

    Antwort
  • 17. August 2015 um 13:01 Uhr
    Permalink

    Hallo,

    ich bin echt begeistert was alles so machbar ist, aber was brauch ich noch alles an Hardware dazu?
    Bin absoluter Neuling in diesem Thema und das wird mein erstes Projekt sein was Hausautomation betrifft.

    Ich habe ein Resperry Pi und diesen kapazitiven Füllstandssensor . Reicht das an Hardware oder brauch ich noch was dazu?

    Bedanke mich herzlichst vorab für die Unterstützung
    und wünsche einen tollen Tag

    Herzliche Grüße
    Toni

    Antwort
    • 17. August 2015 um 19:25 Uhr
      Permalink

      Hallo Toni,

      der Füllstandsensor ist eine Homematic-Komponente die im 868 MHz-Band funkt. Alle Homematic-Geräte benötigen immer eine Zentrale. Das kann ein Gerät von Homematic sein (CCU) oder aber etwas flexbler, eine Funkomponente für den Raspberry PI (z.B. COC oder CUL). Wie das genau funktioniert habe ich hier für den Einsatz eines Fensterkontaktes beschrieben.

      Bei Fragen kannst Du Dich gerne nochmal melden!

      Gruß
      Chris

      Antwort
      • 20. August 2015 um 13:30 Uhr
        Permalink

        Hallo Chris,

        vielen herzlichen Dank für Deine rasche Rückmeldung. Dann wird ich mir so eine Komponente für den Raspberry besorgen und sobald ich alles habe, werde ich mich wieder melden. Da bald der Urlaub dazwischen kommt, dementsprechend danach.

        Nochmals herzlichen Dank und weiter so.
        Einfach super!

        Noch eine Frage, zu diesem COC oder CUL, gibt es da einen bestimmten, der zu empfehlen ist?

        herzliche Grüße
        Toni

        Antwort
  • 30. September 2015 um 20:57 Uhr
    Permalink

    Hallo Christopher,

    ich habe eine Zisterne mit einen Durchmesser von 80 cm. Nun habe ich gesehen, dass bei der Behältereingabe der min. Casewidth 100cm ist. Der max. Wert ist ja utopisch mit 100 m. Kann man den kleinsten Durchmesser irgendwie auf 80 cm setzen?

    Gruß
    Frank

    Antwort
    • 2. Oktober 2015 um 09:00 Uhr
      Permalink

      Hallo Frank,

      das kann ich Dir leider nicht sagen. Aber kannst Du nicht 100cm annehmen und das Ergebnis (m³ oder %-Angabe) später in der Anzeige entsprechend dem echten Durchmesser korrigieren?

      Gruß
      Chris

      Antwort
      • 3. Oktober 2015 um 16:37 Uhr
        Permalink

        Hallo Chris,

        ich habe mir jetzt überlegt – ich werde 800cm nehmen und das Ergebnis dann durch 100 teilen.

        Gruß Frank

        Antwort
  • 29. Mai 2016 um 11:56 Uhr
    Permalink

    Hallo Chris,

    ich bin schier am verzweifeln. Habe alles soweit nach Anweisung programmiert. Die Kalibrierung schlägt permanent fehl, die grüne LED will bei der 2. Messung partout nicht ausgehen. Der Sensor wurde scheinbar als Bausatz erworben, zusammengebaut und mir dann verkauft. Habe ihn neu für knapp 100 Euro erworben. Der Verkäufer weiß sich auch keinen Rat mehr, hat mich an deinen BLOG verwiesen. Den hatte ich aber schon gelesen. Im FHEM Forum habe ich Martin angeschrieben, der kann zum Kalibrieren auch nichts sagen.
    Kann das Gerät defekt sein oder hast du noch eine Idee was zu machen ist?
    Die Werte habe ich wie folgt gesetzt und stehen so ohne !!! set_ in Fhem.

    set Zisterne regSet caseDesign verticalBarrel
    # Behälterhöhe
    set Zisterne regSet caseHigh 210
    # Behälterbreite
    set Zisterne regSet caseWidth 200
    # Behältertiefe
    set Zisterne regSet caseLength 210
    # Kabellänge gesamt
    set Zisterne regSet meaLength 227
    #max. Füllhöhe
    set Zisterne regSet fillLevel 210

    Bin für jeden Hinweis dankbar.

    Gruß Günter

    Antwort
    • 13. Juni 2016 um 20:28 Uhr
      Permalink

      Hallo Günter,

      ich habe aktuell auch so meine liebe Not mit dem Sensor. Mir ist Wasser ins Gehäuse gelaufen und die halbe Platine war oxidiert. Nach dem reinigen funktioniert das Kalibrierern auch nicht mehr. Jetzt hat sich entweder das ganze Teil verabschiedet oder etwas anderes stimmt nicht. Zum Zeitpunkt als mir das aufgefallen ist, war die Zisterne allerdings nur halb voll und ich dachte, das ich zum Kalibrieren warte bis sie voll ist. Wahrscheinlich ist sie das auch mittlerweile aber seit dem regnet es ja jeden Tag und es ist mir zu matschig rund um die Zisterne. Ich melde mich nochmal wenn es Neuigkeiten gibt.

      Gruß
      Chris

      Antwort
  • 2. Juli 2017 um 09:34 Uhr
    Permalink

    Tolle Anleitung! Ich habe auch vor diesen Sensor zur Messung meiner Zisterne einzusetzen. Aus der Erfahrung in deinem letzten Kommentar würde ich aber gerne das Kästchen außerhalb der Zisterne montieren. Dazu müssten die Kabel dann aber gemeinsam nebeneinander durch ein Loch gesteckt werden. Ich würde dass von unten einfädeln, sodaß die Kabel innerhalb der Zisterne natürlich den notwendigen Abstand mit den Abstandshaltern haben. Nur eben auf dem Weg zum Kästchen würden sie für ca. 10cm nebeneinander liegen.

    Die Frage ist nun, ob dies möglich ist, oder die Messung komplett verhindert, die ist ja kapazitiv. Auf deinen Bildern sehe ich, dass die Kabel immer einen Abstand haben. Nach den Abstandshaltern zum Kästchen hin wird er aber geringer, weniger als der durch die Kabeldurchgänge vorgebene Abstand wird es bei Dir aber nicht.

    Wenn es funktioniert, würde ich die Kalibrierung mit diesem Kabelaufbau durchführen, möglicherweise beeinflusst der kurzfristig geringe Abstand nur die Messwerte, das würde ja dann kompensiert.

    Hat jemand Erfahrung bzw. kann das für mich testen?

    Grüße,
    Olli

    Antwort
    • 2. Juli 2017 um 10:58 Uhr
      Permalink

      Hallo Oliver,

      mein Sensor hat in der Zwischenzeit leider komplett den Geist aufgegeben. Die Elektronik in der Zisterne “zu versenken” scheint mir nicht die beste Idee zu sein da dort doch ein recht feuchtes Klima herrscht. Auch das Kalibrieren fand ich recht fummelig und der Empfang unterm Betondeckel war auch nicht berauschend. Daher werde ich einen neuen Ansatz testen. Mit dem Ultraschallsensor HC-SR04 (2-4€) und einem ESP8266 sollte das recht einfach zu realisieren sein. Hier sollte es kein Problem sein, den ESP außerhalb der Zisterne und den Sensor in der Zisterne zu platzieren. Beispiele zum Anbinden des Sensors an einen Arduino gibt es genug, das mit dem WLAN und der Übermittlung der Daten würde ich analog zum Windsensor-Projekt angehen. Heute Abend wird der Sensor bestellt…

      Gruß
      Chris

      Antwort
  • 24. Dezember 2017 um 14:09 Uhr
    Permalink

    Hallo Zusammen,

    hier auch noch ein Paar Tips zur Umsetzung , mit denen ich einige der genannten Probleme umgehen will:

    – Hab die Platine in Kunstharz eingegossen, grad soviel, das die beiden Tastern noch funktionieren. Hoffe das vermeidet die Korrision der Schaltungen.
    – Statt Batterien hab ich mir für ca 30 Euro ein linear geregeltes Netzteil besorgt und mittels Dübel und Klemme in den Batterieschacht verklemmt. Das Kabel über ein neues Loch, links von den Tastern war noch Platz, und Kabelklemmbuchse eingezogen. Damit das Netzteil nicht bei den Winterlichen Temperaturen im Schacht liegt, hab ich das auch noch per Verlängerung rausgezogen in den benachbarten Schuppen.
    – Mit der Betonplatte hatte ich auch Probleme. Musste die etwas verschieben – Schlitz von 5 cm – war ausreichend. Werde die im Frühjahr mal durch eine Holzplatte ersetzten. Mal schauen.
    – Für meinen Brunnenschacht war die 3m Messleitung lang genug um das ganze knapp unterhalb der Brunnenoberkante aufhängen zu können.

    Das ganze läuft jetzt seit ca. 4 Monaten stabil, direkt in FHEM eingebunden. Bin bis jetzt zufrieden damit.

    Gruß
    Albert

    Antwort
    • 27. Dezember 2017 um 10:05 Uhr
      Permalink

      Hallo Albert,

      Danke für die Ideen. Meine Platine ist wahrscheinlich nicht mehr zu retten.
      Im Frühjahr werde ich mich nochmal dem Thema mit ESP8266 und Ultraschall widmen…

      Gruß
      Chris

      Antwort
  • Pingback: Füllstandmessung der Zisterne mittels ESP8266 (NodeMCU) und Ultraschallsensor – bubuxblog

  • 9. März 2019 um 17:18 Uhr
    Permalink

    Hallo,

    ich habe heute auch einen Hm-Sen-Wa-Od am IBC-Container installiert. Hat auch soweit geklappt, nur mir der Eingabe vom caseDesign in fhem zickt der Sensor rum.
    Die Werte von Behälterhöhe, Behälterdurchmesser, Länge der Messkabel und maximale Füllhöhe habe ich mit “set Behaelter regSet caseHigh 100 usw.” eingeben, “set Behaelter getConfig” und Konfig-Taste drücken – Werte wurde übernommen, nächster Wert usw.
    Nur bei “set Behaelter regSet caseDesign rectangle”; “set Behaelter getConfig” -set_rectangle steht dann bei caseDesign- und wird dann der Konfig-Taster gedrückt, springt caseDesing wieder auf verticalBarrel. Ich habe es mehrfach versucht, drücke ich den Taster nicht, bleibt nur set_rectangle stehen.

    Was mache ich falsch?

    Danke
    Volker

    Antwort
  • 5. September 2019 um 15:59 Uhr
    Permalink

    Hallo,
    kann man den Sensor auch an einen Raspberry Pi anschließen und die Daten abrufen?
    Dank und Gruß

    Antwort
    • 7. September 2019 um 09:24 Uhr
      Permalink

      Hallo Moritz,

      mit meinem Script geht das nur mit dem ESP.
      Grundsätzlich sollte dieser Ultraschallsensor aber auch mit einem Raspi funktionieren.

      Gruß
      Chris

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert