Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Temperatur angleichen Tado + Netatmo

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Temperatur angleichen Tado + Netatmo

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

      Hallo liebe Leute,

      ich habe die letzten Tage, da es ja langsam kalt wird, wieder ein wenig mit der Heizungssteuerung rumgespielt und bin dabei auf ein kleines Problem gestoßen, welches ich mit einem Skript lösen wollte. Dies will aber nicht richtig funktionieren, vielleicht weiß jemand von euch eine Lösung:

      Ich verwende als Wetterstation Netatmo und zur Steuerung der Heizkörper Tado.

      Derzeit nutzen wir zum Beheizen des Wohnzimmers in erster Linie einen Heizofen (Holz). Da dieser sehr schnell schön warm macht, sollen natürlich dann auch die Heizkörper ausgehen. Leider braucht hier die Wärme länger, bis sie auch von einem der beiden Thermostate von Tado erfasst wird.

      Zentral steht die Wetterstation von Netatmo, welche sehr viel schneller erkennt, wie warm es in dem Bereich, in dem wir uns vorrangig aufhalten derzeit ist.

      Das diese Unterschiede in den Temperaturen da sind und auch warum leuchtet mir ein und das ist auch vollkommen ok. Ich würde trotzdem gerne in solchen Situationen die Heizung automatisch abschalten lassen.

      Meine Idee hierzu war anfangs, die Temperatur der Thermostate einfach durch die der Wetterstation überschreiben zu lassen. Das geht allerdings nicht, bzw. nicht direkt, da die Temperatur per se nicht durch den ioBroker einstellbar ist. Was allerdings geht, ist das "offset" einzustellen.

      Hierzu habe ich ein Skript erstellt, welches die Temperatur von Tado von der Temperatur der Wetterstation abzieht und das Ergebnis als wert in den offset einträgt. Leider stehe ich hier vor einem Problem des Adapters (evtl. erstelle ich hierzu noch ein issue, je nachdem, was hier rauskommt): Der Adapter kennt nur die Raumtemperatur. Diese wird durch einen der beiden Thermostate erfasst (einstellbar ist von welchem). Das eingestellte offset wird allerdings direkt auf die Temperatur der einzelnen Thermostate angerechnet, so dass die Raumtemperatur, welche ich von der Temperatur der Wetterstation abziehe, schon beinhaltet. Ok, klingt durcheinander, vielleicht vereinfache ich es:

      TW= Temperatur Wetterstation
      TR= Temperatur Raum
      tt= Temperatur Thermostat (kein Datenpunkt)
      Z= offset
      Y= Temperatur welche angezeigt werden soll

      TW=Y

      Z=TW-TR
      TR=tt+Z
      Y=tt+Z
      TR≠Y

      Sprich die Raumtemperatur (TR) muss ungleich der Temperatur sein die Angezeigt wird (Y), kann aber nur durch dieselben Werte (tt+Z) errechnet werden. Somit wechselt, logischerweise, die Temperatur (TR/Y) ständig.

      Im Grunde brauche ich die Temperatur der Thermostate (tt) als einzelnes Objekt/Wert.

      Hat jemand dazu eine andere Lösung oder sollte ich mal Fragen, ob die Temperatur der Thermostate mit eingebunden werden kann?

      Gruß
      Jan

      E paul53 2 Replies Last reply Reply Quote 0
      • E
        Einstein67 @Schlumpf last edited by

        @schlumpf Haben deine Ventile einen "manuellen Modus" (Stellbetrieb)?

        Ich hab hier die Eurotronic Spirit Ventile im Einsatz und betreibe sie im Stellbetrieb, ähnlich wie du es beschrieben hast. Bei denen nennen sich die Datenpunkte: "TRV Mode" und "Manual Valve position"

        Um so größer die Differenz zwischen T-Soll und T-Ist, umso größer der Öffnungswinkel der Ventile.

        S 1 Reply Last reply Reply Quote 0
        • S
          Schlumpf @Einstein67 last edited by

          @einstein67

          Ich glaube sogar das es sowas gibt, allerdings ist der Wert des Öffnungswinkels nicht editierbar.

          Leider würde mir das vorerst nicht weiterhelfen. Im Grunde möchte ich erst einmal nicht alles komplett durch Iobroker steuern, sondern es Tado überlassen (grade im Bezug auf die Aufheizphase, welche von Tado selbst ermittelt und immer wieder nachjustiert wird). Ich will erst einmal nur, dass die Temperatur des Raums bei Tado mit der von der Wetterstation übereinstimmt.

          E 1 Reply Last reply Reply Quote 0
          • E
            Einstein67 @Schlumpf last edited by

            @schlumpf said in Temperatur angleichen Tado + Netatmo:

            allerdings ist der Wert des Öffnungswinkels nicht editierbar

            Wenn sich der Datenpunkt nicht beschreiben lässt, ist ein Stellbetrieb über einen externen Sensor nicht möglich. Außer recht begrenzt über den Temp-Offset.

            Mit der, durch die NetAtmo API entstehende Zeit Verzögerung, ist eine vernünftige Regelung leider auch nicht möglich.

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @Schlumpf last edited by paul53

              @schlumpf sagte: TR= Temperatur Raum
              tt= Temperatur Thermostat (kein Datenpunkt)

              Woher kommt die Raumtemperatur, wenn nicht vom Thermostaten?

              @schlumpf sagte in Temperatur angleichen Tado + Netatmo:

              Hierzu habe ich ein Skript erstellt

              ?? Zeigen!

              Versuche es mal mit diesem Blockly. Als Trigger muss die Netatmo-Temperatur verwendet werden.

              S 1 Reply Last reply Reply Quote 0
              • S
                Schlumpf @paul53 last edited by

                @paul53

                Naja, im Grunde kommt sie schon von Thermostaten. Von dem, den man dafür ausgewählt hat. Allerdings steht der Datenpunkt unter dem Raum selbst. Wähle ich ein anderes Thermostat aus, welches für die Raumtemperatür zuständig ist, wird der Wert an der selben stelle geschrieben.

                Unbenannt.png

                Die Thermostate selbst werden allerdings an einer anderen Stelle im Raumordner hinterlegt und haben keine eigene Temperaturangabe.

                Unbenannt2.png

                Problem ist, dass Tado die Thermostate nach der Raumtemperatur regelt, welche ich über den offset des entsprechenden Thermostates auch anpassen kann. Nur zur Berechnung des notwendigen offsets (um die selbe wie aus der Wetterstation zu bekommen) kann ich die Raumtemperatur nicht nutzen sondern bräuchte die der einzelnen Thermostate nochmal separat.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Schlumpf last edited by

                  @schlumpf sagte: bräuchte die der einzelnen Thermostate nochmal separat.

                  Das sehe ich auch so. Dann ordne die beiden Thermostaten verschiedenen Räumen zu, z.B. Raum_links / Raum_rechts.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Schlumpf @paul53 last edited by

                    @paul53

                    Könnte ich, bringt in dem Fall aber leider nichts.

                    1. Würde das bedeuten das ich das Wohnzimmer nicht mehr komplett steuern könnte (wäre schade, aber auch lösbar)

                    2. würde ich wieder vor dem selben Problem stehen: versuche ich die Temperatur bei Tado auf die von Netatmo zu setzen, dies durch "offset", ändert das auch gleich meine Temperatur des Raumes, diese wiederum ändert den Wert des "offset" und schon hab ich wieder eine Schleife.

                    Die Temperatur bzw. den Wert den ich benötige muss, wenn ich nicht falsch liege, der des Thermostaten ohne offset sein, sprich die real gemessene Temperatur. Eine andere Lösung fällt mir nicht ein.

                    Gruß

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Schlumpf last edited by paul53

                      @schlumpf sagte: das Wohnzimmer nicht mehr komplett steuern

                      Ein Thermostat als "Master", dem der Sollwert des anderen folgt.

                      @schlumpf sagte in Temperatur angleichen Tado + Netatmo:

                      hab ich wieder eine Schleife.

                      Das sollte mit dem verlinkten Blockly nicht passieren, denn es verwendet erhöhe Offset um Differenz.

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Schlumpf @paul53 last edited by Schlumpf

                        @paul53

                        Master und Slave: So ist es an sich schon über die Räume geregelt. Ein Thermostat wird als Master definiert, alle anderen nehmen den Sollwert des Matsers an.

                        Blockly: Bin nicht sicher ob das so geht.

                        tt = Temperatur Termostat (kein Wert vorhanden)
                        offset(Z)=Tado offset von Thermostat (Master)
                        Wert(blau) = TR = Temperatur Raum
                        Wert(rot) = TW = Temperatur Wetterstation

                        Blockly:
                        "offset" => TW(23,6)
                        "differenz" = TW(23,6) - TR(19,3) = 4,3
                        "offset" + "differenz" = 23,6 + 4,3 = 27,9
                        "offset" => [(27,9*2)runden]/2 = 56/2 = 28
                        Wert(steuern) => "offset" => offset(Z) = 28
                        offset(Z) + tt(19,3) = TR => 28 + 19,3 = 47,3

                        Reale Schleife:
                        TW(23,6) - TR(19,3) = offset(Z)4,3
                        tt(19,3) + offset(Z)4,3 = TR(23,6)
                        TW(23,6) - TR(23,6) = offset(Z)0
                        tt(19,3) + offset(Z)0 = TR(19,3)
                        TW(23,6) - TR(19,3) = offset(Z)4,3
                        tt(19,3) + offset(Z)4,3 = TR(23,6)
                        .....usw.....

                        Problem:
                        Tado gibt nur den Wert TR an, also den Raumwert der durch den nicht vorhandenen Wert tt (Thermostatwert) plus den Wert offset (welchen man im ioBrocker ändern kann) gebildet wird. Das ist der einzige (Temperatur)Wert welcher vom Adapter kommt (abgesehen vom Sollwert).

                        Dadurch entsteht die Schleife. Ohne einen weiteren Wert in ioBroker kann eine vernünftige Rechnung nicht aufgestellt werden. Außer ich habe etwas komplett übersehen oder sehe/kenne die richtige Logik nicht.

                        😄 Ich hoffe man kann mir folgen.

                        Gruß

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Schlumpf last edited by paul53

                          @schlumpf sagte: Blockly:

                          Falsch interpretiert:
                          Wert(offset) => offset(0)
                          "differenz" = TW(23,6) - TR(19,3) = 4,3
                          "offset" + "differenz" = 0 + 4,3 =4,3
                          "offset" => [(4,3*2)runden]/2 = 9/2 = 4,5
                          Wert(steuern) => "offset" => offset(Z) = 4,5
                          offset(Z) + tt(19,3) = TR => 4,5 + 19,3 = 23,8

                          Nächster Trigger:
                          Wert(offset) => offset(4,5)
                          "differenz" = TW(23,6) - TR(23,8) = -0,2
                          Betrag ist < 0,25

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Schlumpf @paul53 last edited by

                            @paul53

                            Ah ok, ich verstehe. Der "Wert(offset)" ist ein selbst erstellter Wert?

                            Aber funktioniert das nicht nur dann, wenn die Temperatur auch steigt an der Wetterstation? Sobald die Temperaturen sinken bleibt der Heizkörper trotzdem aus. Klappt dann nur, wenn die Temperatur am Thermostat (bzw. die angezeigte Raumtemperatur) unter die der Wetterstation fällt. Was bei unseren angenommenen 4,5 grad ziehmlich viel ist!

                            paul53 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @Schlumpf last edited by paul53

                              @schlumpf sagte: Der "Wert(offset)" ist ein selbst erstellter Wert?

                              Nein, das ist der Wert Z vom Offset-Datenpunkt des Thermostaten.
                              TR = tt + Z
                              Datenpunktwert des Thermostaten.

                              1 Reply Last reply Reply Quote 0
                              • maximal1981
                                maximal1981 last edited by

                                ein wenig Eigeninitiative und Selbstversuche wären schon nett, und um hier mal ein paar Sachen zu eliminieren: es gibt nur einen Wert, egal wie viele Heizkörper, und nein es sind nicht einfach alle Werte editierbar, sonst kommt Schei..e raus.

                                Aber um die Faulheit ein wenig zu unterstützen:

                                bei steigendem Wert (netatmo, ... was auch immer) den Raum auf einen -1/2°C vom Soll regeln (Rooms.%number%.setting.temperature.celsius)
                                bei fallendem Wert macht man dann wieder Rooms.%number%.overlayClearZone

                                dein Blockly musst dir schon selbst basteln, hab z.B. via alexa-Ansage ein Nachlegen eingebaut.
                                Tado heizt auch normalerweise nicht, wenn es einen Temperaturanstieg feststellt, der nicht von einem Thermostat selbst verursacht/getriggert wurde.

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  Schlumpf @maximal1981 last edited by Schlumpf

                                  @maximal1981

                                  Ist nicht ein Forum zum Diskutieren da und um sich Anregungen und Hilfe zu holen? Bei aller Liebe habe ich leider nicht Informatik bzw. Java gelernt und mache das Ganze einfach nur, weil es mir spaß macht. Dabei brauche ich einfach Hilfe, weil ich neben dem 40 Stunden Job und einem Studium zum Techniker noch eine neue Wohnung einrichte und mir neues zu lernen im alter zunehmend schwerer fällt. Deshalb bin ich dankbar, dass es Leute wie Paul gibt die mir mit viel Geduld weiterhelfen.

                                  Und danke für deine freundlichen Worte, ich versuche immer erstmal eigene Skripte zu bauen und über das Forum oder Google Lösungen zu finden. Erst wenn ich nicht mehr weiter weiß, frage ich hier nach. Und ich versuche durchaus die Sachen, die mir geschrieben werden, logisch nachzuvollziehen und meine Antworten sinnvoll aufzubauen.

                                  Ja, die meisten Werte sind blockiert (nicht editierbar), was verständlich und sinnvoll ist! Ich hätte nur gerne den ein oder anderen Wert zusätzlich (wie ein nicht veränderbaren, auch nicht durch offset, Wert der gemessenen Temperatur der einzelnen Thermostate).

                                  Naja, mir geht es vor allem darum, dass wenn das Wohnzimmer an der Stelle, wo man sich vor allem aufhält (und wo die Wetterstation steht) warm ist, aber die Thermostate (durch die Nähe zur Außenwand und der etwas ungünstigen Abschirmung) noch eine sehr viel geringere Temperatur wahrnehmen, trotzdem die Heizung ausgeht.

                                  Mein Ansatz und auch meine Skripte war erst einmal die Angleichung beider Temperaturen (sprich die Übernahme der Wetterstations-Temperatur in Tado), da mir das am einfachsten erschien. Ich wollte vorerst vermeiden tagelang alles auf ioBroker umzuziehen. Hier kam mir die Schleife in die Quere, die ich allein nicht umgehen konnte (mit den zur Verfügung stehenden Werten).

                                  Der Ansatz "Nachlegen" finde ich interessant! Eventuell übernehme ich deine Idee, wenn ich darf. Ich verspreche auch, erst selbst zu probieren, bevor ich etwas frage. 😉

                                  Gruß
                                  Jan

                                  1 Reply Last reply Reply Quote 0
                                  • maximal1981
                                    maximal1981 last edited by

                                    Ich muss mich entschuldigen, hab es aus der Hüfte während einem anstrengenden Arbeitstag geschrieben.

                                    Jetzt jedoch zum Verständnis:
                                    etliche Datenpunkte sind nicht editierbar.
                                    Nehmen wir deine Tado-Thermostate her. Macht doch keinen Sinn diese zu belügen wie warm/kalt es ist. Wann und wer stellt es wieder richtig? So kann keine Regelung funktionieren. Somit kann man sie nur über Steuersignale, also einem anderen Sollwert beeinflussen bzw. zu dem Verhalten "zwingen" was man erreichen möchte.
                                    Dies gilt mal global für alle Adapter.
                                    Du musst hierbei deinen Blickwinkel und die Herangehensweise ändern, um das umzusetzen was du vorhast.
                                    Ich hab dir oben schon die Datenpunkte genannt, die dich ans Ziel führen, und absichtlich kein Blocky reingestellt, denn selber Klicken macht klug^^.

                                    Wenn du was hast und vorzeigen kannst, bin ich gerne bei der Fehlersuche dabei.

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @maximal1981 last edited by

                                      @maximal1981 sagte: Macht doch keinen Sinn diese zu belügen wie warm/kalt es ist.

                                      Ein Offset ist dafür da, falsche Messwerte zu korrigieren. Ist der Offset "read only"?

                                      1 Reply Last reply Reply Quote 0
                                      • maximal1981
                                        maximal1981 last edited by

                                        nein ist write, ich hab es gerade getestet, trotzdem ist es eine dirty Variante in meinen Augen.
                                        Dies ist ja dazu gedacht eine Abweichung der Messung zu kompensieren.

                                        Würde es trotzdem via Sollwert machen, da diese dann bei korrekter Einstellung wieder zum Zeitplan übergehen wenn die aktuelle Timeline abgelaufen ist.

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @maximal1981 last edited by

                                          @maximal1981 sagte: Würde es trotzdem via Sollwert machen

                                          Wenn der interne Zeitplan verwendet wird, ist es kompliziert, die Abweichung über den Sollwert zu kompensieren.

                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @Schlumpf last edited by paul53

                                            @schlumpf sagte: funktioniert das nicht nur dann, wenn die Temperatur auch steigt an der Wetterstation?

                                            Nein, die Differenz kann auch negativ werden und so der Offset sinken.

                                            @schlumpf sagte in Temperatur angleichen Tado + Netatmo:

                                            Dadurch entsteht die Schleife.

                                            Eine Schleife Offset hoch/runter entsteht natürlich, wenn man den Offset auf die Differenz setzt. Wenn man den Offset um die Differenz erhöht, passiert es nicht, vorausgesetzt, der neue Offset ist bereits im Temperatur-Datenpunkt enthalten, wenn erneut getriggert wird.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            786
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            37
                                            1641
                                            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