NEWS
Temperatur angleichen Tado + Netatmo
-
@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.
-
@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.
-
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.
Die Thermostate selbst werden allerdings an einer anderen Stelle im Raumordner hinterlegt und haben keine eigene Temperaturangabe.
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.
-
@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.
-
Könnte ich, bringt in dem Fall aber leider nichts.
-
Würde das bedeuten das ich das Wohnzimmer nicht mehr komplett steuern könnte (wäre schade, aber auch lösbar)
-
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ß
-
-
@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.
-
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 WetterstationBlockly:
"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,3Reale 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ß
-
@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,8Nächster Trigger:
Wert(offset) => offset(4,5)
"differenz" = TW(23,6) - TR(23,8) = -0,2
Betrag ist < 0,25 -
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!
-
@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. -
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%.overlayClearZonedein 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. -
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 -
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.
-
@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"?
-
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.
-
@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.
-
@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.
-
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. -
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?
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 -
@schlumpf sagte: prüfst du nicht "differenz" > 0,25 und mach erst dann weiter?
Nein, die Prüfung lautet "Betrag von differenz > 0,25".