Nobi's Casa Page
Ende 2013 hatte ich mir eine "CASAcontrol Smart-Home-Systeme Basis-Station Deluxe" bestellt, die nach 1 Jahr immer noch nicht lieferbar war.
Deshalb wurde es dann doch nur eine "CASAcontrol Smart-Home-Systeme Basis-Station Premium".
Leider hatte ich auch das Problem wie in vielen Foren beschrieben, das die Thermostate nie das machten was sie sollten. Da es zumindeestens einige Infos im Netz über das Protokoll gab,
schrieb ich mir kurzerhand einen kleinen Protokoll_Sniffler und wollte der Sache auf den Grund gehen. Dabei rausgekommen sind ein Desktop-Programm und eine App für Android.
Das größte Problem war das die Thermostate in unregelmäßigen Abständen in einen Error-Status gehen und dann ihre Zeit auf Sonntag 0:00 Uhr zurücksetzen.
Das Programm und Die App überprüft das regelmäßig und senden im Bedarfsfall ein ":04"-Command an die Basis-station was dann die Zeiten synchronisiert. Seit dem machen die Thermostate was sie sollen :). Weiterhin hab ich festellen müssen das die Orginal Casa-App
die Basisstation alle 5 Sekunden pollt, man muß sie schon killen wenn man das abstellen will :( .... :
Bischen komisch ist auch das Verhalten, das eine händische Temperatur bis zu nächsten Wechsel in der Zeitsteuerung hält. Also von einigen Minuten bis zu einer ganzen Nacht :(.
Die Steurung der Basisstation erfolgt über 2 Formulare:
welche dann jeweils ein Commando absetzten
Dem GoAhead-Webserver auf der Basistation ist es geschuldet das die Formular-Abfrage und das Commando immer hintereinader gesendet werden müssen.
Rückgabe der Commandos ist eine kleine Web-Page mit einem Zahlencode der den Informationen oder dem Fehlercode entspricht.
Die wichtigsten INFOCODE ( erst mal nur für die Thermostate )
:30 Seriennummer abfragen ( nicht sehr sicher :( da dies für die COMMAND verwendet werden kann )
:21 Paired Thermostate abfragen
ret: 00{:11:11:00:00:00:00:00:00:00:00:00:00}
Channel 1-12 "11"=paired "00"=not paired
:29:01:04 eingestellte Solltemperatur abfragen vorher muß mit den COMMAND=
:29:01:04 der Channel aktiviert werden.
ret: 00{:01:04:02:08:23:00:21:02:01:01:00:00:00:20:28:2c}
Wochentag ( 0=So 1=Mo 2=Di .... 6=Sa )
Minute ( 0-59 in Hex ) Das ist die Zeit der Thermostate die manchmal durcheinader kommt :(
Temperatur in 0,5° Schritten (Hex) 0x21=33=16,5°
Temperaturbereich 01=Frostschutz 02=Eco 03=Semi 04=Komfort
Auto/Hand 00=Zeitsteuerung activ 01=Handsteuerung (durch Programm oder direkt am Thermostat)
:28:01:04:00 eingestellte Zeitsteuerung abfragen vorher muß mit den COMMAND=
:28:01:04:00 der Channel aktiviert werden.
Wochentag ( 0=So 1=Mo 2=Di .... 6=Sa
ret: 00{:01:04:00:11:11:11:22:22:33:33:44:44:44:11:11}
Wochentag ( 0=So 1=Mo 2=Di .... 6=Sa )
Temperaturbereich 1=Frostschutz 2=Eco 3=Semi 4=Komfort ( 24 Werte 0Uhr bis 23Uhr )
Die wichtigsten COMMAND ( erst mal nur für die Thermostate )
:04 Zeit der Thermostate synchronisieren
:27:01:04:01:01:01
:21:02
Solltemperatur einstelln
Auto/Hand 00=Zeitsteuerung aktivieren 01=Handsteuerung
Temperatur in 0,5° Schritten (Hex) 0x21=33=16,5°
Temperaturbereich 01=Frostschutz 02=Eco 03=Semi 04=Komfort
:26:01:04:00:11:11:11:22:22:33:33:44:44:44:11:11
Zeitsteuerung übertagen
Wochentag ( 0=So 1=Mo 2=Di .... 6=Sa )
Temperaturbereich 1=Frostschutz 2=Eco 3=Semi 4=Komfort ( 24 Werte 0Uhr bis 23Uhr )
Bei meiner Programmierung habe ich mich erst mal auf die Thermostate konzentriert, die Schalter bestelle ich demächst und dann wirds auch erweitert. Alle Angaben für eine Basis Premium ohne Gewähr (Alles mit "Try and Error" ermittelt)
Hier nun das enstandene Programm:
- Konfiguration in beiliegender casacfg.xml
- Periodisch Abfrage der Temperaturen und Überwachung der Zeitflags
- Erkennung ob Thermostat im Hand- oder Zeitsteuerungsmodus
- Einfaches Einstellen der Temperaturen und Rücksetzung in den AutoMode
- Einfaches Schedulen und auslesen der aktuellen Zeitsteuerung
Die geht es zur CasaApp-Seite
Links