Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      looxer01 last edited by

      @Lachi:

      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

      1 Reply Last reply Reply Quote 0
      • Q
        quorle last edited by

        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 😉

        1 Reply Last reply Reply Quote 0
        • J
          jeti last edited by

          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ß

          1 Reply Last reply Reply Quote 0
          • Q
            quorle last edited by

            @jeti:

            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

            1 Reply Last reply Reply Quote 0
            • J
              jeti last edited by

              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?

              1 Reply Last reply Reply Quote 0
              • Q
                quorle last edited by

                @jeti:

                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-)

                1 Reply Last reply Reply Quote 0
                • J
                  jeti last edited by

                  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 ichHeat_1unter````
                  zwave.0.NODE2.THERMOSTAT_SETPOINT

                  
                  Danke und Gruß
                  [6556_node2.png](/assets/uploads/files/6556_node2.png)
                  1 Reply Last reply Reply Quote 0
                  • Q
                    quorle last edited by

                    @jeti:

                    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 ichHeat_1unter````
                    zwave.0.NODE2.THERMOSTAT_SETPOINT

                    
                    Danke und Gruß `  
                    

                    Versuch es einmal so:

                    NoneHMTab[1] = ['Buero',         'ZWAVE.0',                      'NODE2',        'THERMOSTAT_SETPOINT.HEAT_1',            12];
                    
                    1 Reply Last reply Reply Quote 0
                    • J
                      jeti last edited by

                      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
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • L
                        looxer01 last edited by

                        Hi,

                        @jeti:

                        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

                        1 Reply Last reply Reply Quote 0
                        • L
                          looxer01 last edited by

                          @quorle:

                          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

                          1 Reply Last reply Reply Quote 0
                          • L
                            looxer01 last edited by

                            @Lachi:

                            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

                            1 Reply Last reply Reply Quote 0
                            • Q
                              quorle last edited by

                              @looxer01:

                              @Lachi:

                              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.

                              1 Reply Last reply Reply Quote 0
                              • L
                                looxer01 last edited by

                                @looxer01:

                                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
                                
                                

                                @quorle:

                                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

                                1 Reply Last reply Reply Quote 0
                                • Q
                                  quorle last edited by

                                  @looxer01:

                                  @looxer01:

                                  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
                                  
                                  

                                  @quorle:

                                  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?

                                  1 Reply Last reply Reply Quote 0
                                  • Q
                                    quorle last edited by

                                    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.

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      looxer01 last edited by

                                      @quorle:

                                      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

                                      1 Reply Last reply Reply Quote 0
                                      • Q
                                        quorle last edited by

                                        @looxer01:

                                        @quorle:

                                        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.

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

                                          @quorle:

                                          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).

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            looxer01 last edited by

                                            @quorle:

                                            Also kurz gesagt: Dein Script gibt die Tempvorgabe und sendet sie auf einem State, `
                                            Hi,

                                            also, dann sollte das so funktionieren.

                                            Relevante Datenpunkte

                                            die aktuell geplante Temperatur (lt Wochenplan) befindet sich in Feld: Source_Last_Temp

                                            Die manuell eingegebene Temp befindet sich in Feld: View_Manually_Adjusted

                                            Vorrausetzung:

                                            Du stellst im View die Dauer der manuellen Temp auf "0". Damit wird erst beim nächsten Planwechsel eine neue Temp lt Wochenplan eingestellt.

                                            1. Dein Programm nimmt die aktuell geplante Temp: Source_Last_Temp und errechnet die neue Temp nach deinen Vorgaben

                                            2. Die von dir neu errechnete Temp wird von deinem Script in View_Manually_Adjusted eingestellt

                                            3. Beim nächsten geplanten Wechsel setzt das Heizungsscript die View_Manually_Adjusted auf "0"

                                            4. Über Subscription fängt dein script diese Aenderung ab (wenn auf null gesetzt) und startet erneut mit Schritt 1

                                            oder hattest du das so schon probiert ?

                                            vG Looxer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            493
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            climate heating javascript template
                                            115
                                            1127
                                            336769
                                            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