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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Temperatur vom Thermostat runter, wenn Fenster auf

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    915

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Temperatur vom Thermostat runter, wenn Fenster auf

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 3 Kommentatoren 224 Aufrufe 2 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.
  • ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von Ein ehemaliger Benutzer
    #1

    Hallo,

    ich habe beispielsweise ein Thermostat in einem Raum, sowie ein Fenster.
    Nun möchte ich, sobald das Fenster geöffnet wird, dass das Thermostat auf 5° heruntergeht und sobald das Fenster wieder geschlossen wird, wieder auf die zu vorige Temperatur wechselt.

    Mein Beispiel, welches zwar die Temperatur senkt aber nicht mehr erhöht:

    var thermostat = "javascript.0.Thermostat.Test";
    var fenster = "zwave.0.NODE103.ALARM.Access_Control_1";
    const oldThermostat = getState(thermostat).val;
    on(fenster, function (obj) {
        if (obj.state.val == 1) {
            setState(thermostat, 12)
        } else {
            setState(thermostat, oldThermostat)
        }
    })
    

    Kann mir da wer helfen? Vermutlich muss zuvor per createState ein Objekt angelegt werden, in welchem immer der Wert des Thermostat's eingetragen wird, wenn das Fenster geschlossen ist right?

    paul53P 1 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      Hallo,

      ich habe beispielsweise ein Thermostat in einem Raum, sowie ein Fenster.
      Nun möchte ich, sobald das Fenster geöffnet wird, dass das Thermostat auf 5° heruntergeht und sobald das Fenster wieder geschlossen wird, wieder auf die zu vorige Temperatur wechselt.

      Mein Beispiel, welches zwar die Temperatur senkt aber nicht mehr erhöht:

      var thermostat = "javascript.0.Thermostat.Test";
      var fenster = "zwave.0.NODE103.ALARM.Access_Control_1";
      const oldThermostat = getState(thermostat).val;
      on(fenster, function (obj) {
          if (obj.state.val == 1) {
              setState(thermostat, 12)
          } else {
              setState(thermostat, oldThermostat)
          }
      })
      

      Kann mir da wer helfen? Vermutlich muss zuvor per createState ein Objekt angelegt werden, in welchem immer der Wert des Thermostat's eingetragen wird, wenn das Fenster geschlossen ist right?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @tmartin Du musst die Variable oldThermostat auch im Trigger setzen.

      const thermostat = "javascript.0.Thermostat.Test";
      const fenster = "zwave.0.NODE103.ALARM.Access_Control_1";
      
      on(fenster, function (obj) {
          if (obj.state.val) {
              let oldThermostat = getState(thermostat).val;
              setState(thermostat, 12)
          } else {
              setState(thermostat, oldThermostat)
          }
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      ? 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @tmartin Du musst die Variable oldThermostat auch im Trigger setzen.

        const thermostat = "javascript.0.Thermostat.Test";
        const fenster = "zwave.0.NODE103.ALARM.Access_Control_1";
        
        on(fenster, function (obj) {
            if (obj.state.val) {
                let oldThermostat = getState(thermostat).val;
                setState(thermostat, 12)
            } else {
                setState(thermostat, oldThermostat)
            }
        });
        
        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #3

        @paul53 Das habe ich auch bereits probiert. Jedoch ist es da so, dass der gleiche Wert gesetzt wird, wie wenn das Fenster aufgemacht wird.

        paul53P Dominik F.D 2 Antworten Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @paul53 Das habe ich auch bereits probiert. Jedoch ist es da so, dass der gleiche Wert gesetzt wird, wie wenn das Fenster aufgemacht wird.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @tmartin said: der gleiche Wert gesetzt wird, wie wenn das Fenster aufgemacht wird.

          Dann muss er den Fenster-offen-Sollwert schon in die Variable einlesen. Bau mal ein Log ein.

          const thermostat = "javascript.0.Thermostat.Test";
          const fenster = "zwave.0.NODE103.ALARM.Access_Control_1";
           
          on(fenster, function (obj) {
              if (obj.state.val) {
                  let oldThermostat = getState(thermostat).val;
                  setState(thermostat, 12)
              } else {
                  setState(thermostat, oldThermostat)
              }
              log('Variablenwert: ' + oldThermostat);
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • ? Ein ehemaliger Benutzer

            @paul53 Das habe ich auch bereits probiert. Jedoch ist es da so, dass der gleiche Wert gesetzt wird, wie wenn das Fenster aufgemacht wird.

            Dominik F.D Offline
            Dominik F.D Offline
            Dominik F.
            schrieb am zuletzt editiert von
            #5

            @tmartin

            Hier mal ein Skript was ich längere Zeit genutzt habe, vielleicht hilft es dir ja. Habe da einen Timer eingebaut, weil ich erst wollte, dass die Heizung runter geht, wenn das Fenster 10 min offen ist.
            Wenn du die Variablen anpasst und eventuell den Timer, dann sollte es funktionieren.

            //Variablen Wohnzimmer
            
            const id_EG_Wohnzimmer = 'javascript.0.Heizung.Fensterauswertung.EG_Wohnzimmer.IsOpen'/*Fenster offen?*/
            const id_EG_W_Thermostat_Manu = 'hm-rpc.0.MEQ0236893.2.MANU_MODE'/*Wandthermostat Wohnzimmer MANU MODE*/
            const id_EG_W_Thermostat_Auto = 'hm-rpc.0.MEQ0236893.2.AUTO_MODE'/*Wandthermostat Wohnzimmer AUTO MODE*/
            
            var EG_Wohnzimmer = getState(id_EG_Wohnzimmer).val;
            
            
            //Variablen Küche
            
            const id_EG_Küche = 'javascript.0.Heizung.Fensterauswertung.EG_Küche.IsOpen'/*Fenster offen?*/
            const id_EG_K_Thermostat_Manu = 'hm-rpc.0.NEQ1802941.2.MANU_MODE'/*Wandthermostat Küche MANU MODE*/
            const id_EG_K_Thermostat_Auto = 'hm-rpc.0.NEQ1802941.2.AUTO_MODE'/*Wandthermostat Küche AUTO MODE*/
            
            var EG_Küche = getState(id_EG_Küche).val;
            
            //Ab hier eigentliches Script
            var timer = null;
            
            //Wohnzimmer 
            function Wmode() {
                if (EG_Wohnzimmer) {
                    timer = setTimeout(function() {
                        // Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen
                        setState(id_EG_W_Thermostat_Manu, 17);
                        log('Fenster im Wohnzimmer auf - Heizung ist aus');
                    },600000);  // 10 Minuten
                } 
                else {
                    if(timer) clearTimeout(timer); 
                    setState(id_EG_W_Thermostat_Auto, true);
                    log('Fenster im Wohnzimmer zu - Heizung ist an');
                }   
            };
            
            //Küche
            function Kmode() {
                if (EG_Küche) {
                    timer = setTimeout(function() {
                        // Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen
                        setState(id_EG_K_Thermostat_Manu, 17);
                        log('Fenster in der Küche auf - Heizung ist aus');
                    },600000);  // 10 Minuten
                } 
                else {
                    if(timer) clearTimeout(timer); 
                    setState(id_EG_K_Thermostat_Auto, true);
                    log('Fenster in der Küche zu - Heizung ist an');
                }   
            };
            
            Wmode(); // Skripstart Wohnzimmer
             
            on({id: id_EG_Wohnzimmer, change: "ne"}, function(obj) {
                EG_Wohnzimmer = obj.state.val;
                Wmode();
            });
            
            Kmode(); // Skripstart Küche
             
            on({id: id_EG_Küche, change: "ne"}, function(obj) {
                EG_Küche = obj.state.val;
                Kmode();
            });
            
            
            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

            408

            Online

            32.6k

            Benutzer

            82.2k

            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