Im Hexenhaus ist im UG die Seifensiederei untergebracht. Im Seminarraum, der Küche und dem Bad liegt eine Fussbodenheizung.
Es gibt ein schönes Web-Interface und es stehen Einzelraumregler zur Verfügung. Allerdings will ich die Zustände nicht am Web-Interface abfragen, sondern ein Raspberry trägt in einem Cron-Job die relevanten Daten in eine Energie-Übersicht ein.
Dazu frage ich in Python das U@Home Modul direkt an. Es gibt eine IP/api die ich anfrage:
POST /api {"jsonrpc":"2.0","id":6358,"method":"readactivealarms","params":{}}
Dazu nehme ich ein Add-In für den Firefox, das LiveHTTPHeaders-Modul.
Während dies läuft, bediene ich das Web-Interface und bekomme die Headers und Requests mitgeschrieben. Daher weiss ich meine Raumnummern und kann die dazugehörigen Raumbezeichnungen erkennen.
#arrays anlegen mit meinen Raumbezeichnungen
#diese Raumnummern aus der Weboberfläche heraus mitgeschnitten
# 0 1 2
Raum_T = ["Seminar-Raum","Seminar-Kueche","Seminar-Bad"]
Raum_N = [81,121,161]
Im JSON Format lassen sich einige Werte abfragen. Dazu wird eine ID geschickt und hinter der ID '85' kommen die Values, also die Rückgaben.
data = {
"id": 1,
"jsonrpc": "2.0",
"method": "read",
"params": {
"objects": [
{
"id": "1",
"properties": {
"85": {}
}
},
{
"id": "20",
"properties": {
"85": {}
}
},
{
"id": "23",
"properties": {
"85": {}
}
},
{
"id": "26",
"properties": {
"85": {}
}
},
{
"id": "29",
"properties": {
"85": {}
}
},
{
"id": Raum_N[i]+10,
"properties": {
"85": {}
}
},
{
"id": Raum_N[i]+24,
"properties": {
"85": {}
}
},
{
"id": Raum_N[i]+26,
"properties": {
"85": {}
}
},
{
"id": Raum_N[i]+28,
"properties": {
"85": {}
}
},
{
"id": Raum_N[i]+29,
"properties": {
"85": {}
}
}
]
}
}
In einem einfache Python Script habe ich alle IDs abgefragt und die Werte in OpenOffice Calc eingelesen zum vergleichen. Nach dem Anpassen einiger Werte konnte ich die für mich interessanten IDs rausfinden. In meiner Installation waren dies:
Stammdaten-IDs:
20 | Modul-ID |
23 | Modus Home/Away |
26 | Software-Version |
29 | Alarm-Temperatur |
Raumbezogene IDs:
Raum_N+10 | Soll-Temperatur |
Raum_N+24 | Ist-Temperatur |
Raum_N+26 | Humidity in % |
Raum_N+28 | Raumbezeichnung |
Raum_N+29 | Utilization in % |
Der Raspberry liefert folgende Text-Daten zusätzlich zum CSV-Datensatz den ich dann weiterverarbeite:
Raspberry Pi fragt Uponor U@Home direkt ab
Uponor SMatrix Haus 6
Generelle Daten:
Modus : Away
Modul-ID : 00010017
SW-Version: 02.01
Alarm-Temp: 10.0
----------------------------------------
'Seminar-Raum', Soll: 17.0°, Ist: 18.1°, Heizanteil: 34.1%, Humidity: 66.0%
'Seminar-Kueche', Soll: 16.0°, Ist: 17.0°, Heizanteil: 100.0%, Humidity: 66.0%
'Seminar-Bad', Soll: 18.0°, Ist: 18.8°, Heizanteil: 100.0%, Humidity: 62.0%