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
Nach kurzer Zeit stehen die Datenpunkte aller gefundenen Shellys unter shelly.0
zur Verfügung.
Systemvariable in HomeMatic anlegen
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
// Ü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.