Heizung per Radio steuern

My Noxon: Heizung

2008 begann ich damit, das Haus mit Internetradios auszustatten . Die Noxon iRadio-Geräte (Noxon iRadio und iRadio Cube) haben leider fest eingebaute Menüeinträge , die man nur mit Internetverbindung nutzen kann. ​

Diesmal habe ich das von den Radios gesprochene Protokoll analysiert, dokumentiert und meine eigene Serversoftware implementiert, mit der ich jetzt die Heizung steuern kann. ​

Probleme​

Die iRadio-Geräte haben einige sehr störende Bugs: ​

  1. Die Noxon-Internetradios telefonieren regelmäßig nach Hause. Ich habe deshalb von Anfang an die angefragten Domains auf 127.0.0.1 gemappt. ​

    ​
  2. Die Uhrzeit ist - vor allem auf dem iRadio Cube - falsch, obwohl NTP eingstellt ist. Das ganze hängt auch noch von der Sommerzeit/Winterzeit-Einstellung ab; im Sommer zeigt das Radio fast eine komplette Stunde falsch an, im Winter sind es ~10 Minuten. ​

    ​
  3. Wenn das Radio einen Tag im Standby ist, verliert es den UPnP-Server - und findet ihn auch nicht mehr, wenn man es wieder aus dem Standby weckt. Man muss das Radio richtig hart neustarten, damit man es wieder nutzen kann. ​

    ​
  4. In UPnP-Ordnern mit vielen Einträgen (gefühlt ab 50, ich habs aber auch schon bei welchen mit 10 erlebt) kann man nicht mehr in die Ordner reinwechseln. ​

    Man scrollt runter zum gewünschten Ordner, drückt -> und ist wieder am Anfang der Liste. ​

    Ganz krass ist es bei Ordnern mit 200+ Einträgen: Einfach nach oben scrollen, so dass man am Ende rauskommt und dann noch ein paar mal nach oben drücken - schon ist man komplett aus dem Menü raus und im Hauptmenü. ​

    Damit ist das Radio bei größeren Albenlisten unbenutzbar. ​

    ​

Eigene Serversoftware​

Da Terratec vermutlich irgendwann die Server abschalten wird, habe ich mit mitmproxy den Datenverkehr der Radios mitgeschnitten, analysiert und das Protokoll dokumentiert . Mit der API-Doku konnte ich nun meinen eigenen Noxon-Server bauen. ​

Ich hatte mehrere Ziele: ​

UPnP -> Internetradio​

Da die Radios fest eingebaute Menüeinträge Internetradio, Podcasts und My Noxon haben - die niemals verloren gehen - war die erste Idee, das Internetradio-Menü mit dem Inhalt des UPnP-Servers zu bestücken ​

Ich hatte 2008 mehr aus Spaß geschrieben: ​

Knowing this format, one could make the menu entries actually useful by creating a noxonXml-to-MediaTomb gateway with Services_MediaTomb :) ​

​

Genau das habe ich auch gemacht; wenn man das Internetradio-Menü betritt sieht man genau denselben Inhalt wie wenn man den UPnP-Server-Menüeintrag ausgewählt hätte. ​

Zwei Vorteile: ​

Internet Radio ​

Das iRadio Cube unterstützt - im Gegensatz zum originalen iRadio - leider kein ogg/vorbis. Da der UPnP-Server jetzt nicht mehr direkt von den Radios angefragt wird, musste ich die Konvertierung von .ogg-Dateien nach .mp3 selbst implementieren. ​

Dateisystemmapping​

Als die grundlegende API zum Ausspielen von Menüs implementiert war baute gleich ich noch einen Datei- und Verzeichnisansichtsmodus ein. ​

Damit werden die Menüs Podcasts und My Noxon jetzt auf Pfade im Dateisystem abgebildet: Wenn man My Noxon aufruft, wird der Inhalt des Verzeichnisses var/mynoxon aufgelistet. ​

Ordner und Textdateien werden im Radio als Ordner dargestellt. Navigiert man in eine Textdatei hinein, wird jede Zeile der Textdatei als nicht-navigierbarer Menüeintrag ans Radio ausgeliefert. ​

Für die Anzeige auf dem Fernseher habe ich schon solche Textdateien für die letzten Anrufe, die nächsten Geburtstage, den Kontostand und die Zimmertemperaturen. ​

Ich nutze zur Darstellung auf dem Fernseher meine Dreambox-Extension curlytx . ​

Schnell kam ich auf die Idee, ausführbare Dateien (chmod +x) auch als Ordner darzustellen. Navigiert man in diesen Ordner hinein, wird die Datei ausgeführt und die Ausgabe des Programms wie bei Textdateien zeilenweise ans Radio gesendet. ​

Schnell kamen noch Autostartscripte hinzu, die automatisch ausgeführt werden, wenn man einen Ordner auflistet, und deren Ausgabe in die Ordnerauflistung integriert. ​

Temperaturen auf dem iRadio Cube Anrufe Podcasts ​

Heizung -> My Noxon​

Wir haben eine Wärmepumpe von Dimplex, die per Netzwerkmodul (NWPM) ansprechbar ist. ​

Über HTTP kann man die aktuellen Einstellungen auslesen und ändern, wie ich es mit meinen dimplex-tools mache: ​

#!/bin/sh
set -e
ipaddress=1.2.3.4
res=`curl -sS "$ipaddress/usr-cgi/xml.cgi?I|1|1"`
echo "$res"\
    | grep VALUE\
    | tr -cd [:digit:]
echo

Dieses Script liest die aktuelle Einstellung der manuellen Anpassung der Rücklaufsolltemperatur aus. Wenn man diese ändert, wird das Haus wärmer oder kälter. ​

Schnell waren ein paar Scripte geschrieben, eins das die aktuelle Einstellung der Wärmepumpe im Ordner "Heizung" anzeigt, und Scripte zum Wärmer- und Kälterstellen der Heizung: ​

My Noxon Heizung wärmer stellen ​

Download​

Die resultierende Serversoftware heisst noxon-gateway und ist auf meinem Git-Server zu finden.

Written by Christian Weiske.

Comments? Please send an e-mail.