Katzenbrunnen

Katzenbrunnen mit ioBroker und Shelly Plug S überwachen

Für meine 2 Katzen habe ich einen Katzenbrunnen, um die Trinkgewohnheit anzuregen. Dieser Brunnen wird von einer kleinen Pumpe angetrieben, die je nach Zustand einen unterschiedlichen Vebrauch hat. Die Pumpe verbraucht z.B. mehr Leistung, wenn sie blockiert ist, im Gegenzug ist der Verbrauch im Betrieb aber konstant bei 4.2 Watt. Diese 2 Werte lassen sich so hervorragend benutzen, um den Status der Pumpe zu überwachen.

Ich übermittele so den Status der Pumpe an die HomeMatic und reagiere dort mit dem E-Mail Plugin darauf und lasse mir eine E-Mail senden, sobald die Pumpe blockiert.

Installation des Shelly Adapter

Installation des Shelly Adapter
Installation des Shelly Adapter

Nach kurzer Zeit stehen die Datenpunkte aller gefundenen Shellys unter shelly.0 zur Verfügung.

Systemvariable in HomeMatic anlegen

Systemvariable in HomeMatic
Systemvariable in HomeMatic

Ich habe zur Weiterverarbeitung eine Systemvariable in HomeMatic angelegt, die 3 Zustände in einer Werteliste annimmt. Diese werden dann von ioBroker entsprechend übermittelt und gesetzt.

Skript zur Überwachung der Pumpe

Datenpunkt des Shelly Plug S
Datenpunkt des Shelly Plug S
// Überwachung des Katzebrunnen
 var dp_brunnen = "hm-rega.0.11909"; //Systemvariable "Katzenbrunnen"
 var dp_verbrauch = "shelly.0.SHPLG-S#51D3XX#1.Relay0.Power";
 var status;
 on({id: dp_verbrauch, change: "any"}, function (obj) 
 {
     // hole aktuellen Status
     var status_current = getState(dp_brunnen).val;
     // Aktueller Verbrauch der Pumpe
     var verbrauch = getState(dp_verbrauch).val;
     if (verbrauch>1) {
         status = 0; //Katzenbrunnen ist eingesteckt
     }
     if (verbrauch>4) {
         status = 1; //Katzenbrunnen läuft
     }
     if (verbrauch>6) {
         status = 2; //Katzenbrunnen ist blockiert
     }
     if (status_current!=status) {
         setState(dp_brunnen, status);
     }
 });

Damit der Status des Brunnens nicht bei jeder Werte Änderung an die HomeMatic übermittelt wird, habe ich das Skript so angepasst, das es den Status nur übermittelt, wenn dieser sich vom aktuellen Status unterscheidet.

Schreibe einen Kommentar

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