NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Moin ich bins schon wieder,
So jetzt bin ich richtig ratlos.
Nach dem neustart meines PI funktioniert das Script 2.0 immer noch nicht
aber jetzt kommt es.
Durch Start vom Script Version 0.81 11.11.2017 kam folgender Log:
! ````
20:33:18.714 [info] javascript.0 Start javascript script.js.common.Heizung_0_7
20:33:18.716 [info] javascript.0 script.js.common.Heizung_0_7: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-RT-DN,Heizkoerperthermostat(neu),HT,4.SET_TEMPERATURE,false,4.MANU_MODE,true,4.ACTUAL_TEMPERATURE,4.CONTROL_MODE,12,0
20:33:18.717 [info] javascript.0 script.js.common.Heizung_0_7: Routine GetDevices fuer HM Sensoren Wohnzimmer,hm-rpc.0.OEQ0422071.1.STATE,HM-Sec-SCo,HM-Sec-SCo OEQ0ERSETZT:1.STATE,hm-rpc.0.OEQ0ERSETZT,HM,1.STATE,false,false,true
20:33:18.717 [info] javascript.0 script.js.common.Heizung_0_7: Routine GetDevices Devices initialisiert
20:33:18.717 [info] javascript.0 script.js.common.Heizung_0_7: registered 2 subscriptions and 1 schedule
20:35:00.737 [info] javascript.0 script.js.common.Heizung_0_7: Routine LoopDevices: Geraet hm-rpc.0.OEQ0ERSETZT Raum: Wohnzimmer in den Manuellen Modus gesetzt
20:35:00.739 [info] javascript.0 script.js.common.Heizung_0_7: Heizungsscript verarbeitung durchgelaufenDatenpunkte wurden angelegt :D :D :D :shock: :shock: :shock: :shock: Alles zurück hab das Script nochmal neu eingefügt und gestartet und, siehe da es funktioniert, zwar mit vielen Warnungen, aber es läuft. >! ```` javascript.0 2018-03-25 18:44:37.400 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.400 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.399 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:865:13) javascript.0 2018-03-25 18:44:37.399 warn at ExecuteTempDetermination (script.js.common.Heizungsteuerung_2_0:1386:25) javascript.0 2018-03-25 18:44:37.398 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1460:15) javascript.0 2018-03-25 18:44:37.397 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.394 warn getState "feiertage.0.morgen.boolean" not found (3) javascript.0 2018-03-25 18:44:37.385 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.384 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.384 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:863:18) javascript.0 2018-03-25 18:44:37.383 warn at ManAdjustments (script.js.common.Heizungsteuerung_2_0:1037:65) javascript.0 2018-03-25 18:44:37.382 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1535:19) javascript.0 2018-03-25 18:44:37.381 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.378 warn getState "feiertage.0.morgen.boolean" not found (3) javascript.0 2018-03-25 18:44:37.376 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.374 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.372 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:863:18) javascript.0 2018-03-25 18:44:37.372 warn at ManAdjustments (script.js.common.Heizungsteuerung_2_0:1037:65) javascript.0 2018-03-25 18:44:37.371 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1460:15) javascript.0 2018-03-25 18:44:37.370 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.367 warn getState "feiertage.0.morgen.boolean" not found (3) javascript.0 2018-03-25 18:44:37.365 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.364 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.364 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:863:18) javascript.0 2018-03-25 18:44:37.363 warn at ManAdjustments (script.js.common.Heizungsteuerung_2_0:1036:65) javascript.0 2018-03-25 18:44:37.362 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1535:19) javascript.0 2018-03-25 18:44:37.362 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.359 warn getState "feiertage.0.morgen.boolean" not found (3) javascript.0 2018-03-25 18:44:37.356 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.355 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.355 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:863:18) javascript.0 2018-03-25 18:44:37.354 warn at ManAdjustments (script.js.common.Heizungsteuerung_2_0:1036:65) javascript.0 2018-03-25 18:44:37.353 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1460:15) javascript.0 2018-03-25 18:44:37.353 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.350 warn getState "feiertage.0.morgen.boolean" not found (3) javascript.0 2018-03-25 18:44:37.345 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.345 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.344 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:863:18) javascript.0 2018-03-25 18:44:37.343 warn at ManAdjustments (script.js.common.Heizungsteuerung_2_0:1035:68) javascript.0 2018-03-25 18:44:37.343 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1460:15) javascript.0 2018-03-25 18:44:37.342 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.339 warn getState "feiertage.0.morgen.boolean" not found (3) javascript.0 2018-03-25 18:44:37.322 warn at Object. (script.js.common.Heizungsteuerung_2_0:419:9) javascript.0 2018-03-25 18:44:37.321 warn at LoopRooms (script.js.common.Heizungsteuerung_2_0:763:13) javascript.0 2018-03-25 18:44:37.321 warn at LoopDevices (script.js.common.Heizungsteuerung_2_0:863:18) javascript.0 2018-03-25 18:44:37.320 warn at ManAdjustments (script.js.common.Heizungsteuerung_2_0:1034:68) javascript.0 2018-03-25 18:44:37.319 warn at SelectSwitchTime (script.js.common.Heizungsteuerung_2_0:1460:15) javascript.0 2018-03-25 18:44:37.319 warn at DetermineSchedule (script.js.common.Heizungsteuerung_2_0:1574:30) javascript.0 2018-03-25 18:44:37.309 warn getState "feiertage.0.morgen.boolean" not found (3)
Was mich halt wundert, habe den Feiertag auf false gesetzt und trotzdem möchte er den Feiertag Adapter haben?
War das bei euch auch so?
-
Was mich halt wundert, habe den Feiertag auf false gesetzt und trotzdem möchte er den Feiertag Adapter haben?
War das bei euch auch so? `
Hi,
Da könnte sich ein Fehler eingeschlichen haben. Muss ich mal testen. Installiere doch mal den Feiertags-adapter und anschliessend kannst du in deaktivieren. Dann sind die datenpunkte da und die warnmeldungen sollten verschwinden.
Ich bin zur Zeit unterwegs und komme nicht ans System. Am nächsten WE wieder
Vg looxer
Gesendet von meinem SM-G965F mit Tapatalk
-
Also bei mir kommen die Warnungen auch, aber stören mich soweit nicht, da ich es aktuell nicht nutze. Das Script tut deshalb auch, wofür es konsipiert wurde
Ich freu mich schon wenn looxer01 wieder am Start ist, vielleicht bekommen wir mein Problemchen trotzdem irgendwie in den Griff
-
Hallo zusammen,
ich bin neu bei ioBroker eingestiegen, bisher gefällt es mir sehr gut!
Nun bin ich bei der Heizugssteueerung angekommen. Mein Ziel ist es Z-Wave Thermostate (Eurotronic Spirit) zu verwenden, Dieses habe ich bisher erfolgreich eingebunden und kann dieses auch steuern.
Nun zum Skript und meine Fragen:
- Gewerk: Im skript steht ich muss alle Thermostat dem "Gewerk" zuordnen, ist die HM spezifisch? -> wenn nein, wie geht das?
- Raumliste: ist das die "location"/"Aufzählung"?
- ICAL: kann ich auch ohne anfangen, also alles im Skript auf "false" und gut ist (für den Anfang)
schonmal Danke und Gruß
-
Hallo zusammen,
ich bin neu bei ioBroker eingestiegen, bisher gefällt es mir sehr gut!
Nun bin ich bei der Heizugssteueerung angekommen. Mein Ziel ist es Z-Wave Thermostate (Eurotronic Spirit) zu verwenden, Dieses habe ich bisher erfolgreich eingebunden und kann dieses auch steuern.
Nun zum Skript und meine Fragen:
- Gewerk: Im skript steht ich muss alle Thermostat dem "Gewerk" zuordnen, ist die HM spezifisch? -> wenn nein, wie geht das?
- Raumliste: ist das die "location"/"Aufzählung"?
- ICAL: kann ich auch ohne anfangen, also alles im Skript auf "false" und gut ist (für den Anfang)
schonmal Danke und Gruß `
Herzlich Willkommen bei uns, bin zwar kein großer Fachmann, aber einiges kann ich mittlerweile auch beantworten.
Also, dass Script ist HM spezifisch, sprich du musst deine Thermostate als "Nicht-HM" eintragen –> in der Doku dieses Scriptes ist es beschrieben.
Die Raumliste ist im io.broker Admin unter Aufzählungen --> Rooms vorzunehmen.
Und ja, du kannst erst einmal auch ohne iCal beginnen, läuft bei mir Problemlos so.
beste Grüße
-
Danke schonmal für deine Antwort, nun bin ich soweit:
Definition des nicht HM-Thermostats:
NoneHMTab[3] = ['initial', 'ZWAVE.0', 'NODE2', 'Heat_1', 12];
wobei mein ioBroker Datenpunkt so aussieht:
zwave.0.NODE2.THERMOSTAT_SETPOINT.Heat_1
ist das korrekt, mir fehlt irgendwie das:
> THERMOSTAT_SETPOINT
wenn ich das Skript so starte steht folgendes im Log:
javascript.0 2018-03-27 16:15:42.511 warn at Object. (script.js.common.Heizung_2_0:420:9) javascript.0 2018-03-27 16:15:42.511 warn at LoopRooms (script.js.common.Heizung_2_0:755:5) javascript.0 2018-03-27 16:15:42.510 warn at setOwnState (script.js.common.Heizung_2_0:483:5) javascript.0 2018-03-27 16:15:42.500 warn State "javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run" not found javascript.0 2018-03-27 16:15:42.493 info script.js.common.Heizung_2_0: Heizungsscript verarbeitung benutzt Trigger und Events javascript.0 2018-03-27 16:15:40.490 info script.js.common.Heizung_2_0: registered 0 subscriptions and 0 schedules javascript.0 2018-03-27 16:15:40.488 info script.js.common.Heizung_2_0: Routine GetDevices Devices initialisiert javascript.0 2018-03-27 16:15:40.459 info Start javascript script.js.common.Heizung_2_0
ich stehe gerade noch wie der Ochs vorm Berg und weiss nicht so recht wohin ich nun gucken muss
vielen Dank schonmal für jeden Tip!
Gruß
EDIT: woran würde ich denn erkennen ob das Skript geht, es sollte doch neue Objekte geben, korrekt?
-
Danke schonmal für deine Antwort, nun bin ich soweit:
Definition des nicht HM-Thermostats:
NoneHMTab[3] = ['initial', 'ZWAVE.0', 'NODE2', 'Heat_1', 12];
wobei mein ioBroker Datenpunkt so aussieht:
zwave.0.NODE2.THERMOSTAT_SETPOINT.Heat_1
ist das korrekt, mir fehlt irgendwie das:
> THERMOSTAT_SETPOINT
wenn ich das Skript so starte steht folgendes im Log:
javascript.0 2018-03-27 16:15:42.511 warn at Object. (script.js.common.Heizung_2_0:420:9) javascript.0 2018-03-27 16:15:42.511 warn at LoopRooms (script.js.common.Heizung_2_0:755:5) javascript.0 2018-03-27 16:15:42.510 warn at setOwnState (script.js.common.Heizung_2_0:483:5) javascript.0 2018-03-27 16:15:42.500 warn State "javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run" not found javascript.0 2018-03-27 16:15:42.493 info script.js.common.Heizung_2_0: Heizungsscript verarbeitung benutzt Trigger und Events javascript.0 2018-03-27 16:15:40.490 info script.js.common.Heizung_2_0: registered 0 subscriptions and 0 schedules javascript.0 2018-03-27 16:15:40.488 info script.js.common.Heizung_2_0: Routine GetDevices Devices initialisiert javascript.0 2018-03-27 16:15:40.459 info Start javascript script.js.common.Heizung_2_0
ich stehe gerade noch wie der Ochs vorm Berg und weiss nicht so recht wohin ich nun gucken muss
vielen Dank schonmal für jeden Tip!
Gruß
EDIT: woran würde ich denn erkennen ob das Skript geht, es sollte doch neue Objekte geben, korrekt? `
Also, wenn alles richtig ist, sollte in der LOG ein neues Device auftauchen.
So wie ich das sehe, hast du die Zeile falsch deklariert.
Versuche es mal so:
Ich nenne den Raum einmal "Schlafzimmer", da ich nicht weis, welchem Raum du den Thermostat zugeordnet hast.
NoneHMTab[1] = ['schlafzimmer', 'ZWAVE.0', 'NODE2', '4.SET_TEMPERATURE', 12];
Hier mal ein Auszug aus der Doku ( wenn man das nicht darf, dann bitte löschen):
` > Nicht-Homematic-Geräte
Nicht-Homematic Geräte werden über die Tabelle None-HM-Tab der Programmeinstellungen gelistet. Hintergrund ist, dass keine automatische Findung von Nicht-Homematic-Geräten vorgesehen ist. Damit brauchen auch keine Gewerkzuordnungen und Raumzuordnungen vorhanden sein. Anmerkung: idealerweise wird diese Funktion nicht benötigt. Sie wurde zum Testen hinzugefügt. So können beispielsweise virtuelle Thermostate definiert werden. Wenn ein Nicht-HM-Gerät in ioBroker korrekt mit Geräte-Definition, Raum- und Gewerkzuordnung angemeldet ist, dann sollte eine Erkennung inkl. Subscription möglich sein. (wenn die entsprechende Tabelle in den Experteneinstellungen konfiguriert ist) Für Nicht-Homematic Geräte werden folgende Daten benötigt:
Raum –> z.B. ['Schlafzimmer',
Adapter/Instance --> z.B. 'Zwave.0';
ID des Gerätes --> z.B. ZWA0183268';
Datenpunkt der Solltemperatur ' --> z.B. SET-TEMPERATURE' ;
Beispiel für die Konfiguration im Programm: var None-HM-Tab[]
None-HM-Tab[0] = ['Abstellraum', 'ZWAVE.0', 'zwa018xxx8', '4.SET_TEMPERATURE' ]
None-HM-Tab[1] = ['Abstellraum', 'javascript.0.Heizung', 'Geraete', '4.SET_TEMPERATURE' ]
None-HM-Tab[2] = [‘Schlafzimmer’, 'ZWAVE.0', 'zwa0183xxx', '4.SET_TEMPERATURE' ]
None-HM-Tab[3] = [‘Schlafzimmer’, 'ZWAVE.0', 'zwa0183xxx', '4.SET_TEMPERATURE' ]
Beispiel: Objektzusammensetzung
Aus den Spalten 1 – 3 wird die komplette ID zusammengesetzt. Die id aus dem Beispiel sieht dann so aus: Zwave.0. ZWA0183268. SET-TEMPERATURE. Dieser Pfad muss sich im Object – Tree von ioBroker 1:1 wiederfinden. `
Wenn du mal einen Screenshot von deiner Aufgeklappten Objektliste, wo man alles Thermostate widerrum aufgeklappt, der Z-Wave Schnittstelle sehen kann, könnte man den Pfad richtig sehen. Das wäre noch eine Hilfe, da hier noch einiges abgeht 8-)
-
anbei schon mal der Screenshot.
Raum ist
> Buero
, dieses ist auch in den Aufzählungen und im Skript vorhanden!Was ist denn nun genau mein Datenpunkt SollTemp? manuel muss/kann ich
Heat_1
unter````
zwave.0.NODE2.THERMOSTAT_SETPOINTDanke und Gruß [6556_node2.png](/assets/uploads/files/6556_node2.png)
-
anbei schon mal der Screenshot.
Raum ist
> Buero
, dieses ist auch in den Aufzählungen und im Skript vorhanden!Was ist denn nun genau mein Datenpunkt SollTemp? manuel muss/kann ich
Heat_1
unter````
zwave.0.NODE2.THERMOSTAT_SETPOINTDanke und Gruß `
Versuch es einmal so:
NoneHMTab[1] = ['Buero', 'ZWAVE.0', 'NODE2', 'THERMOSTAT_SETPOINT.HEAT_1', 12];
-
leider nein, hier der Ausschnitt aus dem Log:
` > javascript.0 2018-03-30 16:02:48.384 error at ContextifyScript.Script.runInContext (vm.js:59:29)javascript.0 2018-03-30 16:02:48.384 error at script.js.common.Heizung_2_0:338:1
javascript.0 2018-03-30 16:02:48.383 error at initializeData (script.js.common.Heizung_2_0:345:5)
javascript.0 2018-03-30 16:02:48.383 error at getDevices (script.js.common.Heizung_2_0:572:32)
javascript.0 2018-03-30 16:02:48.382 error TypeError: roomName.replace is not a function
javascript.0 2018-03-30 16:02:48.382 error ^
javascript.0 2018-03-30 16:02:48.381 error roomNoSpace = roomName.replace(/\s/g, "_");
javascript.0 2018-03-30 16:02:48.380 error script.js.common.Heizung_2_0: script.js.common.Heizung_2_0:572
javascript.0 2018-03-30 16:02:48.252 info Start javascript script.js.common.Heizung_2_0
javascript.0 2018-03-30 16:02:47.978 info Stop script script.js.common.Heizung_2_0 `
edie RoomList ist deaktiviert:
var UseRoomList = false; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
-
Hi,
javascript.0 2018-03-30 16:02:48.382 error TypeError: roomName.replace is not a function
javascript.0 2018-03-30 16:02:48.382 error ^ `
Du hast typos in das script gebracht. Das kann leider relativ leicht passieren.
Welche das sind kannst du einfach überprüfen.
Folgenden Link nutzen:
http://esprima.org/demo/validate.html
Dann den Code reinkopieren. Der Syntax Checker sagt dir an welchen Stellen es Probleme gibt.
vG Looxer
-
Ok, ich hab jetzt vieles versucht, um meine errechnete Solltemp irgendwie in das Script hier zu bringen, aber nichts hat geklappt. Leider auch das setzen auf die "manuelle" Solltemp. Denn dort wird alles nichtig, sobald die Zeit abgelaufen ist. Und bei einem erneuten setzten dieser manuellen Temp, reagiert es leider nicht mehr. Gerade bin ich ratlos, wie ich das hin bekomme…. `
Hi,
ich vermute folgendes.
Beim ersten mal sitzt die Variable Source_Timestamp auf init. Das heisst fuer das script, dass keine manuelle Temperatur eingestellt ist.
Ein setzen der Temperatur wird dann akzeptiert und es wird ein Zeitstempel gesetzt (aktuelle Zeit plus Anzahl Minuten (Gueltigkeit) laut Einstellung)
Beim zweiten mal sitzt vermutlich der Zeitstempel noch. Damit wird eine weitere manuelle Temperatur zwar aktzeptiert, die läuft aber mit dem vorher gesetzten Zeitstempel ab.
Du könntest probieren das Feld Source_TimeStamp mit einer neuen Gültigkeit zu versehen. Das Format muss so aussehen: 2018/03/31 16:54:34
Dann sollte das setzen einer neuen manuellen Temp kein Problem sein
vG Looxer
-
Was mich halt wundert, habe den Feiertag auf false gesetzt und trotzdem möchte er den Feiertag Adapter haben?
War das bei euch auch so? `
Hi,
Fehler habe ich gefunden. Ich denke, dass ich am Montag eine neue Version poste.
Vielen Dank für die Meldung.
vG Looxer
-
Was mich halt wundert, habe den Feiertag auf false gesetzt und trotzdem möchte er den Feiertag Adapter haben?
War das bei euch auch so?
Hi,Fehler habe ich gefunden. Ich denke, dass ich am Montag eine neue Version poste.
Vielen Dank für die Meldung.
vG Looxer
Das klingt sehr gut. Danke. Sind in der neuen Version dann alle Neuerungen enthalten?
Wäre es eventuell einen Punkt einzufügen, damit man eine solltempvorgabe an den Regler senden kann? Sprich, dass mein anderes Script die neue Solltempvorgabe in dein Script schreiben kan? Denn leider funktioniert das so mit der manuellen Vorgabe nicht. Danke.
-
Sind in der neuen Version dann alle Neuerungen enthalten? `
Hi,folgende Bugfixes und Ergänzungen sind enthalten:
// Version 2.00b03 10.02.2018 - dritte Beta //.............................Manuelle Temperaturen werden bei Scriptstart ignoriert/zurückgesetzt //.............................Thermostabtypetab Position 4 auf Position 8 (nach den Wandthermosteten) verschoben //.............................NoneHMTab - Fuellen der Position 12 in Controltab falsch (mit 0 ersetzt) //.............................Bei gleichen Zeiten im schedule von verschiedenen Räumen kam es dazu, dass nicht geschaltet wurde. Eine Zeitverzögerung eingebaut //.............................externe Dateiausgabe bei manuellen Aenderungen hinzugefügt (writelog) //.............................Fehler in Routine Sensor Change bei direktvernuepften Fenstersensoren beseitigt. //.............................Fehler bei den Subscriptions fuer Feiertage fuehrte zu Warnmeldungen, wenn kein Feiertagsadapter genutzt wurde
Wäre es eventuell einen Punkt einzufügen, damit man eine solltempvorgabe an den Regler senden kann? Sprich, dass mein anderes Script die neue Solltempvorgabe in dein Script schreiben kan? Denn leider funktioniert das so mit der manuellen Vorgabe `
ich denke, dass das mit den jetzingen Mitteln gehen sollte.
Dabei muessen 2 Datenpunkte beachtet werden.
View_Manually_Adjusted - hier kann die Temperatur eingegeben werden
View_ManTemp_Validity - hier muss die Ablaufzeit der Temp eingestellt werden: Das Format muss so aussehen: 2018/03/31 16:54:34
kannst du das mal probieren ?
vG Looxer
-
Sind in der neuen Version dann alle Neuerungen enthalten? `
Hi,folgende Bugfixes und Ergänzungen sind enthalten:
// Version 2.00b03 10.02.2018 - dritte Beta //.............................Manuelle Temperaturen werden bei Scriptstart ignoriert/zurückgesetzt //.............................Thermostabtypetab Position 4 auf Position 8 (nach den Wandthermosteten) verschoben //.............................NoneHMTab - Fuellen der Position 12 in Controltab falsch (mit 0 ersetzt) //.............................Bei gleichen Zeiten im schedule von verschiedenen Räumen kam es dazu, dass nicht geschaltet wurde. Eine Zeitverzögerung eingebaut //.............................externe Dateiausgabe bei manuellen Aenderungen hinzugefügt (writelog) //.............................Fehler in Routine Sensor Change bei direktvernuepften Fenstersensoren beseitigt. //.............................Fehler bei den Subscriptions fuer Feiertage fuehrte zu Warnmeldungen, wenn kein Feiertagsadapter genutzt wurde
Wäre es eventuell einen Punkt einzufügen, damit man eine solltempvorgabe an den Regler senden kann? Sprich, dass mein anderes Script die neue Solltempvorgabe in dein Script schreiben kan? Denn leider funktioniert das so mit der manuellen Vorgabe `
ich denke, dass das mit den jetzingen Mitteln gehen sollte.
Dabei muessen 2 Datenpunkte beachtet werden.
View_Manually_Adjusted - hier kann die Temperatur eingegeben werden
View_ManTemp_Validity - hier muss die Ablaufzeit der Temp eingestellt werden: Das Format muss so aussehen: 2018/03/31 16:54:34
kannst du das mal probieren ?
vG Looxer `
Also ich habe jetzt einmal folgendes gemacht:
1. Ich lasse alle 2 Stunden das aktuelle Datum per kleinem Script auf "View_ManTemp_Validity" senden.
2. Die Gültigkeit habe ich in deinem Script einmal mir 23 Stunden angegeben.
3. Die "neue Solltempvorgabe" lasse ich alle 15 Minuten nun zu deinem Script unter "View_Manually_Adjusted" senden.
Ich werde das mal einfach heute so laufen lassen und Morgen, oder heute Abend einmal berichten, wie der Verlauf und die Temperaturkurven aussehen.
Ich hätte da noch eine Frage:
In wie weit greift die manuelle Temperaturvorgabe in deinem Script eigentlich den Rest an? Also Wenn man immer eine manuelle Temeratur setzt, was wird dadurch alles beeinträchtigt ( Kalender, Abwesenheit, Fenstererkennung,…. )?
Muss der Button " Anwesenheit" immer da sein?
-
Also, ich hab das jetzt einmal versuchsweise laufen lassen und auch einmal mit den Zeiten gespielt, aber es gibt mit dieser Möglichkeit leider viele Probleme:
1. Wenn eine manuelle Temp gestellt ist, wird der Wochenplan ausser Kraft gesetz.
2. Es ist wirklich sehr schwierig alles Zeitlich aufeinander abzustimmen und es kommt sehr oft zu zeitlichen Verschiebungen.
Es wäre wirklich geschickter, auf eine State zu schreiben, die von deinem Script verwendet wird und dein Script auf den Regler schreibt.
-
Es wäre wirklich geschickter, auf eine State zu schreiben, die von deinem Script verwendet wird und dein Script auf den Regler schreibt. `
Hi,dann verstehe ich die Logik noch nicht so ganz. Manuelle Temp und Wochenplan sind ja 2 unterschiedliche Dinge.
Was soll denn das Kriterium sein für die Rückkehr vom Wochenplan ?
vG Looxer
-
Es wäre wirklich geschickter, auf eine State zu schreiben, die von deinem Script verwendet wird und dein Script auf den Regler schreibt. `
Hi,dann verstehe ich die Logik noch nicht so ganz. Manuelle Temp und Wochenplan sind ja 2 unterschiedliche Dinge.
Was soll denn das Kriterium sein für die Rückkehr vom Wochenplan ?
vG Looxer `
Guten Morgen,
Ich versuche es einmal zu erklären:
1. Dein Script ist der Hauptteil. Es setzt die Temperaturen über den Wochenplan
2. Ich greife die aktuelle einzustellende Temp von deinem Script ab und rechne die Temperatur um ( mittels eines anderen Scriptes )
3. Da dein Script die Temperatur zum Regler sendet, muss ich die neu errechnete Temp wieder in dein Script integrieren, somit kann dein Script die Temp wieder zum Regler senden und dein Script ganz normal weiter arbeiten.
4. Du sendest ja an einer Zentralen Stelle alle Temp´s zu den Reglern, dies müsste auf einen State gesetzt werden. Und ein weiteres State hinzugefügt werden wo dein Script noch eine neue Temp bekommt, die es dann anstatt der Tempvorgabe in deinem Script zum senden an den Regler nimmt.
Also kurz gesagt: Dein Script gibt die Tempvorgabe und sendet sie auf einem State, nennen wir ihn einmal AUSGANG, diesen AUSGANG verwende ich und schicke die verarbeitet Temp wieder auf einen State, nennen wir ihn EINGANG. Und erst dann schickt dein Script den EINGANG an die Regler. Somit sendet dein Script nur die Temp des State EINGANG an die Regler. Das ganze andere Script sollte unberührt weiter funktionieren.
Etwas kompliziert das ganze, aber ich versuche gerade eine Regelung aufzubauen.
-
3. Da dein Script die Temperatur zum Regler sendet, muss ich die neu errechnete Temp wieder in dein Script integrieren, somit kann dein Script die Temp wieder zum Regler senden und dein Script ganz normal weiter arbeiten. `
Der im PI-Regler-Script errechnete Sollwert sollte direkt zum Thermostaten gesendet werden, d.h. dieser Thermostat sollte aus dem Skript von @Looxer ausgeklammert werden (aus Gewerk entfernen).