Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

[Vorlage] Heizungsthermostatsteuerung 2.1 - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplateheatingclimate
1.1k Beiträge 115 Kommentatoren 396.5k Aufrufe 61 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #233

    @PicNic:

    Wenn ich das Fenster nun schließe (im Log um 12:23:07 Uhr), dann wird das das vom Skript erkannt, die Temperatur wird aber nicht wieder auf die ursprüngliche angehoben.

    Das Skript läuft dann in Dauerschleife, weil es irgendeine Form von Delay erkannt hat. `
    Hi,

    da war ein Fehler in der Zuweisung für "NichtHM-Geräte".

    Bitte tausche einmal folgenden Code aus. Feedback wäre super. Dann baue ich es für die nächste Version ein.

    ! ```
    for (var b in NoneHMTab) { roomName = NoneHMTab[b][0]; if (roomName !== "initial" && RoomListUsage(roomName)) { id = NoneHMTab[b][1] + '.' + NoneHMTab[b][2] + '.' + NoneHMTab[b][3]; var NoneHMObj = getObject(id); if (NoneHMObj && NoneHMObj.common && NoneHMObj.common.name) { FullName = NoneHMObj.common.name; } else { FullName = "n/a"; } devtype = "NoneHM"; if (debug ) {log("Routine getdevice fuer " + roomName, "info");} ! CreateStates(roomName, devtype); // Lege die states an ! roomNoSpace = roomName.replace(/\s/g, "_"); // 0 = room 1 = id 2 = devtype 3 = FullName 4 ID Extract 5 = Type des Geraetes 6 = DP SollTemp 7 = Manu/Auto 8 = Steuerung zentral 9 = DP Ist-Temperatur 10 = DP MANU Check 11=Ventil Offen 12= Delay nach Verschluss zu ControlTab[y] = [roomNoSpace, id, devtype, FullName, NoneHMTab[b][2], 'HT', NoneHMTab[b][3], false, false, false, false, NoneHMTab[b][4], 0 ]; y++; // subscription für Aenderung auf Aenderung der Raumtemperatur des Thermostates zu reagieren on({id: id, change: 'ne'}, function(obj) { //if (obj.state.val !== obj.oldState.val) { // Nur bei Aenderungen ThermostatChange(obj.id); //} // End - react on change }); // ende on id log("Routine GetDevices fuer NoneHM Thermostate " + roomName +" - " + NoneHMTab[b], "info"); rooms[roomName] = true; } // endif roomName war nicht initial } // endfor Nicht Homematic Geraete
    ! vG Looxer[/b][/b][/b][/b][/b][/b][/b]

    1 Antwort Letzte Antwort
    0
    • Q Offline
      Q Offline
      quorle
      schrieb am zuletzt editiert von
      #234

      > > quorle hat geschrieben:

      Die Temperatur wird mittels dem TFA Sensor gelesen. Die Voreingestellte "Wohlfühltemperaturen" gebe ich im "Heizungsthermostatsteuerung 2.0" Script vor. Jetzt soll das Neue Script nach diesen Werten Regeln und den errechneten Wert ( Sollwertvorgabe ) widerrum an das "Heizungsthermostatsteuerung 2.0" Script Schicken das ja dann den Rest erledigt. `

      Hi,

      also ganz verstehe ich das nicht was du vor hast.

      Nach meiner Interpretation:

      • Der TFA Sensor soll die Ist Temperatur im zu reglenden Raum messen

      • Ein zweites Script soll den Sollwert aus dem HT Script nehmen und dann nach einer eigenen Logik eine eigene SollTemp ermitteln (aufgrund der Ist Temp des TFA Sensors)

      • Dabei soll die HT-Script Logik in Takt bleiben um z.B situationsbedingt (z.B. An/Abwesenheit) einzugreifen.

      Habe ich das richtig verstanden ?

      Das Script von Appollon77 macht so was ähnliches. (erster post). Da werden SollTemps ermittelt und an das HT Script übergeben.

      Die Logik der SollTemp Ermittlung in diesem Script geht nach Aufheizzeiten, die für die jeweiligen Räumen benötigt werden)

      Mir ist allerdings nicht klar nach welchen Kriterien du denn die SollTemp ermitteln willst ?

      vG Looxer `

      Ja, du hast es richtig verstanden. Jedoch soll/kann die ermittelte Solltemp wieder an HT übergeben werden, da dieses ja die Temp dann in den Thermostat schreibt.

      Bei mir in der Arbeit werden durch spezielle Regler Temperaturen in Räumen geregelt. Diese haben eine eigene Logit und werden Parametriert/Programmiert. Aber mit einer Simatic S7 Steuereunf kann man dies ebenfalls bewerkstelligen. Und nun würde ich so eine Temperaturregelung im Haus haben ;)

      Gibt es vielleicht etwas, was einem PI Regler oder einem Dreipunktregler nahe kommt?

      Ich weis, der Aufwand so was zu programmieren wird wahrscheinlich imens sein, oder?

      Aber leider habe ich keine Erfahrungen im Programmieren von Java, ich kann nur etwas Simatic Steuerungen und Frequenzumrichter :)

      vG

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        looxer01
        schrieb am zuletzt editiert von
        #235

        Hi,

        schau dir das mal an:

        http://forum.iobroker.net/viewtopic.php … er#p100766

        Allerdings kommst du ohne Programmierung damit nicht hin, wobei aber die Script Schnitel vorliegen sollten.

        wie schon geschrieben, die Steuerung einer FBH mit Zusatzscripten hat apollon77 realisert.

        vG Looxer

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          PicNic
          schrieb am zuletzt editiert von
          #236

          @looxer01:

          @PicNic:

          Wenn ich das Fenster nun schließe (im Log um 12:23:07 Uhr), dann wird das das vom Skript erkannt, die Temperatur wird aber nicht wieder auf die ursprüngliche angehoben.

          Das Skript läuft dann in Dauerschleife, weil es irgendeine Form von Delay erkannt hat. `
          Hi,

          da war ein Fehler in der Zuweisung für "NichtHM-Geräte".

          Bitte tausche einmal folgenden Code aus. Feedback wäre super. Dann baue ich es für die nächste Version ein.

          ! `for (var b in NoneHMTab) { roomName = NoneHMTab[b][0]; if (roomName !== "initial" && RoomListUsage(roomName)) { id = NoneHMTab[b][1] + '.' + NoneHMTab[b][2] + '.' + NoneHMTab[b][3]; var NoneHMObj = getObject(id); if (NoneHMObj && NoneHMObj.common && NoneHMObj.common.name) { FullName = NoneHMObj.common.name; } else { FullName = "n/a"; } devtype = "NoneHM"; if (debug ) {log("Routine getdevice fuer " + roomName, "info");} ! CreateStates(roomName, devtype); // Lege die states an ! roomNoSpace = roomName.replace(/\s/g, "_"); // 0 = room 1 = id 2 = devtype 3 = FullName 4 ID Extract 5 = Type des Geraetes 6 = DP SollTemp 7 = Manu/Auto 8 = Steuerung zentral 9 = DP Ist-Temperatur 10 = DP MANU Check 11=Ventil Offen 12= Delay nach Verschluss zu ControlTab[y] = [roomNoSpace, id, devtype, FullName, NoneHMTab[b][2], 'HT', NoneHMTab[b][3], false, false, false, false, NoneHMTab[b][4], 0 ]; y++; // subscription für Aenderung auf Aenderung der Raumtemperatur des Thermostates zu reagieren on({id: id, change: 'ne'}, function(obj) { //if (obj.state.val !== obj.oldState.val) { // Nur bei Aenderungen ThermostatChange(obj.id); //} // End - react on change }); // ende on id log("Routine GetDevices fuer NoneHM Thermostate " + roomName +" - " + NoneHMTab[b], "info"); rooms[roomName] = true; } // endif roomName war nicht initial } // endfor Nicht Homematic Geraete` ! vG Looxer ! Hey Looxer, ! Vielen Dank. Wenn ich morgen Abend wieder daheim bin probiere ich es direkt aus und Säge dann Bescheid. ! Viele Grüße ! PicNic[/b][/b][/b][/b][/b][/b][/b] `

          1 Antwort Letzte Antwort
          0
          • R Offline
            R Offline
            RobS
            schrieb am zuletzt editiert von
            #237

            Hi Looxer,

            erstmal vielen Dank für dein Skript. Habe es seit ein paar Wochen mit Homematic Wandthermostaten, Heizkörperthermostaten und Fensterkontakten erfolgreich im Dienst und bin rundum begeistert!

            An diesem Wochenende habe ich mithilfe Apollons Skript die Fußbodenheizung mit in Homematic und iobroker aufgenommen.

            Ich steuere die FBH-Ventile mittels Homematic Wired 12/7er Aktoren und den Funk-Wandthermostaten.

            Nun werden die Wired-Aktoren von deinem Skript natürlich nicht als Heizthermostate erkannt und somit keine Datenpunkte für die entsprechenden Räume erstellt.

            Ist es möglich die Wired-Aktoren dennoch in dein Skript zu integrieren?

            Grüße, Rob

            1 Antwort Letzte Antwort
            0
            • L Offline
              L Offline
              looxer01
              schrieb am zuletzt editiert von
              #238

              @RobS:

              Ich steuere die FBH-Ventile mittels Homematic Wired 12/7er Aktoren und den Funk-Wandthermostaten.

              Nun werden die Wired-Aktoren von deinem Skript natürlich nicht als Heizthermostate erkannt und somit keine Datenpunkte für die entsprechenden Räume erstellt.

              Ist es möglich die Wired-Aktoren dennoch in dein Skript zu integrieren? `

              Hi,

              Das Script ist nicht abhängig von den Spezifikation der Thermostate. Alles wird über die Steuertabellen eingestellt.

              Das heisst, dass du die Geräte in die Liste eintragen musst (immer zuerst Wandthermostate und dann erste die abhängigen Thermostate)

              Sollte eigentlich kein Problem sein. Die wired Geräte müssen natürlich entsprechend Räumen und Gewerk zugeorndet sein.

              Versuche das mal bitte. Rückmeldung wäre klasse.

              vG Looxer

              ! var ThermostatTypeTab = []; // 0.RPC-Pfad 1.GeraeteType 2\. Beschreibung, 3\. Type 4.DP-SollTemp 5.nicht verwendet ID 6.DP MANU/AUTO Schaltung 7.Steuerung DV 8\. IstTemp 9-Check-MANU-Mode 10-Ventilstellung wenn nicht Heizperiode 11\. Delay nach Verschluss zu ThermostatTypeTab[0] = ['hm-rpc.0.', 'HM-TC-IT-WM-W-EU', 'Wandthermostat (neu)' ,'WT', '2.SET_TEMPERATURE' , false, '2.MANU_MODE', true, '1.TEMPERATURE', '2.CONTROL_MODE', 12, 0]; ThermostatTypeTab[1] = ['hm-rpc.0.', 'HM-CC-TC' , 'Wandthermostat (alt)' ,'WT', '2.SETPOINT' , false, false, false, '1.TEMPERATURE', false, 12, 2]; ThermostatTypeTab[2] = ['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]; ThermostatTypeTab[3] = ['hm-rpc.1.', 'HmIP-eTRV' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[4] = ['hm-rpc.1.', 'HmIP-WTH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[5] = ['hm-rpc.1.', 'HmIP-WTH-2' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[6] = ['hm-rpc.1.', 'HmIP-STH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[7] = ['hm-rpc.1.', 'HmIP-STHD' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[8] = ['hm-rpc.1.', 'HmIP-eTRV-2' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; !

              1 Antwort Letzte Antwort
              0
              • R Offline
                R Offline
                RobS
                schrieb am zuletzt editiert von
                #239

                Danke für die schnelle Antwort.

                Weiß allerdings nicht so ganz, was ich zu einzutragen habe. Da ich pro Ausgang nur die vier Ausgänge "INHIBIT", "INSTALL_TEST", "STATE" und "WORKING" bekomme.

                ThermostatTypeTab[9]  = ['hm-rpc.0.',  'HMW-IO-12-Sw-7-DR' , 'Wired_Aktor'              ,'WA',   '2.SET_TEMPERATURE',         false,        '2.MANU_MODE',              false,                 '4.ACTUAL_TEMPERATURE',      '4.CONTROL_MODE',           12,                                            0];
                
                

                … so habe ich bisher noch keine Datenpunkte bekommen. Hatte auch versucht überall "false," einzutragen, aber das ging auch nicht.

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  looxer01
                  schrieb am zuletzt editiert von
                  #240

                  Hi,

                  kannst du mal die Datenpunkte zur Verfügung stellen ?

                  am Besten durch download.

                  nach deiner Definition muss der Datenpunkt eine Definition "2.SET_TEMPERATURE" haben. Sonst findet das Script nichts.

                  Andererseits. Wozu brauchst du eigentlich die wired geräte im Script ? Du hast doch ein Wandthermostat, das steuert ?

                  vG Looxer

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    RobS
                    schrieb am zuletzt editiert von
                    #241

                    @looxer01:

                    Andererseits. Wozu brauchst du eigentlich die wired geräte im Script ? Du hast doch ein Wandthermostat, das steuert ?

                    vG Looxer `

                    Da hast du natürlich recht. Nur werden von dem Wandthermostaten auch keine Datenpunkte erstellt.

                    Wie kann ich denn Datenpunkte zum Download zur Verfügung stellen?

                    1 Antwort Letzte Antwort
                    0
                    • L Offline
                      L Offline
                      looxer01
                      schrieb am zuletzt editiert von
                      #242

                      @RobS:

                      Wie kann ich denn Datenpunkte zum Download zur Verfügung stellen? `
                      Du gehst in die Objektliste

                      Wählst die Objektstruktur zum herunterladen aus (z.B. eines dieser Wandthermostate)

                      Oben links in der Reihe (das rechte Icon) druecken.

                      Dann wird eine Datei mit der gewählten Objektstruktur heruntergeladen.

                      vG Looxer

                      1 Antwort Letzte Antwort
                      0
                      • R Offline
                        R Offline
                        RobS
                        schrieb am zuletzt editiert von
                        #243

                        Ok, so sieht dann also die Objektstruktur eines Kanals vom Wired-Aktor aus:

                        ! {"hm-rpc.0.OEQ0161430.13":{"_id":"hm-rpc.0.OEQ0161430.13","type":"channel","common":{"name":"FBH_Wohnzimmer_Kamin","role":"switch","icon":"/icons/30_hmw-io-12-sw7-dr_thumb.png"},"native":{"ADDRESS":"OEQ0161430:13","AES_ACTIVE":0,"DIRECTION":2,"FLAGS":1,"INDEX":13,"LINK_SOURCE_ROLES":"","LINK_TARGET_ROLES":"SWITCH","PARAMSETS":["LINK","MASTER","VALUES"],"PARENT":"OEQ0161430","PARENT_TYPE":"HMW-IO-12-Sw7-DR","TYPE":"SWITCH","VERSION":11},"from":"system.adapter.hm-rega.0","ts":1518371848896,"acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"hm-rpc.0.OEQ0161430.13.INHIBIT":{"type":"state","common":{"def":false,"type":"boolean","read":true,"write":true,"role":"state.inhibit","name":"FBH_Wohnzimmer_Kamin.INHIBIT"},"native":{"CONTROL":"NONE","DEFAULT":false,"FLAGS":1,"ID":"INHIBIT","MAX":true,"MIN":false,"OPERATIONS":7,"TAB_ORDER":1,"TYPE":"BOOL","UNIT":""},"from":"system.adapter.hm-rega.0","ts":1518371848890,"_id":"hm-rpc.0.OEQ0161430.13.INHIBIT","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"hm-rpc.0.OEQ0161430.13.INSTALL_TEST":{"type":"state","common":{"def":false,"type":"boolean","read":false,"write":true,"role":"indicator","name":"FBH_Wohnzimmer_Kamin.INSTALL_TEST"},"native":{"DEFAULT":false,"FLAGS":3,"ID":"INSTALL_TEST","MAX":true,"MIN":false,"OPERATIONS":2,"TAB_ORDER":2,"TYPE":"ACTION","UNIT":""},"from":"system.adapter.hm-rega.0","ts":1518371848885,"_id":"hm-rpc.0.OEQ0161430.13.INSTALL_TEST","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"hm-rpc.0.OEQ0161430.13.STATE":{"type":"state","common":{"def":false,"type":"boolean","read":true,"write":true,"role":"state","name":"FBH_Wohnzimmer_Kamin.STATE"},"native":{"CONTROL":"SWITCH.STATE","DEFAULT":false,"FLAGS":1,"ID":"STATE","MAX":true,"MIN":false,"OPERATIONS":7,"TAB_ORDER":0,"TYPE":"BOOL","UNIT":""},"from":"system.adapter.hm-rega.0","ts":1518371848880,"_id":"hm-rpc.0.OEQ0161430.13.STATE","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"hm-rpc.0.OEQ0161430.13.WORKING":{"type":"state","common":{"def":false,"type":"boolean","read":true,"write":false,"role":"indicator.working","name":"FBH_Wohnzimmer_Kamin.WORKING"},"native":{"DEFAULT":false,"FLAGS":3,"ID":"WORKING","MAX":true,"MIN":false,"OPERATIONS":5,"TAB_ORDER":3,"TYPE":"BOOL","UNIT":""},"from":"system.adapter.hm-rega.0","ts":1518371848876,"_id":"hm-rpc.0.OEQ0161430.13.WORKING","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}}

                        leider hab ich jetzt wohl etwas zu viel rumgespielt und bekomme die Fehlermeldung:

                        javascript.0	2018-02-11 22:25:22.866	error	TypeError: Cannot read property 'common' of undefined
                        javascript.0	2018-02-11 22:25:22.866	error	^
                        javascript.0	2018-02-11 22:25:22.865	error	members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],
                        javascript.0	2018-02-11 22:25:22.865	error	script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0: c:\iobroker\node_modules\iobroker.javascript\javas
                        

                        werd dann das erstmal wieder in Ordnung bringen müssen und mich dann Morgen oder die Tage daranmachen.

                        Werde auf jeden Fall berichten.

                        Danke erstmal für deine Hilfe!

                        Grüße, Rob

                        1 Antwort Letzte Antwort
                        0
                        • L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von
                          #244

                          @RobS:

                          Ok, so sieht dann also die Objektstruktur eines Kanals vom Wired-Aktor aus: `
                          ok, also ich sehe keine SollTemperatur. Es gibt nur den Kanal 13. Fehlen da noch Kanäle ?

                          Keine Ahnung wie die Dinger funktionieren…

                          305_wt-wired.jpg

                          PS

                          Die Fehlermeldungen deuten auf ein Problem mit den Aufzählungen hin.

                          1 Antwort Letzte Antwort
                          0
                          • R Offline
                            R Offline
                            RobS
                            schrieb am zuletzt editiert von
                            #245

                            Hi Looxer,

                            das Neuanlegen der Aufzählungen, wie weiter oben im Thread beschrieben, hat sowohl die Fehlermeldung als auch meine Problem der nichtangelegten Datenpunkte beseitigt. Und du hattest natürlich recht, die Datenpunkte der Wiredaktoren brauche ich gar nicht für dein Skript und deine View.

                            Aktuell funktioniert alles einwandfrei.

                            Nochmal vielen Dank und höchstes Lob und Anerkennung für deine Entwicklung!

                            Zur Erklärung der 12/7 Wired-Aktoren:

                            Die Kanäle 1-12 sind Eingänge, die ich für die FBH nicht brauche. Die vier Datenpunkte, die ich dir geschickt habe sind vom ersten Ausgang. Nutze 5 der 7 Ausgänge für 5 FBH-Ventile. Sobald .STATE auf true geht, öffnet sich das jeweilige Ventil, bei false schließt es wieder. Also ganz oder gar nicht.

                            Die Skriptumsetzung habe ich in dem Fall Apollon zu verdanken!

                            http://forum.iobroker.net/viewtopic.php … denheizung

                            Als nächstes steht nun an das Voraussteuerungsskript von Apollon zu implementieren, um eure beiden Skripte zu verknüpfen und die Trägheit der FBH noch besser zu kompensieren (Hab das zumindest so verstanden ;-) )

                            Beste Grüße,

                            Rob

                            1 Antwort Letzte Antwort
                            0
                            • P Offline
                              P Offline
                              PicNic
                              schrieb am zuletzt editiert von
                              #246

                              @looxer01:

                              @PicNic:

                              Wenn ich das Fenster nun schließe (im Log um 12:23:07 Uhr), dann wird das das vom Skript erkannt, die Temperatur wird aber nicht wieder auf die ursprüngliche angehoben.

                              Das Skript läuft dann in Dauerschleife, weil es irgendeine Form von Delay erkannt hat. `
                              Hi,

                              da war ein Fehler in der Zuweisung für "NichtHM-Geräte".

                              Bitte tausche einmal folgenden Code aus. Feedback wäre super. Dann baue ich es für die nächste Version ein.

                              vG Looxer `

                              Hi Looxer,

                              läuft! :-) … vielen Dank. Hab das Skript nun aktiv für alle Thermostate. Sollten noch einmal irgendwelche Merkwürdigkeiten auftreten gebe ich sofort Bescheid.

                              Vielen Dank für deinen Support!

                              Viele Grüße

                              PicNic

                              1 Antwort Letzte Antwort
                              0
                              • B Offline
                                B Offline
                                Brati
                                schrieb am zuletzt editiert von
                                #247

                                Hallo,

                                ich würde gerne die CCU Heizungsscripte durch dieses hier ersetzen. Hintergrund ist die bessere Möglichkeit Änderungen vorzunehmen.

                                Jetzt basieren die Events hier auf iCal. Abwesenheit, Feiertag und Urlaub laufen aber sehr gut über Variablen auf der CUU.

                                Muss ich einfach nur die Pfade auf die Rega Werte anpassen? z.B.

                                var StateUrlaubAbwesenheit  ="rega.0.0815";    // Temperaturabsenkung wenn laengerer Urlaub eingetragen ist
                                

                                Grüße

                                Brati

                                CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                1 Antwort Letzte Antwort
                                0
                                • L Offline
                                  L Offline
                                  looxer01
                                  schrieb am zuletzt editiert von
                                  #248

                                  @Brati:

                                  uss ich einfach nur die Pfade auf die Rega Werte anpassen? z.B. `
                                  Hi,

                                  Die benannten Variablen sind im Script als spezielle states bezeichnet.

                                  Die Subscriptions beruhen auf den User-Einstellungen (deshalb speziell)

                                  • Feiertag

                                  • Anwesenheit

                                  • ICAL

                                  getestet habe ich es zwar nicht, sollte aber gehen.

                                  Die Codestelle ist hier, falls interessant:

                                  ! ````
                                  log("Heizungsscript verarbeitung benutzt Trigger und Events", "info");

                                          var subscribeIdList = [
                                              StateFeiertagHeuteAdapter,
                                              StateAnwesenheitFunction,
                                              StateHeizperiode
                                          ];
                                          if (UseFeiertagskalender === false) {
                                              subscribeIdList.push(ICALPath + "."+ EventG_Feiertag);
                                          }
                                          if (UseEventsGlobalParameter === true) {
                                              subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                              subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                              subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                              subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                          }
                                          // Auf Änderungen einiger spezieller States reagieren
                                          on({id: subscribeIdList, change: 'ne'}, function(state) {
                                              if (debug) {log("Trigger nach Änderung für State " + state.id, "info");}
                                              TriggerUpdate();
                                          });
                                  

                                  ! ````

                                  Teste bitte mal. Rückmeldungen sind immer welcome :)

                                  vG Looxer

                                  1 Antwort Letzte Antwort
                                  0
                                  • B Offline
                                    B Offline
                                    Brati
                                    schrieb am zuletzt editiert von
                                    #249

                                    Hmm,

                                    so ganz blicke ich da noch nicht durch und habe auch folgendes Problem: Bei mir läuft ja die Variable Anwesenheit true = anwesend, false = abwesend und das Script reagiert ja auf Keiner_Da = true = abwesend.

                                    Vielleicht ist es einfacher die Events in States auszulagern und per extra Script auf das Ändern der Variablen zu reagieren, also Anwesenheit = false schaltet dann javascript.0.Heizung.Keiner_Da auf true.

                                    Na ich probiere es mal auf diesem Wege.

                                    Grüße

                                    Brati

                                    CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                    1 Antwort Letzte Antwort
                                    0
                                    • L Offline
                                      L Offline
                                      looxer01
                                      schrieb am zuletzt editiert von
                                      #250

                                      @Brati:

                                      so ganz blicke ich da noch nicht durch und habe auch folgendes Problem: Bei mir läuft ja die Variable Anwesenheit true = anwesend, false = abwesend und das Script reagiert ja auf Keiner_Da = true = abwesend. `
                                      ja, das liegt daran, dass du dir die ICAL Events ansiehst.

                                      Nimm dieses hier: var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa";

                                      Wenn der Status auf TRUE steht, dann ist anwesend.

                                      Bei ICAL kannst du sowohl anwesend also auch abesend setzen. und bei abwesend = TRUE ist halt nicht anwesend.

                                      Du brauchst keine eigenen Zwischenstates zu setzen

                                      vG Looxer

                                      1 Antwort Letzte Antwort
                                      0
                                      • L Offline
                                        L Offline
                                        looxer01
                                        schrieb am zuletzt editiert von
                                        #251

                                        @Brati:

                                        o ganz blicke ich da noch nicht durch u `
                                        noch ein Punkt wie sich die ICAL An- und Abwesenheit verhält.

                                        Das Konzept ist so gedacht:

                                        Manche haben gar keine Abwesenheitserkennung und können komplett über Kalender steuern.

                                        Manche habe eine Abesenheitserkennung und können zusätzlich mit dem Kalender steuern.

                                        Im Falle von Konflikten entscheidet die Overrule-Tabelle was verwendet wird.

                                        Die Reihenfolge kann eingestellt werden. Vorgegeben ist, dass bei automatischer Abwesenheitserkennung diese zuerst zieht (Absenkung)

                                        ich gestehe aber, dass ich das Event: EventG_Abwesend gar nicht programmiert haben. Das heisst, das Event hat keine Wirkung.

                                        Habe ich bei mir auf der Liste stehen.

                                        vG Looxer

                                        OverruleTabelle:

                                        verruleTab[0] = ["Abwesenheit"];      // Bei Abwesenheit wird die Temperatur der entsprechend Eisntellung abgesenkt
                                        OverruleTab[1] = ["UrlaubAnwesend"];   // Urlaubsanwesenheit / beeinflusst nicht direkt die Solltemp - ist aber wichtig fuer die Schedule Findung
                                        OverruleTab[2] = ["UrlaubAbwesend"];   // Urlaubsabwesenheit -
                                        OverruleTab[3] = ["Gaeste"];           // Temperatur Anhebung
                                        OverruleTab[4] = ["Party"];            // Partyabsenkung
                                        
                                        
                                        1 Antwort Letzte Antwort
                                        0
                                        • H Offline
                                          H Offline
                                          haitak
                                          schrieb am zuletzt editiert von
                                          #252

                                          Hallo esrt mal zusammen,

                                          bin neu hier und versuche das schöne Script hier zum laufen zu bekommen, aber leider bekomme ich beim Ausführen dieses

                                          Scrpts folgende errors zu gesicht. Das System ist ein CENTOS 7 und iobroker ist als benutzer angelgt worden, also keine root rechte. Die Gewerke in der CCU sind richtig und auch gefüllt. Für jegliche Hilfe würde ich mich freuen.

                                          undefined2018-02-13 18:25:10.278 - info: javascript.0 Start javascript script.js.common.Heizung

                                          2018-02-13 18:25:10.295 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft

                                          2018-02-13 18:25:10.326 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Küche wird jetzt ueberprueft

                                          2018-02-13 18:25:10.335 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Schlafzimmer wird jetzt ueberprueft

                                          2018-02-13 18:25:10.344 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Büro wird jetzt ueberprueft

                                          2018-02-13 18:25:10.352 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Badezimmer wird jetzt ueberprueft

                                          2018-02-13 18:25:10.362 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum roomTerrace wird jetzt ueberprueft

                                          2018-02-13 18:25:10.370 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Flur wird jetzt ueberprueft

                                          2018-02-13 18:25:10.388 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum Kueche wird jetzt ueberprueft

                                          2018-02-13 18:25:10.401 - info: javascript.0 script.js.common.Heizung: Gibt es ein zugeordnetes Gerät für den Raum [object Object] wird jetzt ueberprueft

                                          2018-02-13 18:25:10.405 - error: javascript.0 script.js.common.Heizung: script.js.common.Heizung:571

                                          2018-02-13 18:25:10.405 - error: javascript.0 roomNoSpace = roomName.replace(/\s/g, "_");

                                          2018-02-13 18:25:10.405 - error: javascript.0 ^

                                          2018-02-13 18:25:10.405 - error: javascript.0 TypeError: roomName.replace is not a function

                                          2018-02-13 18:25:10.406 - error: javascript.0 at getDevices (script.js.common.Heizung:571:32)

                                          2018-02-13 18:25:10.406 - error: javascript.0 at initializeData (script.js.common.Heizung:344:5)

                                          2018-02-13 18:25:10.406 - error: javascript.0 at script.js.common.Heizung:337:1

                                          2018-02-13 18:25:10.406 - error: javascript.0 at ContextifyScript.Script.runInContext (vm.js:35:29)

                                          2018-02-13 18:25:13.010 - info: javascript.0 Stop script script.js.common.Heizung

                                          LG

                                          haitak

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          480

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe