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 goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

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

      @Kochenmitmusik

      Du musst im ioBroker mal unter enum.rooms bei Aufzählungen die Räume mit dem Mülleimer löschen. Das sind noch alte Bezeichnungen, die beim Sync nicht gelöscht werden.

      Dann diese Objekte löschen und Script neu starten, dann sollte es weg sein.

      Grüße

      Brati

      @loxxer01

      Ich hatte noch ein Problem mit der Absenkung bei Türöffnung. Es funzt jetzt nach Einstellung der "7. Direktverknüpfung" von "true" auf "false". Vielleicht kann das noch in die sehr gute Doku. Eigentlich steht da ja alles drin :).

      Grüße

      Brati

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

        @Kochenmitmusik

        In Deinem, extra zu diesem Thema eröffneten Thread warten wir auf Antworten von Dir.

        Dein „Problem“ hat nichts mit dem Heizungsscript zu tun - es „leidet“ unter einer Fehlkonfig / einem Bug auf Deiner CCU.

        Gruß,

        Eric

        Von unterwegs getippert

        1 Reply Last reply Reply Quote 0
        • A
          Adnim last edited by

          @eric2905:

          Hi,

          genau das meine ich. Der betreffende Raum wird zeitgleich mit anderen Räumen geschaltet, und nur dieser ändert die Soll-Temp nicht.

          Ich kriege das ja so gar nicht mit. Immer wenn ich dann mal auf die aktuellen Werte schaue, sehe ich dann, das es nicht passt. Script-Neustart und sofort wird der Raum nachgezogen.

          Logging mach ich mal an.

          Später werde ich den Raum mal um 5 Minuten verschieben. Mal sehen, ob das was bringt.

          Gruß,

          Eric

          Von unterwegs getippert `

          Hi

          habe mal rumgespielt indem ich nur 2 Räume im Script eingetragen habe,danach funzt anscheinend alles Reibungslos. Würde auch gerne mal ein Delay hier testen bekomme das aber nicht so hin.

          hier wird im Script das Thermostat geschaltet? (Zeile 1396)

           // jetzt die Temperatur dem Thermostat uebermitteln
              SetTemp(roomName, ScheduledSollTemp, id, true);  // jetzt die Temperatur schalten
          

          Wenn ich das änder in :

           SetTempDelayed(roomName, ScheduledSollTemp, id, true,15000);
          

          bekomm ich nen error im Log. Kann man hier einen Delay setzten und wie? Edit: Bzw bringt mir das überhaupt etwas da ja dann alle Räume den gleichen Delay bekommen, für jeden ein unterschiedlicher wäre besser

          Edit2: Habe im Wohnzimmer 4xTFK, 2xThermostate und 1xWandthermostat (keine Direktverknüpfungen). Sobald ich diesen aussen vorlasse Funzt es

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

            @Adnim:

            hier wird im Script das Thermostat geschaltet? (Zeile 1396) `
            Nein, in Zeile 482 wird der Sollwert an das Thermostat gesendet (glaube ich)

                setState(stateId, val);
            
            
            1 Reply Last reply Reply Quote 0
            • A
              Adnim last edited by

              ok habe es nicht lassen können, das habe ich ergoogelt, könnte das funzen error habe ich nicht?

              var delaymin1 = 5;
              var delaymax1 = 10;
              var zufallsdelay = Math.floor(Math.random() * (delaymax1 - delaymin1)) + delaymin1;
              
              function setOwnState(stateId, val) {
                  if (stateId.indexOf(path) !== -1 && cron === 0) {
                      if (! ownStateChanges[stateId]) ownStateChanges[stateId] = 1;
                          else ownStateChanges[stateId]++;
                  }
                  setStateDelayed(stateId, val,true,zufallsdelay);
              

              edit: nope das führt zu einer endlosschleife

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

                Leute, hab ich es richtig verstanden, dass die Solltemperatur die zum Regler gesendet wird nur im VIS einzustellen ist? Und diese nicht im Programm an den Regler gesendet wird?

                1 Reply Last reply Reply Quote 0
                • P
                  PicNic last edited by

                  Hallo Looxer,

                  seit meinem letzten (hausgemachten) Problem läuft alles wie am Schnürchen. Und da nun alles fein ist, kommen einem auch Ideen, wie es noch feiner laufen könnte 😉

                  Ich frage mich, ob es möglich wäre pro Verschluss ein Delay einzutragen die das Skript wartet um am zugehörigen Thermostat die Temperatur abzusenken.

                  Das wäre bei uns z.B. die Terrassentür, oder die Haustür.

                  Bei der Haustür zum Beispiel, wenn die Tür zum alleinigen Verlassen des Hauses nur kurz auf und direkt wieder zu geht oder auch beim Verlassen des Hauses mit Kindern (ja, ja … das kann dann gut auch mal 30 Sekunden dauern bis sich die Tür wieder schließt). Heißt, dass die Temperatur erst abgesenkt werden soll, wenn die Tür z.B. länger als 30 Sek. geöffnet ist um Einkäufe reinzutragen oder die sehr sperrige in einen Teppich eingewickelte Leiche in den vor der Tür wartenden Transporter zu verladen ...

                  Wäre so etwas möglich?

                  Danke und viele Grüße

                  PicNic

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

                    @quorle:

                    hab ich es richtig verstanden, dass die Solltemperatur die zum Regler gesendet wird nur im VIS einzustellen ist? Und diese nicht im Programm an den Regler gesendet wird? `
                    Nein, da Du eine Reglerkaskade möchtest, wird die Solltemperatur, die zum Regler gesendet wird, im Skript gesendet. Der Vorgabesollwert für den Hilfsregler (Skript) ist ein virtueller Datenpunkt ("javascript.0…"), dessen Wert im VIS einzustellen ist.

                    1 Reply Last reply Reply Quote 0
                    • S
                      Smartuser last edited by

                      Hallo Zusammen,

                      kurze Zwischenfrage 🙂

                      Gibt es bei den "Zeit-Widgets" eine Möglichkeit die Sekunden nicht mit anzuzeigen?
                      1853_unbenannt.png
                      Diese Option verhindert ja nur dass die Sekunden im Popup nicht angezeigt werden.

                      Würde das nicht Sinn machen die dann auch komplett auszublenden?

                      Oder geht das irgendwo anders?

                      Gruß

                      1 Reply Last reply Reply Quote 0
                      • A
                        Adnim last edited by

                        Hi

                        hier noch mehr gefilterte Logs, überschreiten ungepackt leider die 2mb grenze daher als archiv; vielleicht hilfts…
                        4760_log25.02.rar

                        1 Reply Last reply Reply Quote 0
                        • U
                          UweS last edited by

                          Hallo

                          Jetzt konnte ich ein schon gelöstes Problem wieder erkennen.

                          Die Abwesenheitserkennung ist aktiviert und funktioniert. D.h. wenn alle G tags außer Haus sind geht der Status Jemand Da auf false.

                          Ich bin heute um 14:46 nach Hause gekommen und der Status hat sich auf true gesetzt, allerdings im Heizplan ist zwar das Häckchen auf anwesend aber die Temp passt sich nicht an.

                          4787_screenshoot_heizung.png
                          4787_screenshoot_heizplan.png

                          Logs kann ich nachliefern.

                          Was mir jetzt noch aufgefallen ist.

                          Wenn ich im VIS z.B. Partymodus anwähle dann ändert sich die Temp und wenn ich diesen abwähle passt die eingestellte Temp wieder.

                          Vielleicht hilft das ja für die Fehlersuche.

                          Vielen Dank für die Hilfe

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

                            Hi Looxer,

                            @looxer01:

                            @eric2905:

                            Später werde ich den Raum mal um 5 Minuten verschieben. Mal sehen, ob das was bringt. `
                            Das könnte sogar helfen. Ich hatte mal darüber nachgedacht den Schedule immer ein paar Sekunden zu verschieben damit es keine Konflikte gibt.

                            Wenn du das erfolgreich testest, dann weiss ich was zu tun ist. `
                            ich habe jetzt (nach Test mit einem Raum) alle Räume mit jeweils 1 Minute Verschiebung laufen. Der Test mit allen 9 Räumen läuft nun seit fast 2 Wochen und seitdem habe ich keine "Fehl-Einstellungen" mehr festgestellt. Alle Räume schalten zu den definierten Zeiten (lasse mich derzeit jeweils per Pushover informieren).

                            Gruß,

                            Eric

                            1 Reply Last reply Reply Quote 0
                            • S
                              Stefan_1969 last edited by

                              Hallo zusammen!

                              Von mir auch mal ein grosses Lob! Hab das Script und visu jetzt seit drei, vier Wochen in Betrieb und es funktioniert soweit gut. Auch Dank der Tipps, die es hier immer wieder gibt.

                              Hut ab und Daumen hoch!

                              Viele Grüsse - Stefan

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

                                Hi,

                                leider bin ich zur Zeit beruflich ziemlich landunter. Habt ihr sicher an meinen fehlenden Antworten gemerkt.

                                Liegt eben daran, dass auch die Wochenenden mit Arbeitszeiten versehen sind. Ich hoffe, dass sich das bald wieder aendert.

                                Das Thema der nicht ausgefuehrten Schaltungen zu den geplanten Zeiten hat sich ja geklärt. Gleiche Uhrzeiten des schedules können zu Problemen führen.

                                Zwei zusätzliche Zeilen sollten hier Abhilfe veschaffen. Ich waere dankbar, wenn das jemand testen könnte.

                                (Es wird eine zufällige Zeitverschiebung zwischen 1 und 30 Sekunden eingeplant.)

                                Hierzu einfach die Funktion austauschen.

                                vG Looxer

                                ! ! //----------------------------------------------------------------------------------------------------- // Funktion ExecuteTempDetermination checkt ob eineThermostat/Raum Temperatur manuell angpasst wurde //----------------------------------------------------------------------------------------------------- function ExecuteTempDetermination(roomName, id) { var ActiveRoomProfile; var ScheduledSollTemp; ! // Findung des aktuellen RaumProfiles ActiveRoomProfile = ActiveProfile(roomName); // Ermittlung des aktiven Raumprofils //die geplante Soll Temperatur aus dem Raumschedule aus dem aktuellen Profil ermitteln ScheduledSollTemp = SelectSwitchTime(roomName, ActiveRoomProfile, "CurrSollTemp",id); // Ermittlung der geplanten Solltemperatur if (debug) { log("Routine ExecuteTempDetermination: raum " + roomName + "Solltemp nach Switchtime: " + ScheduledSollTemp + " Findung " + Source_SchedulePoint, "info"); } // Schauen ob die ermittelte Temperatur angepasst werden muss z.B. party Gaeste etc ScheduledSollTemp = OverruleSollTemp(roomName, ActiveRoomProfile, ScheduledSollTemp, id); //Global und Profilparameter koennen den schedule uebersteuern if (debug) { log("Routine ExecuteTempDetermination: raum " + roomName + "Solltemp nach overrule: " + ScheduledSollTemp+ " Findung " + Source_GlobalParameter, "info"); } ! // jetzt die Temperatur dem Thermostat uebermitteln SetTemp(roomName, ScheduledSollTemp, id, true); // jetzt die Temperatur schalten ! if (NextSchedules[roomName]) { if (debug) { log("Schedule gelöscht für " + roomName, "info"); } clearSchedule(NextSchedules[roomName]); NextSchedules[roomName] = null; } // Mo_00:00:00 var schedArr = Source_SchedulePoint.split("_"); // [0]=Mo, [1]=00:00:00 var ZufallSek = Math.floor(Math.random() * (30 - 1 + 1)) + 1; schedArr[1] = schedArr[1].substr(0,6) + ZufallSek; var nextSchedule = parseInt(schedArr[1].substr(6, 2), 10) + " " + parseInt(schedArr[1].substr(3, 2), 10) + " " + parseInt(schedArr[1].substr(0, 2), 10) + " * * *"; if (debug) { log("Setze Schedule für nächste Planzeit " + nextSchedule + " für Raum " + roomName, "info"); } NextSchedules[roomName] = schedule(nextSchedule, function() { if (debug) { log("Schedule Triggered für nächste Planzeit für Raum " + roomName, "info"); } TriggerUpdate(roomName); }); } // ende Funktion !

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

                                  Schaue ich mir mal an.

                                  Snapshot, basteln, fertig.

                                  Melde mich.

                                  Gruß,

                                  Eric

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    Adnim last edited by

                                    Juhu Danke Looxer mit dem neuen Code-schnipsel läuft es jetzt auch bei mir Gut!

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

                                      @eric2905:

                                      Schaue ich mir mal an.

                                      Snapshot, basteln, fertig.

                                      Melde mich. `
                                      bin jetzt das gekommen, das einzubauen.

                                      Läuft jetzt ohne manuelle Verschiebung.

                                      Gruß,

                                      Eric

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

                                        @eric2905:

                                        Läuft jetzt ohne manuelle Verschiebung. `
                                        super danke euch fürs update.

                                        Ich denke, dass ich es am Ende nochmal anders einbauen werde. (ohne Zufallszahlen)

                                        Damit dürften auch keine zufälligen Überschneidungen auftreten.

                                        vG Looxer

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

                                          Gib mir ein paar Tage zum Testen - habe es erst heute eingebaut.

                                          Gruß,

                                          Eric

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

                                            @looxer01:

                                            Zwei zusätzliche Zeilen sollten hier Abhilfe veschaffen. Ich waere dankbar, wenn das jemand testen könnte.

                                            (Es wird eine zufällige Zeitverschiebung zwischen 1 und 30 Sekunden eingeplant.) `

                                            Hi Looxer,

                                            Ich habe die Änderung am vergangenen Wochenende eingespielt, nachdem ich wegen häufig auftretender Fehlern beim Schedulewechsel wieder auf die alte Version zurückgegangen war. Seitdem läuft die V2 absolut stabil. Vielen Dank!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            992
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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