Thermostate für Controme im HA anlegen

Ja, ich habe den Miniserver in meiner Apple-Homeapp gelöscht, dann den Rest betätigt und den
Miniserver neu gestartet.

Werde morgen den Miniserver nochmals neu starten und dann evtl. auch noch mal einen
Neustart von HA probieren.

Update:
@sir_lemorak
Leider kein Erfolg!
Habe am Miniserver wie beschrieben reset gedrückt und neu gestartet.
Keine Verbindung, nur die Sanduhr

Dann nochmals und auch einen Neustart von HA incl. Hardware - wieder nix!

Eine Frage:
War bei Dir die Verbindung sofort möglich und kamen auch die Entitäten sofort oder bin ich nur zu
ungeduldig?

Genau dasselbe Problem bei mir. Ich habe jetzt mal den Controme Support angeschrieben.

Also die Verbindung ging dann direkt. Hat vielleicht ein paar sekunden gedauert. Der neustarten link in den einstellungen zum homekit funktioniert übrigens nicht. Ich bin zu den Einstellungen vom mini server und habe dort den Neustart durchgeführt. Aktuelle stable software ist drauf?

Ja, den Neustart mache ich immer über das Miniservermenü.
Bei mir läuft die LAB vom 29.08.2023, ist aber nahezu identisch mit der stable.

@Tierheim-Hassberge
Ich mache Dir wenig Hoffnung, dass Du, wenn überhaupt, eine brauchbare Antwort vom controme-Support bekommst (sorry, aber meine Erfahrung der letzten 2 Jahre).

Ja leider in letzter Zeit auch meine Erfahrung, ich warte schon Wochen auf Rückmeldung.
Ich bin echt ein begeisterter Controme Fan, ich konnte bei mir Zuhause eine Chaos Wärmepumpe mit vielen Fehlern damit zum laufen bekommen.

Genauso im Tiehrheim auch eine Chaos Installation/Planung der Wärmepumpe und mit Controme konnte ich Fehler finden und den Verbrauch von 32.000 kWh/a auf 17.800 kWh/a senken bei steigenden Komfort.

Controme war bei beiden Aktionen teilweise sehr gut zu raten gestanden. Und sie fragten auch ob ich für ein paar Kunden ein Erfahrungstelefongespräch führen würde, die noch unschlüssig waren. Also rein meine Erfahrung mit Vor und Nachteilen. Dies habe ich auch, nur was mich ärgert ist der stark schwankende Kundenservice, da müssen Sie echt noch dran arbeiten.

Genauso finde ich das sie viel zu wenig Werbung für Ihr gutes System machen.

Aber anscheinend haben Sie Personalmangel.

Schön wäre aber eine offene Kommunikation mit uns als Kunden, hey Leute wir haben das Problem, aber wir arbeiten dran. Dann wäre es für mich ja absolut verständlich oder zumindest nachvollziebar.

Ich glaube auch, dass die sich mit “unserem” Problem gar nicht mehr beschäftigen, da sie im
1.Q2024 das MATTER-Plugin implementieren wollen:

[quote=]
Controme arbeitet aktuell an einem Matter-Plugin und plant den Launch im Frühjahr 2024.
[/quote]

Das Problem im Tierheim ist, dass wir den Facility Server statt den Miniserver von Controme haben, da ist das aktuellste Update von 10/2022.

Deswegen geht auch wahrscheinlich die Integration über HomeKit nicht.
Und Matter auch nur dann, wenn dieser hierzu ein Update bekommt.

Ich denke die einzige Möglichkeit ist es wahrscheinlich über die API wie @Ordo zu machen.

So, hier endlich die versprochene Schritt für Schritt Anleitung um Controme mit dem Home Assistant zu verbinden.

1. Sensoren erstellen
Mit Hilfe des Controme yaml creator die Sensoren erstellen.

2. Script für Ziel Temperatur setzen
In der configuration.yaml Scripte für das setzen der Ziel Temperatur einfügen.

shell_command:
  wohnzimmer_ziel_temperatur_setzen: 'curl --location --request POST ''http://contromeminiserver.fritz.box/set/json/v1/1/ziel/7/'' --form ''ziel="{{ states(''sensor.wohnzimmer_ziel_temperature_value'') }}"'' --form ''duration="default"'' --form ''user="user@domain.local"'' --form ''password="ganzGeheimesPasswort"'''

