PrüfSUMME

Ich möchte ja schon fast nichts mehr vom ECL-Bus schreiben – so wie sich die Dekodierung hinzieht.

Gestern habe ich (endlich) mit der Software auf dem Mikrocontroller angefangen und es sieht bisher recht gut aus. Auch die Prüfsumme ist nun (so gut wie*) geknackt – an dieser Stelle wieder vielen Dank an Weasel. Bei der Prüfsumme haben die Entwickler des Protokolls das Wort anscheinend wörtlich genommen und senden die Summe der vorangegeangen Bytes (mit Modulo 256) und haben nach meinen Erkenntnissen auch noch geschlampt. So langsam glaube ich das, was mir der Herr vom Support bezüglich der Protokoll-Dokumentation gesagt hat: es gibt keine.
Ich möchte nicht wissen was die Herren und Damen bei der Implementierung zu sich genommen haben aber dass man für eine Prüfsumme eben keine Summe verwendet, weiß man auch ohne größere Kenntnisse in Sachen Kommunikationstechnik oder Mathematik.

Aber gut, im Endeffekt kann ich zufrieden sein. Die Daten hätten auch verschlüsselt oder zumindest chiffriert übertragen werden können.

Ich denke/hoffe, dass ich morgen mit der Programmierung größtenteils fertig werde. Dann kann ich den Client bzw. Proxy für Solaranlage und Wärmepumpe beginnen. Ziel ist es, wie im Artikel der Energieerfassung bereits geschrieben, etwas Intelligenz in den Heizungsraum zu verfrachten.

Am dortigen „Kleinhirn“ soll dann endlich auch die Erfassung des Wasserzählers (und später evtl. der Wärmemengenzähler) erfolgen.

 

*) so gut wie heißt: Für die meisten Pakete stimmt die Prüfsumme, bei manchen ist das oberste Bit permanent gekippt. Warum wissen wohl nur die Götter.

Informationspolitik

Eigentlich wollte ich schon letzte Woche mit der Entmystifizierung des ECL-Busses fertig sein und einen entsprechenden Client bauen. Leider trete ich noch ein wenig auf der Stelle.

Ein kleiner Lichtblick letzte Woche war, dass ich einen Kontakt zu einem Supporter bei Danfoss bekommen habe. Leider gibt es laut seinen Aussagen keine Dokumentation über das Protokoll. Da mir sein Name irgendwie bekannt vorkam, habe ich kurz mal in Outlook gesucht (ich lösche fast nichts) und Tatsache, ich hatte mit ihm bereits Kontakt! „Damals“ ging es um das Protokoll des Serviceports an der Vorderseite des Reglers. Aussage auch damals „Eine Schnittstellenbeschreibung hierfür existiert leider nicht“.

Das lässt bei mir zwei Vermutungen aufkommen: Entweder die haben eine sehr eingeschränke Informationspolitik – ein „darf nicht herausgegeben werden“ wäre aussagekräftiger oder Dokumentationen für die Protokolle existieren tatsächlich nicht, was nicht unbedingt für Danfoss sprechen würde.

Wie dem auch sei, einen kleinen Teil beider Protokolle habe ich bereits „entschlüsselt“ und ich habe im Gegensatz zu denen kein Problem, mein Wissen anderen bereitzustellen 😉

ECL-Bus: Fortschritt

beim Dekodieren des ECL-Busses (Systembus des Danfoss-Reglers unserer Wärmepumpe) bin ich nun einen guten Schritt weiter gekommen. Einige Informationen (aktuelle Zeit, Außentemperatur, Innentemperatur und Solltemperatur) kann ich bereits auslesen. Drei Pakettypen, die vermutlich den aktuellen Betriebsmodus (Tag, Nacht, Manuell) und die Zustände der Kontakte beschreiben, habe ich noch nicht vollständig entschlüsselt. Ebenso fehlt noch die Berechnung der Prüfsumme.

Da es keine offizielle Dokumentation gibt und sich Danfoss komplett zum Protokoll ausschweigt, wird es vermutlich schwierig bis unmöglich, an die restlichen Betriebsdaten zu kommen. Die nächsten Abende werde ich die Dekodierung der Daten vom PC auf einen Mikrocontroller auslagern. Wann ich die Anbindung an die Energieerfassung mache, weiß ich noch nicht, da ich vorher noch die Erfassung des Wasserzählers fertig bauen möchte.

Der Plan ist, die Erfassung der Solaranlage, der Wärmepumpe und des Wasserzählers in bereits angedachte „Kleinhirn“ im Heizungskeller zu verlagern.

