NEWS
[Vorlage] Aufheiz-Zeiterfassung und Voraussteuerung für Heizungen
-
@Dirk: er fängt erst an zu rechnen wenn der aktor mind. 31 Minuten an war. Alles kürzere ist nicht aussagekräftig. Von daher misst er am ehesten wenn man nach der Nacht den Raum „hoch heizt“ und er misst eher nicht wenn man die temperatur hält und dazu kurz misst. Der Eintrag mit „timediff=2“ sagt das dr aktor nur 2 Minuten an war.
@eric2905: eine super frage
das Skript ist aktuell am ehesten für „Aktoren“ ausgelegt die ein und ausgeschaltet werden. Ein normales heizungsventil was zu 20% offen ist hat ja nie die volle Heizleistung. Man könnte versuchen mit einem Mini Skript einen js Datenpunkt mit true/false anzulegen der auf Änderungen der Ventilsteuerung reagiert und das als State im Skript nutzen. Ich würde aber dann das nur auf true setzen wenn ventilstellung 90% (oder 80% maximalst) ist. Du willst ja ermitteln wie lange er auf „Maximum“ heizen müsste um eine solltenperatur zu erreichen. Wäre mal ein interessantes Experiment ob da was sinnvolles rauskommt. Dann kann ich gern Support dafür später einbauen offiziell
-
@Dirk: er fängt erst an zu rechnen wenn der aktor mind. 31 Minuten an war. Alles kürzere ist nicht aussagekräftig. Von daher misst er am ehesten wenn man nach der Nacht den Raum „hoch heizt“ und er misst eher nicht wenn man die temperatur hält und dazu kurz misst. Der Eintrag mit „timediff=2“ sagt das dr aktor nur 2 Minuten an war. `
OK - Dann wird das Script wahrscheinlich nie etwas messen können, da die Stellmotoren durch die Homematic IP Steuerungseinheit nach ca. 10 - 12 Minuten ausgeschaltet werden und ggf. direkt wieder eingeschaltet werden.
Das kann ich auch nicht einstellen - ist in dem "Homematic IP Steuerungseinheit" Dingens drin.
Ggf. könnte ich hier
var timeDiff = Math.round((new Date().getTime() - rooms[room].letztesEin) / 1000 / 60); console.log(room + " timeDiff=" + timeDiff); if (timeDiff > 30) { var invalid = false;
die 30 gegen eine 10 ändern - würde das etwas nützen?
Gruß
Dirk
-
Ja aber die Frage durchaus du dann misst… eine Idee wäre eher sich abzusehen wenn es aus geht und direkt danach wieder an dann das „aus“ zu ignorieren.
Am mal grundsätzlich: soooo gut für die Stellmotoren ist das aber auch nicht oder?!
-
Ich baue mir morgen mal so ein kleines Script und lasse es dann mal für einen Raum mitlaufen.
Bei uns ist tagsüber keiner zu Hause und ich fahre die Raumtemperatur daher auf 19 Grad runter und mit entsprechendem Vorlauf dann später wieder hoch. Somit ist es dann wieder warm, wenn wir nach Hause kommen.
Als Schwellwert werde ich wohl die 80% Ventilöffnung nehmen.
Melde mich dann.
Gruß,
Eric
Von unterwegs getippert
-
@dirk: je länger ich nachdenke desto mehr Sinn macht es die fahrzeitbasiert Ventile zu berücksichtigen. Ich baue später mal was ein was ein „aus“ erst dann als aus nimmt wenn mindestens x sekunden aus alsbzustand war. Meine fbh Ventile brauchen 3 min zum auf oder zu fahren. Wenn also vor in 3 min wieder ein „auf“ kommt waren sie effektiv nicht wirklich zu, also kann er weiter messen.
Wie weit liegen bei deinem hm ip System die zu/auf auseinander wenn er wirklich gerade heizen muss?
-
@eric2905: super, bin gespannt ob das gemessene mir deinen Erfahrungswerten übereinstimmt
-
Ja aber die Frage durchaus du dann misst… eine Idee wäre eher sich abzusehen wenn es aus geht und direkt danach wieder an dann das „aus“ zu ignorieren. `
Stimmt ist auch eine sehr gute Idee - gerade weil das "aus" ja nur einige Sekunden vorhanden ist. Der "on Befehl" reagiert aber direkt und somit kommen die 30 Minuten nicht zusammen.Am mal grundsätzlich: soooo gut für die Stellmotoren ist das aber auch nicht oder?!
`
Ja das stimmt. Aber leider kann ich es nicht ändern bzw. ich habe noch nicht gefunden wo ich es ändern kann. Ganz so schlimm ist es aber nicht, da die Stellmotoren eine eingebaute Verzögerung von fast einer Minute haben und somit nicht reagieren.Gruß Dirk
-
@eric2905: super, bin gespannt ob das gemessene mir deinen Erfahrungswerten übereinstimmt
`
Habe es doch jetzt noch eingebaut- dann kriege ich die Aufheizphase morgen früh schon mit.
Hier das initiale Log Deines Scriptes:
22:52:51.674 [info] javascript.0 Start javascript script.js.Aktiv.Heizung.Aufheizmessung 22:52:51.675 [info] javascript.0 script.js.Aktiv.Heizung.Aufheizmessung: Raum Wohnzimmer initialisiert, status=false 22:52:51.675 [info] javascript.0 script.js.Aktiv.Heizung.Aufheizmessung: registered 1 subscription and 0 schedules
Und hier der Screenshot der aktuell angelegten Datenpunkte:
Bin mal auf morgen früh gespannt.
Gruß,
Eric
-
Hallo apollon77,
ist ja klasse, Das Thema beleuchte ich auch grade.
Ich habe unter dem Dach einen Raum den ich leider elektrisch heizen muss, da ist jede Minute die der Heizkörper weniger an ist, bares Geld.
Heute morgen waren die Datenpunkte gefüllt.
Ich habe die letzten Wochen versucht die Abhängigkeit der Aufheizzeit von der Aussentemperatur zu erfassen.
Dazu habe ich die Aussentemperatur zu Beginn der Aufheizzeit und die Zeitdauer bis die Solltemperatur erreicht ist protokolliert.
Nachdem genug Daten vorhanden waren hab ich das mal in ein Diagramm übertragen und bis auf einige Ausrutscher eine wirklich schöne Kurve rausbekommen die sich in meinem Fall mit einer linearen Gleichung darstellen lässt.
Das wäre doch noch eine schöne Ergänzung.
Es ist natürlich klar, das die Steilheit der Kurve vom Dämmstandard des Gebäudes abhängig ist. Bei modernen, sehr gut gedämmten Gebäuden wird diese Abhängigkeit nur sehr kleinen Einfluss haben.
-
Vergleiche doch mal die Daten meines Skriptes mit den Ergebnissen deiner Funktion die nächsten Tage… wäre ja mal interessant ob das passt?!
-
Neue versionen beider Skripte mit Optimierungen im ersten Beitrag und Changelog im zweiten Beitrag
-
Es dauert leider noch bis ich eine vernünftige Gegenüberstellung machen kann.
Leider hat mein History Adapter wieder mal Datenpunkte "vergessen". Diesmal leider den Datenpunkt der Raumtemperatur des Testraums.
Übrigens, ich hatte noch eine zweiten Raum angelegt und dort als Heizungs Status den Valve State eingetragen. Auch hier kommen erstaunlicherweise sinnvolle Werte in den Datenpunkten des Aufheiz Scripts an.
Werde jetzt mal die neue Version starten.
-
Übrigens, ich hatte noch eine zweiten Raum angelegt und dort als Heizungs Status den Valve State eingetragen. Auch hier kommen erstaunlicherweise sinnvolle Werte in den Datenpunkten des Aufheiz Scripts an. `
Interessant, ohne das neue Skript würde er die messung starten sobald das Ventil auch nur 1% offen ist … das ist ja nicht wirklich "heizen"
Mit der neuen version sollte es sinnvoller sein.
-
Hallo apollon77
Welche Aktoren nutzt du eigentlich genau für deine Fußbodenheizung!
Woher bekomme ich denn die Werte für die folgenden Variablen
stateIdSchedule: "javascript.0.Heizung.Heizplan.OG-Bad.Source_Schedule", // Nächter Schaltzeitpunkt stateIdNextTemperatur: "javascript.0.Heizung.Heizplan.OG-Bad.Source_NextTemp", // Nächste Wunschtemperatur
Gruß
Adrian
-
Welche Aktoren nutzt du eigentlich genau für deine Fußbodenheizung! `
Normale HM-Schaltaktoren.
Woher bekomme ich denn die Werte für die folgenden Variablen
stateIdSchedule: "javascript.0.Heizung.Heizplan.OG-Bad.Source_Schedule", // Nächter Schaltzeitpunkt stateIdNextTemperatur: "javascript.0.Heizung.Heizplan.OG-Bad.Source_NextTemp", // Nächste Wunschtemperatur ```` `
siehe erster Beitrag …
> der Info zur nächsten Schaltzeit und Solltemperatur des Heizungsthermostatsskripts (aus viewtopic.php?f=21&t=10096)
-
Natürlich habe ich genau das überlesen
Muss mir das später anschauen! Werde jetzt erst meine Fußbodenheizung Smart machen, die Aktoren liegen ja schon Monatelang hier bei mir rum! Aber dein Script muss ich jetzt mal testen
Gruß
Adrian
Gesendet von iPhone mit Tapatalk Pro
-
! javascript.0 2018-01-09 13:07:06.779 info script.js.common.Heizung_Schlafzimmer: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Wohnzimmer.Source_last_Program_Run
! javascript.0 2018-01-09 13:07:06.778 info script.js.common.Heizung_Schlafzimmer: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Wohnzimmer.Source_Last_Temp
! javascript.0 2018-01-09 13:07:06.776 info script.js.common.Heizung_Schlafzimmer: Routine ThermostatChange: Der Raum wurde vor weniger als 1 Sekunde bereits upgedated Aenderung wird ignoriert 0
! javascript.0 2018-01-09 13:07:06.755 info script.js.common.Heizung_Schlafzimmer: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Wohnzimmer.Source_NextTemp
! javascript.0 2018-01-09 13:07:06.744 info script.js.common.Heizung_Schlafzimmer: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run
! javascript.0 2018-01-09 13:07:06.739 info script.js.common.Heizung_Schlafzimmer: Heizungsscript verarbeitung Trigger für Raum Wohnzimmer durchgelaufen
! javascript.0 2018-01-09 13:07:06.739 info script.js.common.Heizung_Schlafzimmer:
! javascript.0 2018-01-09 13:07:06.738 info script.js.common.Heizung_Schlafzimmer: Routine LoopRooms Ende Abarbeitung fuer Raum Wohnzimmer
! javascript.0 2018-01-09 13:07:06.735 info script.js.common.Heizung_Schlafzimmer: Setze Schedule für nächste Planzeit 0 0 17 * * * für Raum Wohnzimmer
! javascript.0 2018-01-09 13:07:06.735 info script.js.common.Heizung_Schlafzimmer: Schedule gelöscht für Wohnzimmer
! javascript.0 2018-01-09 13:07:06.734 info script.js.common.Heizung_Schlafzimmer: Setze Wohnzimmer.Source_Last_Temp zu 18
! javascript.0 2018-01-09 13:07:06.734 info script.js.common.Heizung_Schlafzimmer: Routine SetTemp: ID updated hm-rpc.0.OEQ0577977.2.SET_TEMPERATURE Raum Wohnzimmer SollTemp = 18
! javascript.0 2018-01-09 13:07:06.733 info script.js.common.Heizung_Schlafzimmer: Setze Wohnzimmer.Source_NextTemp zu 19
! javascript.0 2018-01-09 13:07:06.730 info script.js.common.Heizung_Schlafzimmer: Routine ExecuteTempDetermination: raum WohnzimmerSolltemp nach overrule: 18 Findung Abwesenheit Absenkung
! javascript.0 2018-01-09 13:07:06.728 info script.js.common.Heizung_Schlafzimmer: Routine ExecuteTempDetermination: raum WohnzimmerSolltemp nach Switchtime: 22 Findung Di_17:00:00
! javascript.0 2018-01-09 13:07:06.728 info script.js.common.Heizung_Schlafzimmer: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 22 fuer Raum Wohnzimmer Raumprofil ist 1
! javascript.0 2018-01-09 13:07:06.726 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.721 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.721 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:850:13)
! javascript.0 2018-01-09 13:07:06.721 warn at ExecuteTempDetermination (script.js.common.Heizung_Schlafzimmer:1427:25)
! javascript.0 2018-01-09 13:07:06.720 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1489:15)
! javascript.0 2018-01-09 13:07:06.720 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.718 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.717 info script.js.common.Heizung_Schlafzimmer: Routine ManAdjustments: Manuelle Temperatur Erkennung ist ausgeschaltet
! javascript.0 2018-01-09 13:07:06.717 info script.js.common.Heizung_Schlafzimmer: Routine ManAdjustments: Manuell Relevant?: false
! javascript.0 2018-01-09 13:07:06.717 info script.js.common.Heizung_Schlafzimmer: Routine ManAdjustments: Manuell Relevant?: false
! javascript.0 2018-01-09 13:07:06.716 info script.js.common.Heizung_Schlafzimmer: Routine Manadj: errechneter Next Timeslot ist NaN
! javascript.0 2018-01-09 13:07:06.716 info script.js.common.Heizung_Schlafzimmer: Routine Manadj: errechnete Next SollTemp ist 19
! javascript.0 2018-01-09 13:07:06.716 info script.js.common.Heizung_Schlafzimmer: Routine Manadj: errechneter Current TimeSlot ist NaN
! javascript.0 2018-01-09 13:07:06.715 info script.js.common.Heizung_Schlafzimmer: Routine Manadj: errechnete Current SollTemp ist 18
! javascript.0 2018-01-09 13:07:06.714 info script.js.common.Heizung_Schlafzimmer: Routine SelectSwitchTime - Nächste Solltemperatur ist 23 fuer RaumWohnzimmer Raumprofil ist 1
! javascript.0 2018-01-09 13:07:06.714 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.714 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.713 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:848:18)
! javascript.0 2018-01-09 13:07:06.713 warn at ManAdjustments (script.js.common.Heizung_Schlafzimmer:1013:65)
! javascript.0 2018-01-09 13:07:06.713 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1564:19)
! javascript.0 2018-01-09 13:07:06.712 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.710 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.709 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.708 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.708 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:848:18)
! javascript.0 2018-01-09 13:07:06.708 warn at ManAdjustments (script.js.common.Heizung_Schlafzimmer:1013:65)
! javascript.0 2018-01-09 13:07:06.707 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1489:15)
! javascript.0 2018-01-09 13:07:06.707 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.705 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.704 info script.js.common.Heizung_Schlafzimmer: Routine SelectSwitchTime - Nächster Zeitslot ist Di_22:00:00 fuer RaumWohnzimmer Raumprofil ist 1
! javascript.0 2018-01-09 13:07:06.703 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.703 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.703 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:848:18)
! javascript.0 2018-01-09 13:07:06.702 warn at ManAdjustments (script.js.common.Heizung_Schlafzimmer:1012:65)
! javascript.0 2018-01-09 13:07:06.702 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1564:19)
! javascript.0 2018-01-09 13:07:06.701 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.699 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.698 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.698 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.697 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:848:18)
! javascript.0 2018-01-09 13:07:06.697 warn at ManAdjustments (script.js.common.Heizung_Schlafzimmer:1012:65)
! javascript.0 2018-01-09 13:07:06.697 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1489:15)
! javascript.0 2018-01-09 13:07:06.696 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.693 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.692 info script.js.common.Heizung_Schlafzimmer: Routine SelectSwitchTime - Aktueller Zeitslot ist Di_17:00:00 fuer RaumWohnzimmer Raumprofil ist 1
! javascript.0 2018-01-09 13:07:06.691 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.690 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.690 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:848:18)
! javascript.0 2018-01-09 13:07:06.690 warn at ManAdjustments (script.js.common.Heizung_Schlafzimmer:1011:68)
! javascript.0 2018-01-09 13:07:06.689 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1489:15)
! javascript.0 2018-01-09 13:07:06.688 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.686 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.684 info script.js.common.Heizung_Schlafzimmer: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 22 fuer Raum Wohnzimmer Raumprofil ist 1
! javascript.0 2018-01-09 13:07:06.672 warn at Object. (script.js.common.Heizung_Schlafzimmer:448:9)
! javascript.0 2018-01-09 13:07:06.672 warn at LoopRooms (script.js.common.Heizung_Schlafzimmer:739:13)
! javascript.0 2018-01-09 13:07:06.672 warn at LoopDevices (script.js.common.Heizung_Schlafzimmer:848:18)
! javascript.0 2018-01-09 13:07:06.671 warn at ManAdjustments (script.js.common.Heizung_Schlafzimmer:1010:68)
! javascript.0 2018-01-09 13:07:06.671 warn at SelectSwitchTime (script.js.common.Heizung_Schlafzimmer:1489:15)
! javascript.0 2018-01-09 13:07:06.670 warn at DetermineSchedule (script.js.common.Heizung_Schlafzimmer:1603:30)
! javascript.0 2018-01-09 13:07:06.668 warn getState "feiertage.0.morgen.boolean" not found (3)
! javascript.0 2018-01-09 13:07:06.667 info script.js.common.Heizung_Schlafzimmer: Routine LoopDevices: Sensorstatus fuer raum Wohnzimmer ist false
! javascript.0 2018-01-09 13:07:06.666 info script.js.common.Heizung_Schlafzimmer: Routine LoopRooms Starte Abarbeitung fuer Raum Wohnzimmer
! javascript.0 2018-01-09 13:07:05.664 info script.js.common.Heizung_Schlafzimmer: TriggerUpdate für Wohnzimmer und manChange=false
! javascript.0 2018-01-09 13:07:05.662 info script.js.common.Heizung_Schlafzimmer: Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.ProfilParameter_AbwesenheitAbsenkung und Raum WohnzimmerHallo,
Ich bin gerade von FHEM auf iobroker umgestiegen und bin begeistert.
Vielen Dank für die tolle Arbeit.
Ich habe mir das Sript von Apollon77 und das Script und die VIS von looxer01 installiert.
Das Ganze funkt recht gut bekomme aber immer folgende Warnungen.
Die Skripte kann ich erst am Abend bereitstellen weil ich über das Webinterface nicht auf meine Skripte komme.
Als nicht Programmierer brauche ich da wohl etwas Hilfe um einen durchblick zu bekommen.
Vielen Dank
-
Da hast Du wohl entweder in den EInstellungen vom Thermostatskript von looxer01 eingeschaltet das der "Feiertagskalender" berücksichtigt werden soll, aber hast den Adapter "feiertage" nicht installiert.
javascript.0 2018-01-09 13:07:06.718 warn getState "feiertage.0.morgen.boolean" not found (3)
Sagt genau das er einen State versucht zu lesen den es bei Dir nicht gibt. Also ENtweder Adapter installieren und konfigurieren oder im Skript das wieder ausschalten.
-
Hallo,
super, sehe ja den Baum vor lauter Wald nicht.
Danke
-
Habe jetzt die Feiertage an Österreich angepasst, sehe momentan aber gar keine Einträge im Log unter der dazugehörigen Java Instanz.
Gehört das so?
Danke