Das Script setzt einen REST Call ab, es sollte auch mit der REST Integration funktionieren, da hatte ich aber mit der Formatierung Probleme.

3. Sensor für die Zieltemperatur erstellen
In der configuration.yaml muss ein Tempate Sensor erstellt werden.
Der Template Sensor stellt die Zieltemperatur für einen Raum bereit, die in der Climate Generic Thermostat Integration verwendet werden kann.

template:
  - sensor:
      - name: "Wohnzimmer Ziel Temperatur"
        unique_id: wohnzimmer_ziel_temperature_value
        device_class: temperature
        state_class: measurement
        unit_of_measurement: "°C"
        state: "{{ state_attr('climate.wohnzimmer', 'temperature') }}"

4. Für den Raum einen Generic Thermostat erstellen
In der configuration.yaml wird ein Generic Thermostat erstellt
Dieser kann im Dashboard verwendet werden, z.B. mit der Tile Card.

climate:
  - platform: generic_thermostat
    name: Wohnzimmer
    target_sensor: sensor.wohnzimmer_ist_temperatur_value
    heater: input_boolean.controme_dummy_heater
    min_temp: 4.5
    max_temp: 30.5
    precision: 0.1

Der Gerneric Thermostat benötigt einen Switch heater. Da ich die Steuerungslogik von Controme nicht überschreiben will habe ich hierfür einen Helper vom Type Toggle angelegt. Dadurch kann ich die Konfigurationsanforderungen des Generic Thermostat erfüllen, die Steuerung läuft aber ins leere.
Den Helper über legt man am besten über die UI an.
Im Beispiel mit dem namen controme_dummy heater. Das ergibt die Entity ID input_boolean.controme_dummy_heater.

5. Ist Temperatur
Für die Ist Temperatur kann entweder der Wert aus der Controme REST API verwendet werden, wenn dort für den Raum ein Enocean Sensor eingebunden wurde.
Oder es kann auch ein beliebiger anderer Sensor, z.B. Aqara oder homematic IP verwendet werden.
Der Name des Sensors muss in den beschriebenen Schritten entsprechend angepasst werden.

Etappenziel
Wenn die ganze Steuerung über Home Assistant erfolgen soll und keine Änderungen mehr in der Controme Weboberfläche erfolgen, und dort auch keine Temperaturszenen, Heizprogramme, Wetterkorrektur oder ähnliches eingesetzt wird, dann ist die Integration damit vollständig.

Soll davon etwas verwendet werden, was auch Sinn macht, denn andernfalls wäre der Controme Miniserver ja überflüssig, dann sind noch weitere Schritte erforderlich. Die spiegeln Änderungen in Controme im Home Assistant wieder. Und sie sorgen dafür, dass zeitgleiche oder sehr kurz aufeinander folgende Änderungen in beiden Oberflächen nicht in einem undefinierten Zustand enden.

6. Helper
Es werden Helper benötig, welche erkennen lassen, wo gerade eine Änderung stattgefunden hat, und entsprechend verhindern, dass eine automatische Action eine Änderung durchführt.
Die Helper können in der configuration.yaml angelegt werden:

input_boolean:
  temperature_wohnzimmer_thermostat_flag:
    name: "Wohnzimmer - Änderung am Thermostat"
  temperature_wohnzimmer_controme_flag:
    name: "Wohnzimmer - Änderung in Controme"

Oder über die UI als Helper vom Typ Toggle.

7. Automatisierungen
Es sind noch drei Automatisierungen notwendig. Die können über die UI angelegt werden. Die Dokumentation ist darüber etwas mühsam, deshalb hier der yaml Code. Wenn beim Anlegen einer Automatisierung auf "Edit in YAML"umgeschaltet wird, dann kann das Codesnippet dort eingetragen werden. Wenn alle Bezeichner für die verwendeten Entities stimmen, dann wird der Code auch schön in die graphische Ansicht übersetzt.

Zieltemperatur in Controme setzen wenn am Thermostat im Home Assistant etwas geändert wird.

alias: Set Controme Ziel Temperatur from WohnzimmerThermostat
description: ""
trigger:
  - platform: state
    entity_id:
      - climate.wohnzimmer
    attribute: temperature
