API 2018-07-26T09:09:42+00:00

Heizungssteuerung API

Controme ermöglicht die Steuerung und das Abfragen von Temperaturen über einfache http-Befehle. Mit der API können mit einfachen http-Befehlen Informationen abgerufen und Einstellungen vorgenommen werden. Die Kommunikation erfolgt über den Controme Quad-Core Miniserver.

Ein kleines Tool zur Implementierung in Open Hab finden Sie hier.

Zum testen und zum Verständnis der Funktionsweise der API verwenden Sie am besten das kostenlose Programm Postman: https://www.getpostman.com/

Sofern Controme an einen KNX-Server angebunden werden soll, kann dieser nach entsprechender Einrichtung per http-Befehl sowohl Solltemperaturen an Controme schicken, als auch Soll- und Ist-Temperaturen von Controme abfragen.

Allgemeine Beschreibung

Hinweis: Die Controme-API wird auf Anfrage auf Ihrem lokalen Controme-Server freigeschalten. Bitte senden Sie uns hierzu eine Email mit der Mac-Adresse ihres Controme-Servers an support@controme.com

Adressformat:

/get/json/v1/[HAUSID]/[METHODE]/[DATA]*/

und

/set/json/v1/[HAUSID]/[METHODE]/[DATA]*/

wobei [DATA] je nach Methode optional ist.

Die Methoden sind:

get-Methoden

get-temps

Enthält alle Räume mit jeweils:

  • Etagenname
  • Raum-ID
  • Summe der Modul-Offsets
  • Solltemperatur
  • Isttemperatur
  • Luftfeuchte
  • Raumname
  • Alle Module inkl. aktueller Offsets
  • Sensortypen
  • Letzter Übertragungszeitpunkt je Sensor
  • Sensor-ID
  • Sensorwert
  • Sensor-Beschreibung

URL:

…/get/json/v1/1/temps

Beispiel:

# [

#   {

#       „id“: etage.id,

#       „etagenname“: etage.name,

#       „raeume“: [

#           {

#               „id“: raum.id

#               „name“: raum.name,

#               „solltemperatur“: raum.solltemp,

#               „total_offset“: total_offset,

#               „offsets“: offsets,

#               „temperatur“: last,

#               „sensoren“: [

#                   {

#                       „name“: sensor.name,

#                       „beschreibung“: sensor.description,

#                       „wert“: last_val,

#                       „letzte_uebertragung“: last_ts,

#                       „raumtemperatursensor“: true/false

#                   },

#                   …

#               ]

#           },

#           …

#       ]

#   },

#   …

# ]

get-rooms

Enthält alle Räume mit jeweils:

  • Etagenname
  • Raum-ID
  • Icon-Name

URL:

…/get/json/v1/1/rooms/

Beispiel:

# [

#   {

#       „id“: etage.id

#       „etagenname“: etage.name,

#       „raeume: [

#           {

#               „id“: raum.id

#               „name“: raum.name,

#               „icon“: raum.icon

#           },

#           …

#       ]

#   },

#   …

# ]

get-roomoffsets

Enthält:

  • Modulname
  • aktiver Offset
  • Raum- oder Hausoffset
  • Raum-ID
  • Raumname

URL:

…/get/json/v1/1/roomoffsets/3

Beispiel:

+ /get/…/roomoffsets/[RAUMID]/

# [

#   {

# „id“: etage.id,

# „name“: raum.name,

#       „offsets“: offsets

#   }

# ]

+ /get/…/rltemps/[RAUMID]/

# [

#   {

#       „id“: sensor.id,

#       „name“: sensor.name,

#       „beschreibung“: sensor.description,

#       „wert“: last_val or null,

#       „letzte_uebertragung“: last_ts or null,

#       „ausgang“: last_out or null

#   },

#   …

# ]

+ /get/…/outs/

# [

#   {

#       „id“: etage.id

#       „etagenname“: etage.name,

#       „raeume“: [

#           {

#               „id“: raum.id

#               „name“: raum.name,

#               „ausgang“: {

#                   „[[nummer]]“: 1/0,

#                   …

#               }

#           },

#           …

#       ]

#   },

#   …

# ]

get-temperaturszenen

Enthält alle angelegten Temperaturszenen, aktiv ja/nein, die zugehörigen Räume, Raumnamen und Temperaturen.

URL:

…/get/json/v1/1/temperaturszenen/

Beispiel:

get-heizprogramm

Enthält

  • Schaltzeitpunkte des Heizprogramms
  • Temperaturszenen, die beim jeweiligen Schaltzeitpunkt aktiviert werden.

URL:

…/get/json/v1/1/heizprogramm/

Beispiel:

get-timer

Enthält

  • aktuell aktive und kommende Einträge im Modul Timer
  • Nächste Start-Zeit
  • Nächste End-Zeit
  • Raumnamen
  • Offset

URL:

