Uponor Radio24@home in Grafana

Uponor Radio24@home in Grafana
Uponor Monitoring mit Grafana und Influx

Auch die älteren Uponor-Steuerungen lassen sich mit Grafana visualisieren:

Grafana zeigt Uponor Ventilzustand und Soll-Ist Temperaturen

Zu jedem Raum ist die Heizleistung und die Fläche hinterlegt. Ein Python Script liest das JSON-Protokoll von Uponor Radio24 ein, analysiert es und schreibt alle 3 Minuten eine Datensatz in die Influx-Datenbank. Dazu werden die gerade beheizten Flächen und die Heizleistung mitgeschrieben. Aus der Ökofen Pellematic Smart hole ich mir zur Info noch die Vorlauftemperatur für den Fussboden-Heizkreis. 

Bei 13 Räumen mit Einzelraumregelung hätte ich in der Original-Uponor-Oberfläche viel zu klicken um mir einen Überblick zu verschaffen. 

Durch Farbcodierungen sehe ich schnell ob Heizbedarf besteht und ob eventuell wieder jemand vergessen hat im Bad das Fenster zu schliessen.

Der eingebettete Graph mit der Vorlauftemperatur zeigt mir dann auch, ob in Kürze ein Erreichen der Zieltemperatur eintreten kann, oder nicht.

Hier ein Stück Python-Code für die Abfrage der Werte:

#mein Uponor @home Gerät
url = 'http://192.168.22.206:80/api'
#Uponor @home abfragen
r = requests.post(url, data=json.dumps(data), headers=headers)
json_string = json.dumps(r.json())
parsed_json = json.loads(json_string)
#Json auswerten
akt_temp = (parsed_json["result"]["objects"][1]["properties"]["85"]["value"])
soll_temp = (parsed_json["result"]["objects"][2]["properties"]["85"]["value"])
heizt = int((parsed_json["result"]["objects"][3]["properties"]["85"]["value"]))

Ihr seht, das JSON ist gewöhnungsbedürftig. Den Abfragestring muss man selbst zusammenbauen und in der selben Reihenfolge dann auch auswerten:

print("\nRaspberry Pi fragt Uponor U@Home direkt ab")
#Alle Räume bearbeiten
i = 0
  while i < 13:
  #Abfrage-String zusammenbasteln
  data = {
   "id": 1,
   "jsonrpc": "2.0",
   "method": "read",
   "params": {
   "objects": [
   {
   "id": "1",
   "properties": {
     "85": {}
     }
   },
   {
   "id": Raum_N[i],
   "properties": {
     "85": {}
     }
   },
   {
   "id": Raum_N[i]+1,
   "properties": {
     "85": {}
   }

und so weiter.

Welche ID für welchen Wert steht habe ich mit den Firefox-Entwicklertools nachgeschaut.

#arrays anlegen mit meinen Raumbezeichnungen
# 0 1 2 3 4 5 6 7 8 9 10 11 12
Raum_T = ["UG-Gaestebad","UG-Wohnzimmer","UG-Stiefelraum","UG-Gaestekammer","UG-Diele","EG-Wohnzimmer","EG-Ankleide","EG-Schlafzimmer","EG-Kueche","EG-Elternbad","DG-Seeblick","DG-Diele","DG-Wellness"]
#diese Raumnummern aus der Weboberfläche heraus mitgeschnitten
Raum_N = [139,149,159,169,179,19,29,39,49,59,259,269,279]
#Parameter der die Web-Soll-Temperatur angibt. Value=255 übergibt wieder an Thermostat
Raum_S = [2538,2540,2542,2544,2546,2512,2514,2516,2518,2520,2560,2562,2564]

#Raum_N = Aktuelle Temperatur
#Raum_N + 1 = Soll Temperatur am Thermostat
#Raum_N + 4 = Heizen 0/1

Wenn ihr das ganze Skript möchtet, schickt kurz eine Nachricht. Ich freu mich über Kommentare.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.