condition:
  - condition: state
    entity_id: input_boolean.temperature_wohnzimmer_controme_flag
    state: "off"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.temperature_wohnzimmer_thermostat_flag
  - service: shell_command.wohnzimmer_ziel_temperatur_setzen
    data: {}
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.temperature_wohnzimmer_thermostat_flag
mode: single

Änderungen in Controme, automatisch oder manuell, in Home Assistant übertragen.

alias: Set Thermostat Wohnzimmer Ziel Temperatur from Controme
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.wohnzimmer_soll_temperatur_value
condition:
  - condition: and
    conditions:
      - condition: numeric_state
        entity_id: sensor.wohnzimmer_soll_temperatur_value
        below: 99
      - condition: state
        state: "off"
        entity_id: input_boolean.temperature_wohnzimmer_thermostat_flag
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.temperature_wohnzimmer_controme_flag
  - service: climate.set_temperature
    data:
      temperature: "{{ states('sensor.wohnzimmer_soll_temperatur_value') }}"
    target:
      entity_id: climate.wohnzimmer
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.temperature_wohnzimmer_controme_flag
mode: single

Und für den Fall, dass für den Raum in Controme nur ein Dummy Sensor defniniert wurde und kein echter Sensor angemeldet ist,
kann hiermit der Wert des Sensors regelmäßig an Controme übertragen werden. Diese Automatisierung wird aber wirklich nur benötigt,
wenn in Controme kein echter Sensor, sei es Enocean Sensor oder Raumthermostat angemeldet ist.

alias: Set Controme Ist Temperature from Wohnzimmer Sensor periodically
description: ""
trigger:
  - platform: time_pattern
    minutes: /4
condition: []
action:
  - service: shell_command.wohnzimmer_ist_temperatur_setzen
    data: {}
mode: single

In diesem Fall muss in der configuration.yaml noch das Script zum setzen der Temperatur eingetragen werden.
Die Sensor ID ist eine ID für einen 2-draht Sensor und muss durch eine gültige ID ersetzt werden.

shell_command:
  wohnzimmer_ist_temperatur_setzen: 'curl --location --request POST ''http://contromeminiserver.fritz.box/set/json/v1/1/set/'' --form ''value="{{ states(''sensor.wohnzimmer_ist_temperature_value'') }}"'' --form ''sensorid="28_aa_aa_aa_aa_aa_aa_aa"'' --form ''user="user@domain.local"'' --form ''password="ganzGeheimesPasswort"'''
1 „Gefällt mir“

@Ordo

Vielen Dank für Deine Mühe und die ausführliche Beschreibung.
Leider hat bei mir die Integration des Controme-Miniservers in HA, obwohl er erkannt wird, nicht geklappt (s. weiter oben).
Da Controme für Herbst 2023 den Matter-Support angekündigt hat, werde ich, auch wegen der Zuverlässigkeit des Systems, mal die aktuelle Heizperiode abwarten und dann im Frühjahr, falls Matter dann noch nicht am Start ist, Deine Anleitung mal angehen.

Vielen vielen Dank für die Mühe! In einer ruhigen Minute muss ich das mal schritt für schritt durchgehen.

Für alle deren Controme Server nicht via Homekit in Home Assistant (richtig) erkannt wird.

Vermutlich habt ihr Unifi Netzwerk Komponenten. Dort gibt es eine Einstellung in der Netzwerk-Konfiguration namens IGMP Snooping

Ist diese Einstellung aktiviert, kann HA nicht richtig via Homekit mit dem Controme Server kommunizieren. Komischerweise eine Philips Hue Homekit Integration läuft einwandfrei.

Ist ganz knapp auch bei HA erwähnt:

Accessories are all listed as not responding

There were reports where the IGMP settings in a router were causing issues with HomeKit. This resulted in a situation where all of the Home Assistant HomeKit accessories stopped responding a few minutes after Home Assistant (re)started. Double check your router’s IGMP settings if you experience this issue. The default IGMP settings typically work best.

Also:

  • IGMP Snooping deaktiveren ggf. auch umgekehrt
  • Controme Homekit Reset
  • Alle Geräte (Unifi Router, HA & Controme) neu starten,
    = > Homekit Integration sollte nun laufen.