Ideen

Die Klausurzeit ist nach wie vor meine kreativste…

Es steht für das vergangene Semester zwar „nur noch“ eine (Mathe – die schlimmste…) an, aber die ganze Zeit habe ich Lust, den Ordner auf die Seite zu legen und die richtig sinnvollen Dinge zu tun 😉

Den Anfang von einer dieser Dinge kann man schon im Wiki sehen – die „Entschlüsselung“ des Datenbusses unserer Wärmepumpe. Ich habe zwar schon ein paar Abende damit zugebracht, das Protokoll auseinanderzunehmen, bin aber noch nicht wirklich weit gekommen. Zumindest bin ich mir jetzt ziemlich sicher, dass in einem Zeitschlitz Brutto 16 Bit übertragen werden und die Informationen Paketweise kommen.

Die Extraktion der Daten ist momentan noch ziemlich unautomatisiert – im nächsten Schritt werde ich wohl eine simple PHY-Schnittstelle bauen/programmieren, um die zumindest halbwegs mundgerechte Daten zu bekommen…

Aber zurück zum Thema – ein paar Unzulänglichkeiten hier im Haus wecken bei mir den Wunsch nach etwas Hausautomatisierung. Um den Family-Acceptance-Factor über 0 zu halten, werde ich das Ganze erst mal im Selbstversuch erproben, indem ich mein Zimmer automatisiere. Die Liste ist mittlerweile erstaunlich lang und reicht von der Lichtsteuerung über Aktivitätserkennung bis zur Fernsteuerung des „Inventars“ übers Internet.

Dann wäre da immer noch das Moodlight. Mühsam ernährt sich das Eichhörnchen…

Gute Nachricht

Die Wärmepumpe wurde am Montag übrigens noch repariert.

Ursache war vermutlich nur das Schütz des Kompressormotors, der nach knapp fünfeinhalb Jahren das zeitliche gesegnet hat. Im Zuge dessen wurde auch der Motorschutzschalter (der hinsichtlich der Spuren am Gehäuse) auch etwas abbekommen hat. Während der Reparatur habe ich erwähnt, dass man so schlecht an die Betriebsdaten der Wärmepumpe komme und dass der so ziemlich einzige Angriffspunkt – die Raumleitgeräte – bei eBay nur schwer (bzw. eher gar nicht) und vom Hersteller nur teuer erhältlich sind. Ohne größeren Kommentar verschwand er dann noch einmal in Richtung „mobiles Lager“ und kam mit einem gebrauchten EGA60 wieder.

„Wie viel würden Sie dafür bei eBay bieten?“ – „Vielleicht ’nen Euro“ (wobei ich mir ein Grinsen nicht verkneifen konnte) „Für wie viel würden Sie es denn abtreten?“ – „Naja, vielleicht einen zwanziger“ – „Von einem armen Studenten?“ – „Ok, wenn’s dem Ingineurswesen dient, behalten Sie’s!“.

Obwohl ich dann doch noch (zumindest für die Kaffeekasse) etwas holen wollte, verneinte er strikt.

In diesem Sinne: Vielen herzlichen Dank für diese wohlwollende Spende!
Vielleicht schaffe ich es, mich dafür erkenntlich zu zeigen…

gute Nachricht, schlechte Nachricht

Die gute Nachricht ist: Trotz niedrigen Temperaturen ist unsere Heizung seit gestern um 6:00 sehr energiesparend. Die schlechte Nachricht: Die Bude ist kalt.

Aus uns noch unbekannten Gründen ist etwas in der Steuerung abgeraucht, das die Motorschutzschaltung auslöst. Kompressormotor ist (zum Glück) mit ziemlich großer Sicherheit auszuschließen, da die Störung auch bei abgeklemmtem Motor auftritt.

„Rock solid“

Obwohl ich öfter bei heise.de vorbeischau, ist mir die Ausfallsmeldung von DynDNS entgangen. Dumerweise hat GMX die Entsperr-Mail in den Spamordner verschoben. Komischerweise hat mein Account auch heute noch ein bisschen Schluckauf. Soweit eigentlich nicht schlimm, nur fehlen der Energieerfassung dadurch einige Datensätze.

Waren es am 27.01. noch 97 (komischerweise gibt es oft einen „Extrasatz“), gab es am Tag des Ausfalls nur 47. am 29.01. gab es wieder 80.

Um das DynDNS-Problem zu entgehen, müsste ich die Daten auf den Server „schieben“ lassen, was momentan noch immer ein Problem ist.

