Wärmepumpe Lastgang - Warmwasser
Wärmepumpe Lastgang – Warmwasser

Das Internet der Dinge (auch englisch Internet of Things) beschreibt, dass der (Personal) Computer zunehmend als Gerät verschwinden und durch „intelligente Gegenstände“ ersetzt wird. Statt – wie derzeit – selbst Gegenstand der menschlichen Aufmerksamkeit zu sein, soll das „Internet der Dinge“ den Menschen bei seinen Tätigkeiten unmerklich unterstützen. Die immer kleineren Computer sollen Menschen unterstützen ohne abzulenken oder überhaupt aufzufallen. (Wikipedia: Internet der Dinge)

Rund um die Uhr – jeden Tage ist Warmwasser verfügbar. Dank Pufferspeicher wird es allerdings nur einmal am Tag erwärmt durch eine Wärmepumpe. Nutzt man eine automatisierte Analyse des Lastgang – des Stromverbrauchs des Gerätes – so lassen sich damit einige nützliche Dinge ableiten.

Leider gibt es bislang nur sehr wenige Lösungen am Markt, die eine tatsächliche Realisierung des Internets der Dinge ermöglichen. Die Erzeugung von warmem Wasser durch eine Wärmepumpe ist bewusst gewählt worden, um ein sehr einfaches – nachvollziehbares Beispiel zu haben. Man sieht allerdings schon am Code, dass es einiges an eigenem Fleiß benötigt und nur wenig Out-Of-The-Box verfügbar ist.

Aufgabenstellung

Internet Of Things: Warmwasser
Internet Of Things: Warmwasser

Erstellt werden soll eine automatische Überwachung des Lastgangs einer Wärmepumpe. Ein Alarm soll erzeugt werden, wenn die Wärmepumpe für mehr als 32 Stunden kein warmes Wasser gemacht hat. Zur Abrechnung soll der Stromverbrauch protokolliert werden, der lediglich für das Warmwasser benötigt wurde.

Komponenten

Zur Vereinfachung habe ich bei mir selbst IP-Symcon verwendet, da ich diese System bei mir für die Heimautomatisierung verwende. Theoretisch funktioniert allerdings auch mit einem Raspberry PI, welches ich als Backup-System nutze.

Den Lastgang der Wärmepumpe im 2 Sekunden-Takt liefert bei mir Discovergy bzw. dessen API. Die Analyse mache ich selbst per  PHP Script.

for($i=sizeof($data["raw"])-1;(($i>0)&&(!isset($start)));$i--) {
 if(!isset($stop)) {
 if($data["raw"][$i]->power>110) $stop=$data["raw"][$i];
 } else {
 if($data["raw"][$i]->power<110) $start=$data["raw"][$i];
 }
 }
 if(isset($start)) {
 $lastvalue=GetValue(10968 /*[Energie\Strom\Waermepumpe\Letztes Warmwasser]*/ );
 if($lastvalue<$start->time) {
 // Warmwasser Stromverbrauch hinzufügen
 $power=($stop->energy-$start->energy)/10;
 SetValue(19317 /*[Energie\Strom\Waermepumpe\Stromverbrauch Warmwasser]*/ ,GetValue(19317 /*[Energie\Strom\Waermepumpe\Stromverbrauch Warmwasser]*/ )+($power/1000));
 }
 SetValue(10968 /*[Energie\Strom\Waermepumpe\Letztes Warmwasser]*/ ,$start->time);
 }
 echo round((time()-GetValue(10968 /*[Energie\Strom\Waermepumpe\Letztes Warmwasser]*/ ))/3600);
 SetValue(43552 /*[Energie\Strom\Waermepumpe\StundenWW]*/ ,round((time()-GetValue(10968 /*[Energie\Strom\Waermepumpe\Letztes Warmwasser]*/ ))/3600));

Danach muss nur noch die Variable 43552 überwacht werden, dass diese nicht über den Wert 32 steigt.

Das Script selbst wird bei mir jede Stunde einmal ausgeführt und läuft dabei sehr zuverlässig. Einen positiven Alarm hatte ich schon: Als wir im Urlaub waren und die Wärmepumpe ebenfalls im Urlaubsmodus.

Den Beitrag "Internet der Dinge für Elektrogeräte - Anfangsbeispiel:Wärmepumpe offline Lesen:

Kommentar hinterlassen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

benötigt