Sagt mal Bescheid.
Hatte das gleiche Problem und nun nach nächtelangen Analysen, Websuche und Mails mit Ubiquiti (Unifi), Controme usw,. die obige Lösung gefunden

1 „Gefällt mir“

Hallo boldie und wilkommen im Forum.

Leider habe ich weder bei mir Zuhause noch im Tierheim Unifi Geräte.

Aber vieleicht liegt es ja trotzdem am IGMP Snooping, was auch immer das ist, in Verbindung mit FritzBox, TP Link Repeatern oder so.

@boldie

Danke für den Tipp, aber auch bei mir gibt es keine Unifi-Geräte (zumindest kenne ich keine).
Mein Mini-Server wird ja auch als neues Gerät erkannt, allerdings habe ich die “Endlossanduhr”,
wenn ich auf “konfigurieren” klicke.

Mehrfache Neustarts und Resets haben bisher nicht geholfen.
In Apple-HomeKit konnte ich seinerzeit den Mini-Server problemlos integrieren, auch wenn die
Meldung kam, dass es sich um ein nicht zertifiziertes Gerät handelt.

Ich werde aber mal versuchen, den Mini-Server direkt an meine FRITZ!Box anzuschließen, momentan läuft er an einer CLIENT-Box, aber natürlich im Homenetz.

Nachtrag:
Nein, hat leider direkt am Router auch nicht funktioniert! :roll_eyes:

Erstmal danke für deine Mühe.
Wenn du den Zustand deiner Stellantriebe im Thermostat zur Visualisierung ob geheizt wird oder nicht verwenden willst, dann kannst du folgendes machen:

1. Zustände der Schaltausgänge für die Stellmotoren (Bei FB-Heizung)

00-01-02-03-04-05 mit der MAC-Adresse des Gateways ersetzen

sensor:
  # Stellantriebe
  - platform: rest
    name: stellantriebe
    resource: http://192.168.0.24/get/00-01-02-03-04-05/all/
    value_template: "{{ value[1:29] }}"

2. Binärsensoren für den Zustand des jeweiligen Stellantriebes (Bei FB-Heizung)

binary_sensor:
  - platform: template
    sensors:
      stellantrieb1_kueche:
        value_template: "{{ states('sensor.stellantriebe').split(';')[0] }}"
      stellantrieb2_badezimmer:
        value_template: "{{ states('sensor.stellantriebe').split(';')[1] }}"
      stellantrieb3_arbeitszimmer:
        value_template: "{{ states('sensor.stellantriebe').split(';')[2] }}"
      stellantrieb4_esszimmer:
        value_template: "{{ states('sensor.stellantriebe').split(';')[3] }}"
      stellantrieb5_wohnzimmer1:
        value_template: "{{ states('sensor.stellantriebe').split(';')[4] }}"
      stellantrieb6_wohnzimmer2:
        value_template: "{{ states('sensor.stellantriebe').split(';')[5] }}"
      stellantrieb7_flur_rg:
        value_template: "{{ states('sensor.stellantriebe').split(';')[6] }}"
      stellantrieb8_flur_og:
        value_template: "{{ states('sensor.stellantriebe').split(';')[7] }}"
      stellantrieb9_kinderzimmer:
        value_template: "{{ states('sensor.stellantriebe').split(';')[8] }}"
      stellantrieb10_ankleide:
        value_template: "{{ states('sensor.stellantriebe').split(';')[9] }}"
      stellantrieb11_schlafzimmer:
        value_template: "{{ states('sensor.stellantriebe').split(';')[10] }}"
      stellantrieb12:
        value_template: "{{ states('sensor.stellantriebe').split(';')[11] }}"
      stellantrieb13:
        value_template: "{{ states('sensor.stellantriebe').split(';')[12] }}"
      stellantrieb14:
        value_template: "{{ states('sensor.stellantriebe').split(';')[13] }}"
      stellantrieb15:
        value_template: "{{ states('sensor.stellantriebe').split(';')[14] }}"

3. Template switch für den Heater des Thermostates anlegen
Die Actions turn_on und turn_off müssen angelegt werden, diese gehen hier auf einen Dummy, da wir den Zustand nur aus Controme in HA übertragen können.

