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.
    • MeinzIsAs
      MeinzIsAs last edited by

      Hallo nochmal,

      ich hab mich mal eine Weile mit dem Script beschäftigt. Ich denke die Werte werden immer nur an das erste Gerät geschrieben. Da die IDThermostat nur mit dem ersten gefundenen beschrieben wird. Meine Javakenntnisse reichen nicht aus, um das zu beheben. Vielleicht kann sich das ja mal wer ansehen.

          // delay in Minuten ermitteln und Thermostat ID ermitteln
          for (var x in ControlTab ) {
              if (ControlTab[x][0] === room ) {
                  delay = ControlTab[x][12];
                  IDThermostat = ControlTab[x][1];
                  break;
              }
          }
      
      // Fenster wurde geoeffnet
          if (FensterRaumStatus(room) === true ) { // Mindestens ein Fenster ist geoeffnet
      log("SensorChange Raum  ist offen")
              setOwnState(path + "." + room + ".RaumStatusFenster", true);  // Raum ist geoeffnet 
              SaveStatus("Fenster", room,false); // "Fenster offen TemperaturAbsenkung gesetzt";
              if (SensorList[tabNo][9] === false) {  // Sensor ist nicht direktverknuepft 
                  if (debug) { log("Routine SensorChange : Raum " + room + " nicht direkt verknuepfter Sensor -  Fenster offen es Temp wird abgesenkt", "info"); }
                  SetTemp(room, FensterAbsenkungsGrenze, IDThermostat, false);
                  writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID - Temp auf Absenkung" + id + " Raum " + room +" auf "+  SensorList[tabNo][7])  ;
              } // endif Sensor ist nicht direktverknüpft
              if (SensorList[tabNo][9] === true ) {  // Sensor ist  direktverknuepft 
                  if (debug) { log("Routine SensorChange : Raum " + room + " direkt verknuepfter Sensor -  Fenster offen es Temp wird vom Thermostat abgesenkt", "info"); }
              }
          }
      

      Vielen Dank

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

        Hallo,
        Ich habe heute einen "Aqara Door and Window" Sensor bekommen.
        Diesen will ich nun am Fenster von Wohnzimmer anbringen.
        IOBroker erkennt ihn auch.
        0c4b5b4c-54af-4576-abd5-72fc36452757-image.png
        Was muss ich aber im Script eintragen, damit das Heinzungsscript den Sensor auch kennt?
        Aktuell sind da nur die Standard Daten drin.
        a3dcd10d-71c2-4656-9a2f-dcbe374e3c47-image.png

        Hoffe es kann mir wer helfen.

        VG
        Lindi

        MeinzIsAs 1 Reply Last reply Reply Quote 0
        • MeinzIsAs
          MeinzIsAs @lindi200000 last edited by

          @lindi200000

          Versuch mal bei Tab 0 den Raum, den du im restlichen Script verwendest ("Wohnzimmer").
          Bei Tab 1 den Pfad des Adapters --> mihome.0.devices
          Bei Tab 2 das Gerät --> magnet_schwarzer balken ☺
          Bei Tab 3 den Datenpunkt --> state
          Bei Tab 4 des Wert, der bei geschlossen geliefert wird --> false
          Bei Tab 5 true, wenn du willst, dass die Temperatur automatisch abgesenkt wird.

          Ich hoffe, das funktioniert so.

          L 1 Reply Last reply Reply Quote 0
          • L
            lindi200000 @MeinzIsAs last edited by

            @MeinzIsAs Danke, das klappt auch fast ganz gut, aber ...
            Ich habe im Wohnzimmer eine Heizungsgruppe. Mit der geht auch eigentlich alles, wenn ich aber das Fenster öffne, dann wird nur eine Heizung abgesenkt, die andere bleibt normal stehen. Schau ich aber in der HM Gruppe, steht da 5 Grad (also abgesenkt). Ich verstehe nicht, wieso die 2. Heizung nicht mit abgesenkt wird.

            MeinzIsAs 1 Reply Last reply Reply Quote 0
            • MeinzIsAs
              MeinzIsAs @lindi200000 last edited by

              @lindi200000

              Sind beide Heizungen in der Gruppe zusammengehängt, oder ist eine davon nicht in der Gruppe?
              Welche Geräte sind in der Gruppe?

              L 1 Reply Last reply Reply Quote 0
              • L
                lindi200000 @MeinzIsAs last edited by

                @MeinzIsAs es sind beide Geräte in der Gruppe. Das Heizungsprogram an sich geht ja auch mit der HM Gruppe.
                In der Gruppe sind nur die 2 Thermostate.

                MeinzIsAs 1 Reply Last reply Reply Quote 0
                • MeinzIsAs
                  MeinzIsAs @lindi200000 last edited by

                  @lindi200000

                  Sprichst Du im Script auch wirklich die Gruppe an und nicht die einzelnen Geräte? Wenn Du die Geräte in der CCU gruppiert hast, solltest Du im Script die Gruppe ansprechen.

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    lindi200000 @MeinzIsAs last edited by

                    @MeinzIsAs danke, das ist es. er nimmt die einzelnen Thermostate und nicht die Gruppe. muss ich jetzt mal schauen wie ich es mache, das er die Thermostate nicht einzeln nimmt, sondern die Gruppe. Das Gerät an sich kann ich nicht aus der Liste nehmen, da in anderen Räume die Geräte einzeln existieren.

                    MeinzIsAs 1 Reply Last reply Reply Quote 0
                    • MeinzIsAs
                      MeinzIsAs @Conquest last edited by

                      @Conquest

                      Hallo, falls Du noch keine Antwort für dieses Problem hast, du musst wahrscheinlich die Werteliste der Auswahlfelder anpassen. Es muss für jeden Text auch einen passenden Wert geben. Vorsicht bei den Strichpunkten. Keine Leerzeichen dazwischen, sonst funktioniert es nicht.

                      Werteliste.PNG

                      C 1 Reply Last reply Reply Quote 0
                      • MeinzIsAs
                        MeinzIsAs @lindi200000 last edited by

                        @lindi200000

                        Hier mal die Config für das auslesen der Gruppe. Du musst Dir nur eine neue Instanz von hm.rpc anlegen.

                        config_Gruppe.PNG

                        Beim einzelnen schreiben in den anderen Räumen wirst Du dann das gleiche Problem haben, wie jetzt.
                        Da ist noch ein Fehler im Script. Die Absenktemperatur wird nur zum ersten gefundenen Gerät geschrieben.
                        Ich hab das weiter oben schon mal gepostet. Leider sieht es so aus, als wäre der Entwickler nicht mehr aktiv.
                        Ich bin gerade dabei, mir ein Script zu bauen, dass für mich ausreichend ist. Ich brauche nicht so viele Funktionen.
                        Urlaub, Fenster und Zeiten sind mir erstmal genug. Da ich aber erst angefangen habe mit Java, dauert das wohl ne weile.
                        Wenigstens der Urlaubsmodus funktioniert schon. ☺

                        L 1 Reply Last reply Reply Quote 0
                        • L
                          lindi200000 @MeinzIsAs last edited by

                          @MeinzIsAs die Gruppe habe ich schon in IOBroker drin, drum ging ich auch davon aus, das script nimmt die Gruppe, stattdessen wurden aber die einzelnen Thermostate genommen. Durch HM sind die auch im Raum Wohnzimmer.

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

                            Jetzt weis ich auch wieder was damals war.
                            Die Gruppe wird vom Script nicht erkannt.
                            Ich habe eine CCu auf einen Raspbery, laut CCU wird die Gerätegruppe als Typ HmIP-HEATING erkannt.
                            IOBroker erkennt die Gruppe auch:
                            3c12282f-3e0a-4940-8741-e408f37c1c9f-image.png
                            Im Script habe ich unter ThermostattypTab folgendes stehen:

                            ThermostatTypeTab[0]  = ['hm-rpc.2.',  'HmIP-HEATING'      , 'Heizungsgruppe'             ,'VD',   '1.SET_TEMPERATURE'      ,   'frei',        '1.MANU_MODE',              true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           5,                                            0];
                            

                            Die Gruppe wird aber nicht erkannt. Ich gehe davon aus, das der Typ nicht passt. Weis aber nicht was ich da noch eintragen soll.

                            MeinzIsAs 2 Replies Last reply Reply Quote 0
                            • N
                              nicobob last edited by nicobob

                              Hallo zusammen,

                              hat jmd von euch erfolgreich Sensoren von wired HM-Geräten hinzugefügt? Ich habe damit Probleme und weiß aktuell nicht woran es liegt. Alle anderen Sensoren arbeiten einwandfrei und stoßen bei Änderung ggfs. eine Anpassung der Temperatur an.
                              Es geht um folgenden Eintrag, der eigentlich greifen müsste:
                              8ac2f401-e134-47a6-82bf-855e6c4411a7-grafik.png

                              Statt dem Gewerk Verschluss habe ich alle Sensoren dem Gewerk "Fenster" zugeordnet, was ich im Skript in den Einstellungen angepasst habe.
                              Die Sensoren werden seitens ioBroker oder des adapters hm-rpc richtig erkannt. Die Weiterverarbeitung im Skript erfolgt allerdings nicht. Bei Öffnung des Fensters finde ich keinen Log-Eintrag, dass sich der Raumverschlussstatus geändert hat.
                              3befeff9-8cdd-48b3-8cdd-8044078f8f2f-grafik.png

                              Hat jmd eine idee, was ich noch anpassen kann/muss, um die Steuerung glattzuziehen?

                              Danke vorab für jede Hilfe und beste Grüße
                              Nico

                              MeinzIsAs 1 Reply Last reply Reply Quote 0
                              • MeinzIsAs
                                MeinzIsAs @lindi200000 last edited by

                                @lindi200000

                                Welche Thermostattypen hast Du verbaut in der Gruppe?

                                1 Reply Last reply Reply Quote 0
                                • MeinzIsAs
                                  MeinzIsAs @nicobob last edited by

                                  @nicobob
                                  Hast Du Verschluss im gesamten Script gegen Fenster ausgetauscht? Wir in der CCU die gleiche Type
                                  "HMW-Sen-SC-12-DR" angezeigt?

                                  N 1 Reply Last reply Reply Quote 0
                                  • MeinzIsAs
                                    MeinzIsAs @lindi200000 last edited by MeinzIsAs

                                    @lindi200000

                                    Hast Du die Gruppe auch zu den Gewerken hinzugefügt?
                                    Dann könnte die Type auch so etwas wie "HM-CC-VG-1" sein.

                                    L 1 Reply Last reply Reply Quote 0
                                    • C
                                      Conquest @MeinzIsAs last edited by

                                      @MeinzIsAs sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                      @Conquest

                                      Hallo, falls Du noch keine Antwort für dieses Problem hast, du musst wahrscheinlich die Werteliste der Auswahlfelder anpassen. Es muss für jeden Text auch einen passenden Wert geben. Vorsicht bei den Strichpunkten. Keine Leerzeichen dazwischen, sonst funktioniert es nicht.

                                      Werteliste.PNG

                                      Hallo ,
                                      nein hatte noch keine Antwort erhalten.
                                      So sieht mein Textfeld und Werteliste aus. Was müsste ich da jetzt ändern? Muss dann auch noch was im Script geändert werden?

                                      screenshot-192.168.178.46-8082-2019.05.06-16-53-07.png screenshot-192.168.178.46-8082-2019.05.06-16-55-25.png

                                      MeinzIsAs 1 Reply Last reply Reply Quote 0
                                      • MeinzIsAs
                                        MeinzIsAs @Conquest last edited by

                                        @Conquest

                                        Ganz einfach. Die Werte müssen 1:1 den Texten entsprechen.

                                        C 1 Reply Last reply Reply Quote 0
                                        • C
                                          Conquest @MeinzIsAs last edited by Conquest

                                          @MeinzIsAs sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                          @Conquest

                                          Ganz einfach. Die Werte müssen 1:1 den Texten entsprechen.

                                          Ok. Verstehe aber trotzdem nicht warum es so nicht funktioniert. Die View ist vom Startpost importiert und ich habe an den Daten nix geändert.
                                          Außerdem habe ich das in der Anleitung gefunden:

                                          Temperatureinstellungen im Profil
                                          Neben dem Wochenplan werden In den Profilparametern Temperatur Anhebungen /Absenkungen
                                          sowie die Mindesttemperatur eingestellt. Auch ob ein Urlaub Anwesend auf die Feiertagseinstellung des
                                          Wochenplans zurückgreifen soll, wird im Profil eingestellt.
                                          Es gibt zwei unterschiedliche Arten von Temperaturen.

                                          1. Anhebung/Absenkung und zweitens absolute Temperaturangaben. Die
                                            Anhebungen/Absenkungen haben immer einen Bereich von 0 – +5 und 0 - -5. Somit können
                                            Anhebungen/Absenkungen auch zum gegenteiligen Ergebnis führen. Es kann also aus einer
                                            eigentlichen Absenkung eine Anhebung resultieren, wenn eine Minus-Temperatur eingestellt
                                            wurde. Die Eingabe von 0 heisst, dass weder Anhebung noch Absenkung erfolgen soll.

                                          2. Absolute Temperaturen haben immer einen Bereich von 12,5 bis 30. Alle Werte unterhalb von
                                            12,5 werden als Absenkungen vom Thermostat interpretiert (z.B. bei „Fenster-Offen“ für direkt
                                            verknüpfte Geräte)
                                            Anmerkung:
                                            Im View werden Widgets für Zeit und Temperaturen verwendet, die es ermöglichen aus einer
                                            Auswahlliste von Werten zu selektieren. Dies soll eine Touch-Unterstützung ermöglichen.
                                            Für Temperaturen enthalten diese Widgets intern eine Wertezuweisung was dazu führt, dass die
                                            Temperaturen nicht 1:1 in den Datenpunkten gespeichert wird. Falls andere Widgets verwendet werden
                                            sollen lässt sich das Programm umstellen, so dass keine Umrechnung für Werte Liste erfolgen muss.
                                            Einstellung im Programm: var VerwendungSelectValue = „true“
                                            Wenn die Einstellung „true“ ist, dann wird umgerechnet auf die Werteliste. Wenn die Einstellung
                                            „false“ ist, dann erfolgt keine Umrechnung. Damit können andere Widgets für die Temperaturen
                                            verwendet werden

                                          Wenn ich es so mache wie du sagst müsste ich den Datenpunkt im Script auf "false" setzen oder?

                                          MeinzIsAs 1 Reply Last reply Reply Quote 0
                                          • MeinzIsAs
                                            MeinzIsAs @Conquest last edited by

                                            @Conquest

                                            Die Werteliste weist bei der Auswahl des Textes den Wert einfach zu. Sprich Text 1 = Wert 1. Die Absenkung/Anhebung ändert nur den Wert, der als Solltemperatur an die CCU geschrieben wird.

                                            Du kannst die Text- und Werteliste auch bei 12.5 anfangen.

                                            Sieht dann so aus:
                                            Texte:
                                            12,5
                                            ;13,0
                                            ;13,5
                                            usw.

                                            Werte:
                                            12.5;13;13.5;usw.

                                            Achtung die Werte müssen einen Punkt als Dezimalzeichen haben.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            844
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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