…/get/json/v1/1/timer/

Beispiel:

get-Kalender

Enthält

  • aktuell aktive und kommende Einträge im Modul Kalender (Jahreskalender)
  • Nächste Start-Zeit
  • Nächste End-Zeit
  • Raumnamen
  • Offset
  • Eintrag-ID

URL:

…/get/json/v1/1/jahreskalender/

Beispiel:

set-Methoden

Die /set/ Aufrufe haben POST als HTTP Methode. In den POST Daten muss immer “user” und “password” mit Ihren Logindaten enthalten sein. Da wir auf dem Miniserver keine Zertifikate installiert haben, wäre es sinnvoll, wenn Sie /set/ Aufrufe nur im lokalen Netz abschicken. Wenn der Benutzer nicht authentifiziert werden kann, wird ein Statuscode 403 zurückgegeben.

set-soll

+ /set/…/soll/[RAUMID]/

Setzt die Solltemperatur im Raum. POST enthält zusätzlich “soll” mit einer Dezimalzahl als Wert.

URL:

…/set/json/v1/1/soll/3/

Methode:

  • POST

Body:

  • user
  • password
  • soll

Beispiel:

set-ziel

+ /set/…/ziel/[RAUMID]/

Setzt die Zieltemperatur im Raum. POST enthält zusätzlich “ziel” mit einer Dezimalzahl als Wert UND „duration“ mit einer Zeitangabe in Minuten als Wert. Als „duration“ kann auch „default“ als Wert angegeben werden.

set – ziel benötigt „duration“ mit einer Zeitangabe in Minuten als Wert im Body. Ohne „duration“ funktioniert es nicht.

URL:

…/set/json/v1/1/ziel/3/

Methode:

  • POST

Body:

  • user
  • password
  • ziel

Beispiel:

set-temperaturszenen

Aktiviert Temperaturszenen. POST enthält zusätzlich OPTIONAL “duration” mit einer Zeitangabe in Minuten als Wert. Als „duration“ kann auch „default“ als Wert angegeben werden. In diesem Fall wird die Temperaturszene temporär für die angegebene Zeit aktiviert und fixiert. Fehlt „duration“, wird die Temperaturszene dauerhaft aktiviert und bleibt bis zum nächsten manuellen switch oder bis zum nächsten switch des Heizprogramms.

set – temperaturszenen kann temporär oder dauerhaft gesetzt werden. Ist „duration“ mit einer Zeitangabe in Minuten als Wert im Body, wird die Temperaturszene temporär für die angegebene Zeitdauer aktiviert.

URL:

…/set/json/v1/1/temperaturszenen/4/

Methode:

  • POST

Body:

  • user
  • password
  • duration (optional)

Beispiel:

set-default-duration

Setzt die Default-duration, die für temporäre Befehle über die API verwendet wird und für die automatisch vorgeschlagene Zeitdauer im Quick-UI.

URL:

…/set/json/v1/1/quickui/

Methode:

  • POST

Body:

  • user
  • password
  • duration

Beispiel:

set-roomoffset

+ /set/…/roomoffset/[RAUMID]/

Legt ein Modul für einen Raum an mit einem gegebenen Namen und Offset. Das Modul speichert übergebene Werte nur im Cache mit einer Lebenszeit von 10 Minuten. Die Werte müssen also ggf. regelmäßig erneuert werden. POST enthält zusätzlich “offset” (eine Dezimalzahl) und “offset_name” (ein String).

set-houseoffset

+ /set/…/houseoffset/

PHP-Script Beispiele

Lesen von Temperaturen

Where $argv[1] is the sensor name you have been configured in the Controme set-up. It will be later defined in the .item file.

Auslesen der Set-Temperaturen

Setzen von Set-Temperaturen

Setzen von Ist-Temperaturen

Es können Ist-Temperaturen von externen Systemen gesetzt werden. Hierzu müssen Sensor-Schnittstellen mit Lizenz-IDs von Controme generiert werden, die in Smart-Heat-OS angelegt werden können. Pro Sensor fallen hierfür Kosten in Höhe von €10,- netto an. Die lizensierten Sensor-IDs und die zugehörige Schnittstellenbeschreibung erhalten Sie auf Anfrage per Email. Bitte senden Sie bei Bedarf eine Anfrage an support@controme.com

Implementierungsbeispiel in OpenHab

Hinweise zur Controme API

Die Schnittstellenbeschreibungen für das Controme Smart-Heat-System sind für erfahrene Entwickler gedacht, welche Drittsysteme an Controme Smart-Heat anbinden wollen. Bitte beachten Sie, dass wir seitens Controme keinen technischen Support für die API liefern.

Die Schnittstellenbeschreibungen werden mit jedem Update von Controme Smart-Heat laufend aktualisiert. Wir behalten es uns vor mit einem Update Änderungen an den Schnittstellen vorzunehmen.