switch:
  - platform: template
    switches:
      wohnzimmer_heater_switch:
        value_template: "{{ is_state('binary_sensor.stellantrieb5_wohnzimmer1', 'on') }}"
        turn_on:
          service: switch.turn_on
          data:
            entity_id: input_boolean.climate_controme_helper_switch
        turn_off:
          service: switch.turn_off
          data:
            entity_id: input_boolean.climate_controme_helper_switch

4. Switch als Heater des Thermostates verwenden

heater: switch.wohnzimmer_heater_switch
initial_hvac_mode: heat

Die Visualsierung erfolgt mit etwas Verzögerung, da Controme nach Empfang der neuen Soll_Temperatur etwas Zeit benötigt, bis der Ausgang aktualisiert ist.

Danke @WalterWeiss, am value_template für die Abfrage der Stellantriebe habe ich mich auch schon versucht, aber war bisher erfolglos.

Bei meinem Test habe ich herausgefunden, dass man sich den Schritt 3. Deiner Anleitung, den switch zu definieren sparen kann. Es funktioniert auch, den binary_sensor für den heater zu verwenden.

heater: binary_sensor.stellantrieb1_kueche
initial_hvac_mode: heat

Danke für die Rückmeldung, dann ist es ja noch einfacher. Ich gehe davon aus, dass ich die Matterintegration in Controme umsteigen, sobald diese veröffentlicht wird.

Probleme macht die bisherige Umsetzung nämlich dann, wenn ich die Solltemperaturen mehrere Thermostate “gleichzeitig”, zb in einer Automation ändere. Dann wird nicht alles übertragen.

Ich hatte Controme mal angeschrieben zwecks Update, da unser Facility-Server nur den Softwarestand von Oktober 2022 hatte.

Sie haben mir jetzt die aktuelle LAB Version aufgespielt.

Nun findet der Home Assistant den Miniserver als Apple Homekitgerät nicht mehr, weder von alleine noch wenn ich versuche diesen als Homekitgerät zu integrieren.

Vorher fand er ihn, aber ich konnte den Einrichtungsprozess nicht fertig stellen.

Habe im Miniserver das Apple Homekit Plugin resetet, Miniserver neu gestartet und HA neu gestartet. Leider findet er ihn nicht.

Eure manuelle Integration ist echt cool, aber da bin ich leider raus.
Da hilft wahrscheinlich nur abwarten bis Controme den Matter Suport umgesetzt hat.

Immerhin hat der Support geantwortet! :grinning:
Schreib doch einfach nochmals, dass das mit der LAB-Version (vom 22.11.2023?) nicht geklappt hat.
Ich habe dem GF von controme am Sonntag auch eine recht lange Mail geschrieben und von den
Problemen (Link von diesem Thread) und den “manuellen” Lösungen zur Integration in HA berichtet, in der Hoffnung, dass sich da doch noch was tut.

Ja ist die aktuelle Lab Version vm 22.11.2023.
Ich habe gestern Controme geschrieben, wie es sich nun verhält.

Bei uns ist es halt ein wenig anders, da wir den Facility-Server für das Tierheim haben, statt den Raspberry Pi.

Aber bei mir Zuhause mit einen Controme Raspberry Pi taucht zwar der Miniserver im HA auf, aber es läst sich nicht einrichten.

Nachtrag:

Ich habe festgestellt das im Tierheim die Pugins alle nicht mehr arbeiten.

Controme kontaktiert, die haben per Fernzugriff festgestellt, dass der Fality Server einen defekt hat. Und schicken uns umgehend einen neuen👍

Vielleicht funktioniert ja dann das Apple Homekit Plugin mit den Home Assistant.

Also heute habe ich den defekten Fality Server ausgetauscht. Er hat die aktuelle LAB Version drauf.

Dann habe ich das Plugin Apple Homekit zurückgesetzt und den Fality Server neu gestartet.
HA neu gestartet. Aber leider findet der HA den Miniserver nicht als Homekit Gerät.

Komischerweise hatte der HA den Miniserver mit dem alten Update vom Fality Server von 10/2022 gefunden, nur die Einrichtung ging nicht.

Somit bleibt für uns leider nur abzuwarten bis Controme mit Matter soweit ist.

1 „Gefällt mir“