Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. YAHKA Homematic Heizung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    YAHKA Homematic Heizung

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      ronnyw last edited by

      Nachdem ich aus dem Forum auch schon so viel ziehen konnte, stelle ich hier mal mein Use-Case mit HomeMatic Thermostaten und HomeKit vor.

      Also, unser HomeMatic Nutzungsszenario bedingt wie wir das ganze über HomeKit steuern wollen.

      I.d.R. laufen unsere Thermostate über das Programm der CCU. Über den Tag sind je nach Nutzung ein paar Räume im Comfort Mode oder im Lowering Mode. Wenn wir eingreifen, dann (fast) nur über das Abrufen von Comfort oder Lowering. Gelegentlich wird auch mal kurz geboostet. Selten wird ein Thermostat auch mal ausgeschaltet oder in den manuellen Modus gewechselt.

      Wichtig war uns, in HomeKit schnell zu sehen, wenn ein Thermostat manuell läuft, das sollte eher die Ausnahme sein.

      Zudem sollte die Bedienung in beide Richtungen gehen, also sowohl über die Thermostate als auch in HomeKit.

      Erst einmal habe ich mir angeschaut, welche Kombinationen von HK CurrentHeatingCoolingState (Rückmeldung des Thermostates an HK, kürze ich mal als Currentstate ab) und TargetHeatingCoolingState (Trigger in Richtung Thermostat, für mich Targetstate) welche Visualisierung in HomeKit bedingen:

      2650_homekitthermostatzust_nde.jpg

      Das Vorgeschlagene Mapping Targetstate HK zu Control Mode HM von Yahka fand ich nicht so toll.

      Ich dachte an folgende Möglichkeiten:

      Targetstate HK <> Control Mode HM

      Off <> Urlaub

      Heat <> Boost

      Cool <> Manu

      Auto <> Auto

      Vorteil: man hätte für jeden Zustand in HK einen Control Mode in HM.

      Nachteil: Ich finde das Mapping nicht eingängig (cool = Manu? Hmm). Außerdem finden wir unsere Abrufwerte für Comfort und Lowering nicht wieder (Use Case!).

      Deswegen habe ich folgende Funktionsweise umgesetzt:

      Targetstate HK <> Control Mode HM

      Off > Manu, 4.5°

      Heat > Auto-Mode, Comfort-Mode

      Cool > Auto-Mode, Lowering-Mode

      Auto > Auto

      "Heat" und "Cool" sind in HomeKit "Taster", nach 300ms springt die Einstellung auf "Auto".

      Um unseren Boost umzusetzen, nutze ich den HomeKit Temperaturregler. Wenn er auf >25° gezogen wird, aktiviert das den Boost-Modus. Als Feedback springt in HomeKit die Temperatur dann auf Anschlag (38°) und geht wieder auf die reguläre Target Temperatur nach dem Boost.

      Jetzt gibt es verschiedene Möglichkeiten die Betriebszustände eines HomeMatic Thermostates sinnvoll zu visualisieren, hier würden sich mit Hilfe des CurrentHeatingCoolingStates mehrere Szenarien anbieten:

      Targetstate = off ist klar, ganz aus ist weiß, manuell mit Set Temp > 4.5° ist grau.

      Innerhalb von Targetstate = Auto hätte ich folgende Ideen:

      Visualisierung von warmen Räumen

      nach Ist-Temperatur

      Ist° >= 20° = orange (Currentstate heat)

      Ist° < 20° = blau (Currentstate cool)

      nach Soll-Temperatur

      Soll° >= 20° = orange

      Soll° < 20° = blau

      Visualisierung nach Heizungsverhalten (aufheizen, abkühlen)

      Soll° > Ist° = orange

      Soll° < Ist° = blau

      Soll° = Ist° = grün

      Ich habe mich erstmal für letztere Darstellung entschieden. Auch wenn ich ebenso interessant finde, anhand der Farben schnell zu sehen welche Räume gerade warm sind oder sein sollen (denn in der letzten Logik ist sowohl ein konstant kalter als auch ein konstant warmer Raum grün).

      Aber diesen Teil könnte man ja auch noch recht schnell im Script ändern 😉

      Kleiner Zusatz: Boost wird immer orange visualisiert, egal wie Soll° und Ist° aktuell stehen.

      Als Übersicht könnte das so ungefähr aussehen:

      2650_homekithomematicthermostat.jpg

      Zu Umsetzung. Ich benötige drei Hilfsobjekte, die ich unterhalb einer Gruppe (=Thermostat) angelegt habe (alle vom Typ Number).

      CurrentHeatingCoolingState

      TargetHeatingCoolingState

      TargetTemperature

      Die Verknüpfung im Adapter sieht so aus:

      2650_iobrokerhomekitthermostat.jpg

      Dann noch ein paar Hürden die mir aufgefallen sind:

      HomeKit geht nicht unter 10°. Das sorgt für nicht ganz korrespondierende Darstellung zu HomeMatic.

      Ich stolpere immer noch über gegenseitige Trigger-Abhängigkeiten in der Programmierung, bin da auch kein Profi. Ich dachte ich könnte über den Acknowledge-State unterscheiden, ob eine Änderung durch das Gerät oder mein Script kommt, das ging aber nicht zuverlässig. Ich habe mir nun mit Zeitstempeln geholfen.

      Insbesondere die Control-Mode-Änderung in HM hat teilweise bis 1 Sekunde Lag, das sorgt für etwas holprige (viel schnellere) Scriptausführung (manche Schleifen laufen daher doppelt in zwei Schritten durch). Da sollte aber nichts kaputt gehen 😉

      Schade, dass nicht erkennbar ist, ob sich ein Thermostat in der Lowering- oder Comfort-Temperatur befindet. Sonst hätte meine Umsetzung etwas anders ausgesehen. Aber so geht's auch.

      Hier nun einzelne Screenshots, Blockly 1-5 ist bei mir ein Script. Ich habe die Debug-Blöcke dringelassen, weil sie für die Erläuterung vielleicht ganz hilfreich sind.

      Blockly 1

      Um das Script jeweils schnell für meine Handvoll Thermostate bei einer neuen Version zu duplizieren, habe ich mit Variablen gearbeitet, so dass ich nur zwei ObjectIDs ganz oben wählen muss. Damit ich alles mit Blockly abbilden kann, musste ich noch zwei mini-Funktionen bauen.
      2650_blockly1.jpg

      Blockly 2

      Auf Änderungen des HomeMatic Control-Modes reagieren
      2650_blockly2.jpg

      Blockly 3

      Auf Änderungen des HomeKit Targetstates reagieren
      2650_blockly3.jpg

      Blockly 4

      Temperaturänderungen durch HomeMatic verarbeiten und davon abhängig CurrentHeatingCoolingState setzen (Thema Visualisierung)
      2650_blockly4.jpg

      Blockly 5

      Temperaturänderungen von HomeKit verarbeiten
      2650_blockly5.jpg

      Mit mehr ioBroker- und JS-Kenntnissen könnte man dieses Thermostatverhalten bestimmt in eine globale Funktion packen, die man dann nur noch mit dem jeweiligen Thermostat aufruft. Wenn jemand Lust hat, das fortzuführen… 🙂

      Für Tipps bin ich offen, bin mir sicher, dass es teilweise elegantere Methoden gibt um an das gleiche Ziel zu kommen.

      Bei Interesse kann ich auch gerne das Script bereitstellen!

      1 Reply Last reply Reply Quote 0
      • S
        schittl last edited by

        @ronnyw:

        Nachdem ich aus dem Forum auch schon so viel ziehen konnte, stelle ich hier mal mein Use-Case mit HomeMatic Thermostaten und HomeKit vor. `

        Super Arbeit… Könntest Du eventuell noch für alle deine Blockly-Skripte die Exporte zur Verfügung stellen? Danke...

        1 Reply Last reply Reply Quote 0
        • J
          JW86 last edited by

          @ronnyw:

          Nachdem ich aus dem Forum auch schon so viel ziehen konnte, stelle ich hier mal mein Use-Case mit HomeMatic Thermostaten und HomeKit vor. `

          Danke für die Ausführliche Aufstellung. Darf ich deine Arbeit in den Adapter übernehmen?

          @ronnyw:

          HomeKit geht nicht unter 10°. `

          Mit der aktuellen Master Version kannst du Min, Max und Step für jede Characteristic ändern (einfach auf "[properties]" klicken).
          1486_screenshot_2019-01-14_at_22.43.57.png

          1 Reply Last reply Reply Quote 0
          • R
            ronnyw last edited by

            @schittl:

            Super Arbeit… Könntest Du eventuell noch für alle deine Blockly-Skripte die Exporte zur Verfügung stellen? Danke... `

            @JW86:

            Danke für die Ausführliche Aufstellung. Darf ich deine Arbeit in den Adapter übernehmen? `

            Danke, freut mich wenn's gefällt. Ja, Du kannst gerne davon übernehmen was Dir sinnvoll erscheint (auch ggf Bildmaterial).

            Meinen Blockly Code (Achtung, bin wie gesagt kein gelernter Progger, bitte gut prüfen) habe ich angehängt.

            @JW86:

            Mit der aktuellen Master Version kannst du Min, Max und Step für jede Characteristic ändern (einfach auf "[properties]" klicken).

            Screenshot 2019-01-14 at 22.43.57.png `

            Oh, sehr cool! Dein Screenshot verrät, dass Du auch schon getrennte Lese- und Schreibfelder planst - auch sehr willkommen 🙂

            Habe für "min" nun 4.5 gewählt und die Schritte gleich analog zu HomeMatic auf 0.5 gesetzt, gefällt mir!

            (nur am Rande, wie bekomme ich denn ohne Versionssprünge am besten mit, wenn es wieder neue Features im Github-Master gibt?)
            2650_iobroker-homekit-homematic-thermostatanbindung.xml

            1 Reply Last reply Reply Quote 0
            • M
              mucki last edited by

              Dürft ich hier noch mal unbedarft nachfragen?

              Wäre diese Einstellung mit den hier besprochenen Features jetzt richtig?

              (HmiP-WTH-2 mit 4 Thermostaten in einer Gruppe)

              18138_bildschirmfoto_2019-02-04_um_19.32.34.png

              1 Reply Last reply Reply Quote 0
              • M
                mucki last edited by

                Oder habe ich das falsch verstanden und die neuen Features sind noch nicht im Yahka Master verfügbar?

                1 Reply Last reply Reply Quote 0
                • D
                  danyial last edited by danyial

                  Ich hab das bei mir so gelöst und das funktioniert bis jetzt einwandfrei. Bei den Modes kann man allerdings nur Automatisch und Manuell (Heizen in HomeKit) einstellen.

                  Bildschirmfoto 2019-03-07 um 17.43.02.png

                  Das ist der Inhalt der Funktionen in Blockly

                  /**
                   * Beschreibe diese Funktion …
                   */
                  function setAutoMode(objectID, autoMode) {
                      setState(objectID.replace("CONTROL_MODE", "AUTO_MODE"), autoMode);
                  }
                  
                  /**
                   * Beschreibe diese Funktion …
                   */
                  function setManuMode(objectID) {
                      setState(objectID.replace("CONTROL_MODE", "AUTO_MODE"), false);
                  
                      getState(objectID.replace("CONTROL_MODE", "SET_TEMPERATURE"), function (err, state) {
                          var value = state.val;
                          setState(objectID.replace("CONTROL_MODE", "MANU_MODE"), value);
                      });
                  }
                  

                  Und hier der Yahka Teil

                  Bildschirmfoto 2019-03-07 um 17.29.02.png

                  1 Reply Last reply Reply Quote 0
                  • S
                    streetracer last edited by

                    Darf ich mich hier nochmal ran hängen?

                    Hab die Funktionen im Scriptblock erstellt - jedoch bekomme ich nur "Javascript-Funktion setAutoMode </>" angezeigt.

                    Der Rest dieser Funktion "mit Objekt ID" und drunter "setAutoMode" ist nicht dabei.

                    So habe ich das in das "</>" Feld eingetragen:

                    function setAutoMode(objectID, autoMode) {
                        setState(objectID.replace("CONTROL_MODE", "AUTO_MODE"), autoMode);
                    }
                    
                    1 Reply Last reply Reply Quote 0
                    • entavio
                      entavio last edited by entavio

                      Hallo,

                      habe die Tage auch eine iobroker Instanz mit yahka aufgesetzt.
                      Inzwischen sind auch einige eq-3 (max!) Thermostate eingebunden und lassen sich ansprechen.
                      (Entsprechendes Mapping der Werte auf HomeKit etc.)
                      So weit so gut!

                      Hier war auch schon mal die Rede davon das jedesmal wenn wieder die HomeApp geöffnet wird oder erstmalig auf einem anderen iPhone/iPad gestartet wird, alle Thermostate auf OFF stehen.

                      Mir wäre es lieber die IST-Temperatur, die SOLL-Temperatur sowie der Status OFF/MANU/AUTO würde beim Aufruf über HomeKit->ioBroker (hier stehen die korrekten Werte) direkt abgerufen werden.

                      Hat das jemand hinbekommen und kann hier entsprechende Hinweise geben?

                      1 Reply Last reply Reply Quote 0
                      • D
                        dominik.oyen last edited by

                        Hallo,

                        ist bei der neusten Version von Yahka die Ansicht geändert worden? Es fehlt die Möglichkeit ein Mapping durchzuführen. Lediglich vorgefertigte Conversion sind möglich. So kann ich aber nicht den Status so verändern, wie ich es brauche.

                        Max!
                        0(auto)
                        1(manual)
                        2(vacation)
                        3(boost)

                        Homekit
                        0(aus)
                        1(heizung)
                        2(kühlung)
                        3(automatisch)

                        0=3
                        1=1
                        2=0
                        3=2

                        Weiß jemand, wie ich mit der "neuen" Version wieder ein einfaches mapping hinbekomme?
                        Danke und Grüße

                        Dominik

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          stormproof @dominik.oyen last edited by

                          @dominik-oyen
                          Hi Domink,
                          ich habe für das Problem, das die Thermostate in der Homkit App AUS anzeigen folgenden Workaround gefunden, der funktioniert, ich kann dir aber nicht erklären warum. Ich habe einfach so lange rumprobiert, bis es geklappt hat.
                          Mein Ziel war es, das die Heizkörperthermostate immer auf "Heizen" stehen in der App, auch wenn es keine Funktion hat, es ging mir nur um eine schönere Anzeige.

                          In Yahka habe ich für die Thermostate bei "CurrentHeatingCoolingState" folgende Einstellung:
                          InOut: const
                          Value: 1
                          Conversion: HomematicControlModeToHomekitHeathingCoolingState
                          State: 1

                          Bei Value und State kannst du auch einen anderen Zustand wählen wie du ja schon gepostet hast:
                          0(aus)
                          1(heizung)
                          2(kühlung)
                          3(automatisch)

                          Ich habe zwar keine Homematic Geräte, aber die folgenden Adapter installiert (und deaktiviert), einer davon liefert wohl den Wert den man für "Conversion" setzen muss (HomematicControlModeToHomekitHeathingCoolingState):
                          HomeMatic ReGaHSS
                          HomeMatic RPC

                          Wie gesagt: keine befriedigende Antwort für dei die wissen wollen warum und wie, aber es funktioniert.

                          Frank!

                          targeheating.png
                          homematic.png

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            dtp @stormproof last edited by dtp

                            Hi,

                            ich habe mir mal die Datenpunkte angeschaut und festgestellt, dass der Datenpunkt "CONTROL_MODE" eines HmIP-WTH-2 Wandthermostats zum Setzen und der Datenpunkt "SET_POINT_MODE" zum Anzeigen des aktuellen Betriebsmodus verwendet wird (0: AUTO, 1: Manu, 2: Urlaub). Also habe ich mal folgende Einstellungen im yahka-Adapter vorgenommen:

                            2022-12-31_15h59_37.jpg 2022-12-31 15-45-58.png

                            Damit funktioniert auf jeden Fall der Wechsel zwischen AUTO und Manu und es werden in der Home App die korrekten Ist- und Soll-Werte angezeigt, wobei bei manueller Einstellung der Temperatur von "Automatisch" auf "Heizung" gewechselt wird.

                            2022-12-31_15h38_38.jpg 2022-12-31 15-38-43.png

                            2022-12-31_15h39_06.jpg 2022-12-31 15-38-57.png

                            Dies nur mal als Info. Es werden keinerlei Skripte benötigt.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              mucki @dtp last edited by

                              @dtp
                              Habe ich mal bei einem WTH-2 so eingestellt und zum Testen auch bei einem einzelnen etrv-2.

                              Meiner Meinung nach vollkommen unbrauchbar. Steht die Heizung laut (korrekter) Angabe der CCU3 auf Manu, wird in Homekit gerne schon mal Auto angezeigt. Stellt man in HK auf Aus, stellt sich in der CCU nix auf Aus. Steht die Heizung tatsächlich auf Manu und man ändert in Homekit auf Auto passiert hier gar nichts.

                              Also entweder weiter mit gefühlt 80 Scripten rumpfuschen, oder eine andere Lösung nehmen (HA, HAP oder Homebridge).

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dtp @mucki last edited by dtp

                                @mucki Hast nicht ganz unrecht. Ich habe bemerkt, dass der Datenpunkt "CONTROL_MODE" ungeeignet ist zum Steuern. Da muss dann wohl auch besser "SET_POINT_MODE" für verwendet werden. Es ist übrigens kein direkter Modus für "AUS" vorgesehen. Stellt man das direkt im WebUI ein, dann bleibt der "SET_POINT_MODE" auf dem Wert 0 (also Manuell bzw. HEIZUNG) und nur die Soll-Temperatur wird auf 4,5 °C gesetzt. In der Home App beträgt jedoch die minimale Soll-Temperatur 10 °C. Weniger geht nicht. Eigentlich ist es aber ja egal, ob man nun 4,5 oder 10 °C einstellt. So kalt sollte es in keinem Wohnraum sein. Und ob da dann "AUS" oder "HEIZUNG" angezeigt wird, ist doch wurscht. Man sieht's ja an der Soll-Temperatur.

                                Ich persönlich stelle übrigens meine Heizung so gut wie nie über die Home App um. Das macht sie schon automatisch. Wenn ich etwas umstellen möchte, dann höchstens die Soll-Temperatur. Und das klappt auch.

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  mucki @dtp last edited by mucki

                                  @dtp
                                  Da hast du recht - ich stelle auch maximal die Solltemp über Homekit. Aber auch das eher selten, da dann meist die Sprachansage an Alexa schneller und komfortabler ist.

                                  Die Thermostate habe ich über HAP-Homematic in Homekit eingebunden und alle Funktionen sind damit verfügbar.

                                  Gesteuert wird aber eigentlich eh ausschließlich über Automationen - hier insbesondere mit der Anwesenheitserkennung mehrerer Personen und mit Programmen direkt auf der CCU3. Ist nach meinen Erfahrungen einfach die stabilste Variante.

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  933
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  18
                                  30
                                  15595
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo