NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Die Logik müsste überschaubar sein, auch wenn die Lesbarkeit des Codes nicht die beste ist (ich bin kein ITler).
Es passiert leider nichts, die Profile werden nicht aktiviert. Ich habe versucht zu debuggen (wie ich halt kann :oops: )und muste feststellen dass AktivesEventProfil-Datenpunkt nicht beschrieben wird.
Könntest du bei Gelegenheit den Code überfliegen? Vielleich fällt dir irgendwas ein… `
Hi Max,kurze Frage und auch um die Funktionalität möglichst einfach zu halten.
Wenn von hinten nach vorne gelesen wird und das erste aktive profil selektiert wird, dann sollte deine Anforderung doch erfüllt sein ?
Mit anderen Worten:
-
Profil_1 aktiv und ausschliesslich - dann wird Profil_1 selektiert
-
Profil_2 aktiv und ausschliesslich - dann wird Profil_2 selektiert
-
Profil_1 und Profil-2 aktiv - dann wird Profil_2 selektiert
Das dürfte vom coding relativ einfach sein und braucht keine weiteren Einstellungen (ich weiss - war meine Idee :oops: )
vG Looxer
EDIT
würde dann so aussehen - habs aber noch nicht getestet
// Globales Profil ist prio2 if (UseEventsGlobalProfilSelect === true) { for (i = MaxProfile; i > 0; i--) { ProfilName = UseEventG_Profil; ProfilName = UseEventG_Profil.replace("<profilnummer>", i); if (getState(ICALPath + "." + ProfilName).val) { setOwnState(pathprofile+".AktivesEventProfil", i); Source_Profil = i; Source_ICALEvent = ProfilName; return i; } } // ende for i } // ende if globalProfilSelect</profilnummer> ```` `
Hi Looxer,
das mit dem Zähler rückwärts laufen lassen wäre die naheliegende Lösung gewesen.
Hast micht ganz schön in die Irre geführt mit dem Vorschlag… :lol:
Es funktioniert jetzt wunderbar, gerade getestet. Danke!
-
-
Derzeit arbeitet das Script über cron alle 5 Minuten und jedesmal wenn ich die Temperatur manuell anpasse, wird beim nächsten Durchlauf wieder auf den aktuell gültigen Schedule zurückgestellt. `
Hi,hast du das auch mal mit der Einstellung cron=0 versucht ?
Dann arbeitet das script nur bei Bedarf. (trigger)
vG Looxer
-
Derzeit arbeitet das Script über cron alle 5 Minuten und jedesmal wenn ich die Temperatur manuell anpasse, wird beim nächsten Durchlauf wieder auf den aktuell gültigen Schedule zurückgestellt. `
Hi,hast du das auch mal mit der Einstellung cron=0 versucht ?
Dann arbeitet das script nur bei Bedarf. (trigger)
vG Looxer `
Servus,
wenn ich nur mit Triggern arbeite funktionierts fast einwandfrei.
Das einzige was mir noch aufgefallen ist, wenn ich den Schedule während der manuellen Phase in irgendeiner Weise anpasse (auch an einem anderen Tag), wird die manuelle Änderung durch den Schedule überschrieben.
Danke
endi
-
Das einzige was mir noch aufgefallen ist, wenn ich den Schedule während der manuellen Phase in irgendeiner Weise anpasse (auch an einem anderen Tag), wird die manuelle Änderung durch den Schedule überschrieben. `
Hi,ja, das is so programmiert. Es gab schlicht unerwünsche Seiteneffekte und daher diese Lösung.
Cron habe ich schon lange nicht mehr getestet. Spricht was gegen Trigger aus deiner Sicht?
vG Looxer
-
ja, das is so programmiert. Es gab schlicht unerwünsche Seiteneffekte und daher diese Lösung.
Cron habe ich schon lange nicht mehr getestet. Spricht was gegen Trigger aus deiner Sicht?
vG Looxer `
Servus,
solange der Trigger funktioniert spricht nichts dagegen.
Nur stellt sich dann die Frage warum man ansonsten cron benutzen sollte? (rausnehmen?)
Man müsste dazu eine zusätzliche Funktion schreiben die bei einem neuen Durchlauf prüft ob die aktuelle Zeit kleiner ist als die, die in der manuellen Phase eingetragen ist. Danach dann die Temp wieder auf die Manuelle einstellen.
Danke
endi
-
Moin Moin Ihr!
Es folgt leider ein Thema welches evtl. etwas OFFTOPIC ist:
Ich weiß, dass sich hier in diesem Thread relativ viele Leute mit Hardware von Homematic und auch Xiaomi rumtreiben. Ich selbst besitze recht viel von Xiaomi bzw. Aqara. Habe ein Raspi 3b+ mit ioBroker und Raspbee Shield. Habe aktuell, zum ausprobieren ein Comet DECT Thermostat gekauft.
So richtig zufrieden bin ich damit nicht. Ich bin begeistert von dem Heizungs-Skript. Allerdings würde ich mir einfach wünschen, dass ich meine Aqara Temp.Sensoren als Regelung für die Thermostate nutzen kann. Denn, ich habe das elendige Problem, dass Bauart bedingt, die meisten Thermostate ungünstig platziert sind um einen einigermaßen ordentlichen Temp.-Wert zu messen. Sprich, dass die Aqara Sensoren die Temperatur der Thermostate überschreibt sozusagen.
Daher die Frage: Lässt sich mit Hilfe von Homematic Hardware + Aqara Sensoren irgendetwas anstellen?
Und benötige ich dazu zwingend die teure CCU2 oder gibt es auch andere günstigere Lösungen wie z.B. das Raspbee? Und wenn ja, taugen die?
Vielen Dank für eure Hilfe!!
Grüße!
-
Also ich habe meine CCU2 um 40€ gebraucht gekauft.
-
Ich habe meine Comet DECT Thermostate seit über einem Jahr im Einsatz.
Das die internen Temperaturfühler nicht übereinstimmen habe ich bei allen Thermostaten über den Offsetwert in der Fritzbox einwandfrei ausregeln können. Selbst ein Thermostat der hochkant steht regelt dadurch mit den richtigen Temperaturwerten.
-
Ich habe meine Comet DECT Thermostate seit über einem Jahr im Einsatz.
Das die internen Temperaturfühler nicht übereinstimmen habe ich bei allen Thermostaten über den Offsetwert in der Fritzbox einwandfrei ausregeln können. Selbst ein Thermostat der hochkant steht regelt dadurch mit den richtigen Temperaturwerten. `
Ja. Nur manchmal reicht der Offset nicht oder ist nicht in allen Fällen praktikabel.
Die Frage ist ja auch, ob das überhaupt mit dieser Homematic und Aqara Geschichte lösbar ist.
-
Ich habe meine Comet DECT Thermostate seit über einem Jahr im Einsatz.
Das die internen Temperaturfühler nicht übereinstimmen habe ich bei allen Thermostaten über den Offsetwert in der Fritzbox einwandfrei ausregeln können. Selbst ein Thermostat der hochkant steht regelt dadurch mit den richtigen Temperaturwerten. `
Ja. Nur manchmal reicht der Offset nicht oder ist nicht in allen Fällen praktikabel.
Die Frage ist ja auch, ob das überhaupt mit dieser Homematic und Aqara Geschichte lösbar ist. `
Hi,
meines Wissens geht das nicht. Der Temperatur-Istwert kann entweder vom Heizkörperthermostat oder vom Homematic Wandthermostat in die Regelung eingespeist werden. Oder gibt es jemanden, der es besser weiß?!
Ein möglicher Ansatz mit dem Aqara Temperatursensor wäre eine Solltemperaturvorgabe mittels einer Inversen Funktion des Istwerts (mit Aqara Thermostat gemessen)
Tist = Tsoll * G(s) => Tsoll = Tist * G(s)^(-1) (hierbei ist G(s) die Übertragungsfunktion von Heizkörper+Raum+Temperaturmessgerät)
Hierzu könnte man eine Sprungantwort aufnehmen bzw. eine Zeit lang beide Messwerte loggen und versuchen die Übertragungsfunktion anzunähern…
Des weiteren ist der Aqara Temperatursensor sehr träge bzw. aktualisiert die Messewerte zu selten für eine brauchbare Regelung. Der Regelkreis könnte instabil werden etc.
Das geht hier aber zu weit.. :lol:
Grüße,
Max
-
Moin moin,
nutzt hier vielleicht jemand die Kombination: IOBroker -> Fhem Adapter (1.1.1) -> nanoCUL -> MAX! Thermostate?
Ich habe das Problem das bei jedem Programmdurchlauf bzw. Anwesenheitswechsel Manuelle Temperaturen gesetzt werden und wollte mal horchen ob jemand geanu das gleiche Problem hat und vielleicht lösen konnte?
Das einzige was ich jetzt heraus finden konnte war: Fhem Adapter auf 0.5.6 downgraden, damit scheints zu funktionieren.
Schöne Grüße
-
Das einzige was ich jetzt heraus finden konnte war: Fhem Adapter auf 0.5.6 downgraden, damit scheints zu funktionieren. `
Mir ist nichts bewusst was sich in 1.1.1 an der Stelle geändert hat.
Kannst du das Problem mal näher beschreiben udn ein jsonlist2 von dem betroffenen Device einstellen
Gruß
LausiD
-
Mir ist nichts bewusst was sich in 1.1.1 an der Stelle geändert hat.
Kannst du das Problem mal näher beschreiben udn ein jsonlist2 von dem betroffenen Device einstellen `
Moin LausiD,
das Problem liegt darin: immer wenn ein Skriptdurchlauf erfolgt wird eine "manuelle Temperatur" gesetzt und die neue Solltemperatur (vom Skript) wird nicht übernommen. Das heißt es erfolgt keine Solltemperaturänderung an dem jeweiligen Fhem Device. Ich denke das ein Fehler im Skript auszuschließen ist, da Looxer (vielen Dank nochmal für deine Unerstützung) sich das ganze schon angenommen hat und per TeamViewer, das Skript und meine Einstellungen, überprüft hat. Komischerweise tritt dieses Problem nicht bei der Fhem Version 0.5.6 auf.
Anbei mal das jsonlist2 vom Max! Wandsthermostat was ich jetzt zum testen verwende. Vorher hatte ich bereits bei einem direkt verknüpften Heizkörperthermostat die gleichen Tests durchgeführt, mit dem selben Ergebnis.
{ "Arg":"WZ_Raumregler", "Results": [ { "Name":"WZ_Raumregler", "PossibleSets":"wakeUp factoryReset groupid associate:BZ_Antrieb,WZ_Fensterfluegel_Links,WZ_Fensterfluegel_Rechts,BZ_Fenster,WZ_Fenster_Couch,fakeShutterContact deassociate:BZ_Antrieb,WZ_Fensterfluegel_Links,WZ_Fensterfluegel_Rechts,BZ_Fenster,WZ_Fenster_Couch,fakeShutterContact displayActualTemperature:0,1 desiredTemperature:eco,comfort,boost,auto,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on ecoTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on comfortTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on maximumTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on minimumTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on measurementOffset:-3.5,-3.0,-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5 windowOpenTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on boostDuration:60,25,30,0,15,20,10,5 boostValveposition ", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev do_not_notify:1,0 ignore:0,1 dummy:0,1 showtime:1,0 keepAuto:0,1 scanTemp:0,1 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude cmdIcon devStateIcon devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride userattr", "Internals": { "DEF": "WallMountedThermostat 192199", "LASTInputDev": "cm", "MSGCNT": "2419", "NAME": "WZ_Raumregler", "NR": "76", "RSSI": "-45", "STATE": "19.0 °C", "TYPE": "MAX", "addr": "192199", "backend": "cm", "cm_MSGCNT": "2419", "cm_TIME": "2018-12-08 22:42:05", "rferror": "0", "serial": "OEQ1034342", "type": "WallMountedThermostat" }, "Readings": { "RSSI": { "Value":"-45", "Time":"2018-12-08 22:42:05" }, "TimeInformationHour": { "Value":"0", "Time":"2018-09-14 11:57:26" }, "battery": { "Value":"ok", "Time":"2018-12-08 22:26:03" }, "batteryState": { "Value":"ok", "Time":"2018-12-08 22:26:03" }, "boostDuration": { "Value":"25", "Time":"2018-09-14 11:45:54" }, "boostValveposition": { "Value":"80", "Time":"2018-09-14 11:45:54" }, "comfortTemperature": { "Value":"21.0", "Time":"2018-09-14 11:45:54" }, "desiredTemperature": { "Value":"19.0", "Time":"2018-12-08 22:42:05" }, "displayActualTemperature": { "Value":"1", "Time":"2018-12-08 22:26:03" }, "ecoTemperature": { "Value":"17.0", "Time":"2018-09-14 11:45:54" }, "firmware": { "Value":"1.0", "Time":"2018-12-08 13:25:47" }, "groupid": { "Value":"0", "Time":"2018-12-08 13:25:47" }, "maximumTemperature": { "Value":"on", "Time":"2018-09-14 11:45:54" }, "measurementOffset": { "Value":"0.0", "Time":"2018-09-14 11:45:54" }, "minimumTemperature": { "Value":"off", "Time":"2018-09-14 11:45:54" }, "mode": { "Value":"manual", "Time":"2018-12-08 22:26:03" }, "msgcnt": { "Value":"146", "Time":"2018-12-08 22:26:02" }, "state": { "Value":"19.0 °C", "Time":"2018-12-08 22:42:05" }, "temperature": { "Value":"21.8", "Time":"2018-12-08 22:42:05" }, "testresult": { "Value":"255", "Time":"2018-12-08 13:25:47" }, "weekprofile-0-Sat-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-0-Sat-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "weekprofile-1-Sun-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-1-Sun-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "weekprofile-2-Mon-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-2-Mon-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "weekprofile-3-Tue-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-3-Tue-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "weekprofile-4-Wed-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-4-Wed-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "weekprofile-5-Thu-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-5-Thu-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "weekprofile-6-Fri-temp": { "Value":"17.0 °C / 17.0 °C", "Time":"2018-12-02 17:13:25" }, "weekprofile-6-Fri-time": { "Value":"00:00-23:55 / 23:55-00:00", "Time":"2018-12-02 17:13:25" }, "windowOpenDuration": { "Value":"15", "Time":"2018-09-14 11:58:35" }, "windowOpenTemperature": { "Value":"5.0", "Time":"2018-09-14 11:59:51" } }, "Attributes": { "IODev": "cm", "group": "Heizung", "icon": "hm-tc-it-wm-w-eu", "room": "1 Wohnzimmer,82 MAX,ioBroker" } } ], "totalResultsReturned":1 }
Schöne Grüße
-
Moin LausiD,
das Problem liegt darin: immer wenn ein Skriptdurchlauf erfolgt wird eine "manuelle Temperatur" gesetzt und die neue Solltemperatur (vom Skript) wird nicht übernommen. Das heißt es erfolgt keine Solltemperaturänderung an dem jeweiligen Fhem Device. Ich denke das ein Fehler im Skript auszuschließen ist, da Looxer (vielen Dank nochmal für deine Unerstützung) sich das ganze schon angenommen hat und per TeamViewer, das Skript und meine Einstellungen, überprüft hat. Komischerweise tritt dieses Problem nicht bei der Fhem Version 0.5.6 auf.
Anbei mal das jsonlist2 vom Max! Wandsthermostat was ich jetzt zum testen verwende. Vorher hatte ich bereits bei einem direkt verknüpften Heizkörperthermostat die gleichen Tests durchgeführt, mit dem selben Ergebnis. `
Aktualisiere den FHEM Adapter mal von github und teste erneut.
Kannst du die Funktion des Sriptes durch manuelle Eingaben an den jeweiligen Objekten simulieren?
Gruß
LausiD
-
Aktualisiere den FHEM Adapter mal von github und teste erneut.
Kannst du die Funktion des Sriptes durch manuelle Eingaben an den jeweiligen Objekten simulieren? `
Vielen Dank LausiD anscheinend funktioniert das mit dem Adapter von github.
Was ist denn der Unterschied zwischen beiden?
Ich teste die nächsten Tage noch ausführlich aber das sieht schon mal sehr gut aus.
Und mal allgemein gefragt, macht das Sinn alle Adapter von github zu installieren? (Sorry falls die Frage blöd ist)
Schöne Grüße
Jango
-
Da können neue Funktionen aber auch neue Fehler drinnen sein.
-
Hi Jango,
super…..Glück gehabt
Den Unterschied kann ich dir im Detail auf die Schnelle auch nicht sagen.
Grundsätzlich gilt aber:
Bei Fehlern/Probleme ist ein Update über github immer sinnvoll.
Ist immer der letzte Stand vom Adapter und eventuell wurde Fehler/Problem schon behoben.....wie in deinem Fall
Es kann ja immer auf andere Version zurück gegangen werden.
Viel Spass mit iobroker, FHEM und Gruß
LausiD
-
Hi,
ich habe in den letzten Tagen intensiv an einer neuen Version garbeitet mit einigen Aenderungen.
- ICAL Events komplett überarbeitet
-
subscriptions hinzugefügt
-
Aktivierung jetzt über View - nicht mehr im Script
-
Bei globaler Profilselektion können einzelne Räume deaktviert werden - muss also nicht über alle Räume gehen
-
Fall back Profil ist 1, wenn keine Events mehr vorliegen
-
mehrere Events gleichzeitig möglich - Prio - höchste Profilnummer zuerst
-
View angepasst (jetzt 3 Profile in einer View (Danke an Kugelkopf) - plus neue Felder für Eventaktivierung)
- Boost Funktion hinzugefügt (SoftBoost
-
Ein klick und Boost aktiviert auf eingestellt High Temp
-
Dauer des Boosts lässt sich je Raum einstellen
- Manuelle Temperaturen
-
Manuelle Temps gehen jetzt nicht mehr verloren, wenn einstellungen vorgenommen werden
-
komplette überarbeitung der manuellen Temps
-
Delay nach schliessen von Fenster funktioniert jetzt und ist auch erweitert auf Nicht HM- Geräte
-
Technische Änderungen
Da es doch viele Änderungen waren suche ich Tester - vielleicht für bestimmte o.g. Themen.
Besonders auch deshalb, weil ich die Manuelle Temps angepasst habe und die sind nicht ganz so easy.
Würde mich freuen, wenn sich jemand meldet.
vG Looxer
-
Hi Looxer,
wenn ich so lese was du alles erweitert/geändert hast, Respekt und Danke! Also ich könnte den Punkt:
> - Delay nach schliessen von Fenster funktioniert jetzt und ist auch erweitert auf Nicht HM- Geräte
testen, damit meine ich Xioami Fenster-/Tür Sensoren die per CUX als HM-Sec-SC Sensor eingebunden sind in Verbindung mit HM-CC-RT-DN.
Wenn du mir das Skript (incl. VIEW) zur Verfügung stellst, könnte ich das mal testen.
-
Da es doch viele Änderungen waren suche ich Tester - vielleicht für bestimmte o.g. Themen.
Besonders auch deshalb, weil ich die Manuelle Temps angepasst habe und die sind nicht ganz so easy.
Würde mich freuen, wenn sich jemand meldet. `
Hi,
also wenn Du meinst ich könnte helfen, dann gerne. Melde Dich einfach.
Grüße