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@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Temperatur angleichen Tado + Netatmo

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                      • maximal1981
                                        maximal1981 last edited by maximal1981

                                        dann bin ich hier leider raus.
                                        In der Regeltechnik lügt man nicht die Messeinheit an, sondern beeinflusst die daraus resultierende Stellgröße und somit die Regelkurve/das Stelverhalten.

                                        Ich vergleiche sowas gerne mit einem Auto, da haben die Leute mehr Zugang:
                                        Bei einem Ausbrechen des Fahrzeuges und somit der Aktvierung des ESP, verringere ich auch nicht um ein delta die Gaspedalstellung, sondern Bremse Räder aus. Der Vergleich hinkt zwar leicht, hoffe es wird aber verstanden worauf ich eigentlich angespielt habe die ganze Zeit.

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

                                          @maximal1981

                                          Ich verstehe grundsätzlich deine Punkte und würde dir, zum Teil, auch zustimmen. Vorrausgesetzt es wird alles über iobroker und Skripte gesteuert.

                                          Nun möchte ich aber per se nicht mehr oder weniger heizen (im umkehrschluss irgendwann natürlich das auch) sondern einfach nur die Raumtemperatur an einer anderen Stelle messen. Im Grunde als würde ich den Sensor einer Heizanlage verlegen, nur das ich hier 2 unterschiedliche Systeme nutze. Wenn ich nicht falsch liege, gibt es für diesen Zweck sogar von Tado selbst ein eigenständiges Modul, welches an einer anderen Stelle die Wetterdaten erfasst. Da ich das aber schon habe, nur eben von einem anderen Hersteller, dachte ich dies kostengünstiger auch per Skript machen zu können. Vor allem da ich entsprechende Sensoren auch in anderen Räumen habe und diese dann ähnlich nutzen könnte.

                                          Ich verstehe welche Werte/Datenpunkte du nutzen würdest, mir fehlt aber "noch" die Erkenntnis WIE du sie nutzen möchtest bzw. für das was ich bezwecken möchte. Ich bin nicht Stur und lasse mich durchaus auch von sinnvollen Dingen überzeugen oder auch davon, das ich einfach falsch denke, aber im Moment komme ich noch nicht dahinter. Ich versuche mal die "Sollwert"-Variante so zu erklähren wie ich sie verstehe und vielleicht zu erklähren was mich daran stört:

                                          Der Zeitplan ist wie folgt eingestellt: 23-17 Uhr = 17°C, 17-23 Uhr = 19°C. Um ca. 16:30 Uhr fängt Tado an die Heizkörper hoch zu drehen (Zeit=Annahme). um ca. 17 Uhr sind laut Tado Messung am Thermostat 19°C. Die Wetterstation in der Mitte des Raumes zeigt 17,6°C an. Tado dreht die Thermostate auf "Temperatur halten" (sagen wir mal 50%). Szenario "Raum zu kalt".

                                          Ich komme um 17 Uhr nach Hause und mache den Holzofen an, die Temperatur steigt auf 22°C an der Wetterstation, Thermostat zeigt 19,1°C an und ist immernoch am "Temperatur halten" (50%). Szenario "Heizung läuft obwohl Raum warm genug".

                                          Was tut nun das Skript? Es ist warm genug damit die Heizung aus gehen soll. Per Skript wird der Sollwert auf min. Temperatur gestellt (0°C?) oder der Raum wird "aus" geschaltet. Oder ist deine Idee nun die Solltemperatur um Faktor X runter zu drehen, damit die Heizung nicht mehr heizt? Dann wird die Temperatur evtl. am Thermostat noch weiter absinken und die Heizung fängt dann wieder an zu heizen. Ok, nach erreichen eines bestimmten Wertes den Zeitplan wieder einschalten hab ich begriffen und macht Sinn, aber kann ich mir das nicht sparen wenn der Zeitplan dauerhaft aktiv bleiben kann? Wenn ich die Tado-Raumtemperatur mit der Echten-Raumtemperatur gleichsetzen kann?

                                          @paul53

                                          Aber prüfst du nicht "differenz" > 0,25 und mach erst dann weiter? Währe aber nicht -0,2 kleiner als 0,25 und es würde nichts passieren? So lange nicht bis die "differenz" wieder >0,25 wäre?

                                          Gruß
                                          Jan

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

                                            @schlumpf sagte: prüfst du nicht "differenz" > 0,25 und mach erst dann weiter?

                                            Nein, die Prüfung lautet "Betrag von differenz > 0,25".

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            936
                                            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