So wie es aussieht, werde ich wohl einen externen SRAM an den AVR bringen. Dann sollte das Speichern mehrerer Tage kein Problem mehr sein. Dadurch kann auch der Intervall noch etwas verringert werden.

Bisschen gespart

Nachdem die Datenbank für die Energieerfassung doch etwas aufgebläht war, habe ich sie nun etwas umstrukturiert.

Vorher war sie wohl etwas zu sehr atomar – für jeden gemessenen Wert gab es (samt Sensorindex und Datum) einen Eintrag. Das macht das Ganze zwar skalierbar, aber zu einem ziemlichen Speicherfresser.

Jetzt werden alle Werte zu einem Zeitpunkt in Spalten gespeichert. Die Datenbank dankt:

(Tabellen vorher ohne „s“, danach mit).

Jetzt braucht das Ganze nur noch ein fünftel an Speicherplatz und die Tabellen sind zudem noch etwas übersichtlicher.

Soll/Kann/Darf das so sein?

Die Energieerfassung ist mittlerweile schon einen guten Zeitraum dabei, Daten zu sammeln. In der SQL-Datenbank haben sich jetzt schon gut 70000 Datensätze angesammelt, wobei die Speicherung immernoch recht ineffizient ist. Da muss ich mich doch nochmal hinsetzen…

Wie dem auch sei, hier mal der Tages-Temperatur-Verlauf vom 10.11.2010:

(klicken für die volle Größe)

Beim Betrachten der Kollektortemperatur sieht man, dass uns die Sonne an dem Tag nicht im Stich gelassen hat. Was mich aber etwas irritiert: zwar steigt die Puffertemperatur (besonders im unteren Bereich) relativ passend zu dem, was vom Dach kommt, bei dem Knick zwischen 14 und 15 Uhr fällt die Puffertemperatur schlagartig ab. Woher kommt das?

Ironischerweise steigt bei dem „Temperaturloch“ die Wärmepumpe ein (Wpin und Wpout sind die Ein- und Auslasstemperaturen im „Primärkreis“) und bringt das Wasser wieder auf Temperatur. Ob die Kollektortemperatur während dem Betrieb der Wärmepumpe wirklich aufgrund der Sonneneinstrahlung hochging, kann ich gerade nicht sagen. Dazu müsste ich entweder mal die Rücklauftemperatur zu den Solarpanels messen oder eine kleine Solarzelle/Lichtsensor auf dem Dach positionieren.

Sollte die Energie der Wärmepumpe aber tatsächlich auf das Dach transportiert worden sein, um dort rausgeblasen zu werden, gibt’s demnächst ein kleines Fachgespräch mit dem Installateur…

Was mir auch noch ein bisschen aufstößt – in der Beziehung kann ich mich aber irren – warum läuft die Wärmepumpe so oft aber gleichzeitig so kurz?

Am Temperaturverlauf kann man sehen, dass die Differenz (und damit die aus dem Grundwasser entnommene Energie) über die Laufzeit gesehen recht klein ist.

Im Diagramm hat die Wärmepumpe um ca. 3:15 das dritte mal an dem Tag losgelegt und es hat, dem Zeitschlitz entsprechend, eine viertel Stunde gedauert, bis die Temperaturdifferenz zwischen Ein- und Auslass das Maximum angenommen hat. In diesem Zustand verharrt das System dann eine knappe halbe Stunde, bis die Pumpe wieder ausgeht.
Eine weitere halbe Stunde später geht das ganze wieder von vorne los, wobei jetzt die „ineffiziente Zeit“ etwas kürzer ist und die Wärmepumpe fast eine Stunde läuft.

Ich hab so das Gefühl, da läuft was gründlich falsch.

Nächstes Projekt: Eigene Regelung für die Wärmepumpe?

Daaateeeen!

Seit gut einer Woche lasse ich die Daten aus der Energieerfassung historisch in der Datenbank speichern. In der Datenbank sind dabei bis jetzt etwas über 500KiB aufgelaufen.

Heißt: ich muss mir demnächst ggf überlegen, die ganzen Daten etwas komprimierter zu speichern und gleichzeitig den Informationsgehalt annehmbar hoch zu halten.

Etwas in Richtung Stunden-, Tages- und Wochenstatistik wird es wohl werden, die neben dem Mittelwert auch statistische Parameter enthält wie  Quartile, Standardabweichung, Spannweite, etc.

Achja: Die nächsten Tage kommt ein neuer Artikel in die Wiki. Text ist schon fast fertig, Bilder müssen noch bearbeitet werden.