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-deviation

Enthält

  • Raumname („name)
  • Temperaturdifferenz Isttemperatur zu Zieltemperatur („deviation“)

Deviation-Wert ist negativ, wenn der Raum zu kalt ist. Deviation-Wert ist positiv, wenn der Raum zu warm ist.

ACHTUNG: Dieser Endpunkt funktioniert nur, wenn das Plugin „Vorlauftemperaturkorrektur“ aktiviert ist.

URL:

…/get/json/v1/1/deviation/

…/get/json/v1/1/deviation/11/

„11“ ist in o.g. Beispiel die Raumnummer.

Beispiel:

get-fps

Enthält

  • Name („name“)
  • Wert („value“)

URL:

…/get/json/v1/1/fps/

…/get/json/v1/1/fps/3

„3“ ist in o.g. Beispiel die Nummer der Regelung (zu finden in der URL). Wird die Nummer freigelassen, werden alle angelegten Regelungen abgefragt.

get-heizprogramm

Enthält

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

URL:

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

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:

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-outputs

Enthält:

  • Ausgangsstati 0/1 jedes Relais von FBH-Gateways und Mini-Gateways
  • Reihenfolge 1-15 entsprechend der Ausgangsnummerierung

URL:

…/get/MacAdresse/all

Beispiel:

<0;0;0;0;0;0;0;0;0;0;0;0;0;0;1>

get-tempforecast

Enthält:

  • Nächsten Schaltzeitpunkt aller Temperaturszenen
  • Zugeordnete Solltemperaturen aller Räume für alle Temperaturszenen
  • Relative Zeit bis zum Schaltzeitpunkt der jeweiligen Temperaturszene

URL:

…/get/MacAdresse/tempforecast/

Beispiel:

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-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-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-upcoming offsets

Enthält

  • in der Zukunft eintretende geplante Offsets von Jahreskalender
  • in der Zukunft eintretende geplante Offsets von Timer
  • in der Zukunft eintretende geplante Solltemperaturänderungen von Heizprogramm

URL:

…/get/json/v1/1/upcomingoffsets/

Beispiel:

get-vtr

Enthält

  • Name („name“)
  • Vorlauftemperatur („ist“)
  • Vorlauf-Solltemperatur („soll“)
  • Vorlauf-Offset („offset“)
  • Vorlauf-Zieltemperatur („ziel“
  • Temperatur Mischereingang („eingang“)
  • Außentemperatur („AT“)
  • Fehlermeldung („fehler“)
  • Mischerposition (position“)
  • Rücklauftemperatur („ruecklauf“)

URL:

…/get/json/v1/1/vtr/

…/get/json/v1/1/vtr/3

„3“ ist in o.g. Beispiel die Nummer der Regelung (zu finden in der URL). Wird die Nummer freigelassen, werden alle angelegten Regelungen abgefragt.

Beispiel:

get-wetter-pro

Enthält

  • Name
  • Wert

URL:

…/get/json/v1/1/wetter_pro/

…/get/json/v1/1/wetter_pro/3

„3“ ist in o.g. Beispiel die Nummer der Regelung (zu finden in der URL). Wird die Nummer freigelassen, werden alle angelegten Regelungen abgefragt.

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.

URL:

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

Methode:

  • POST

Body:

  • user
  • password
  • ziel
  • duration

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.

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

Achtung: Aufgrund interner Filter nimmt Smart-Heat-OS nur Temperaturen an, die durch 0,125 teilbar sind. Wobei die Endungen .125 als .12 zu senden sind (…, 22.0, 22.12, 22.5, 22.62, 22.75, …). Bei der Umsetzung bitte entsprechend Runden (auf 0.125, 0.25 oder 0.5).

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.

Problembehebung

API gibt nichts aus

Bitte prüfen Sie in diesem Fall zunächst, ob Sie die korrekte Haus-ID verwenden. Aus unterschiedlichen Gründen ist die ID manchmal „2“ und nicht „1“. Der korrekte Endpunkt ist deshalb bei einigen Systemen z.b.

/get/json/v1/2/temps

und nicht

/get/json/v1/1/temps