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. Homematic IP Fensterkontakt meldet zweifach Werte

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    305

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

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

Homematic IP Fensterkontakt meldet zweifach Werte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptheatingsecurity
7 Beiträge 3 Kommentatoren 962 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.
  • L Offline
    L Offline
    leo4455
    schrieb am zuletzt editiert von
    #1

    Moin zusammen,

    Nach Umstellung auf das Homeatic IP System habe ich einen Anwendungsfall, wo ich momentan keine Lösung sehe.
    Anwendungsfall:
    Recht einfach zu sagen. Wenn ein Fenster geöffnet wird, soll eine Aktion ausgelöst werden.

    Das script fange ich als so an, damit bei Änderung eine Aktion ausgelöst wird:
    on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

    Danach Frage ich den Wert in einer if Schleife ab, und wenn WindowOpen = true ist, wird die Aktion ausgelöst.

    Nun das Problem ... Der Homematic IP Fensterkontakt meldet beim öffnen immer zwei Werte.

    1. den Zustand bevor das Fenster geöffnet wurde (also false)
    2. den Zustand nacdem das Fenster geöffnet wurde (also true), und zwar ca 0.5 Sekunden später

    Dieses ist sehr unglücklich, da die if Schleife zuerst auf false reagiert und das true 0,5 Sekunden später verschluckt.
    Zum anderen wird beim schließen auch erst ein true und danach ein false gemeldet. Das bedeutet, dass die Aktion auch beim schließen ausgeführt wird.

    Gibt es evtl. die Möglichkeit in dem oben genannten on({id: "hmip.0.de ... noch den gewünschten zustand mitzgeben?
    Oder kann man unten im script angeben, dass die variable mit getState erst später gelesen wird, wenn nur noch der zweite Wert steht?

    Ich habe hier schon ein wenig gesucht, aber noch nichts passendes gefunden. Wäre echt klasse wenn hier jemande eine Idee hat oder schon mal auf dieses Problem gestoßen ist und gelöst hat.

    Beste Grüße,
    Leo

    UncleSamU paul53P 3 Antworten Letzte Antwort
    0
    • L leo4455

      Moin zusammen,

      Nach Umstellung auf das Homeatic IP System habe ich einen Anwendungsfall, wo ich momentan keine Lösung sehe.
      Anwendungsfall:
      Recht einfach zu sagen. Wenn ein Fenster geöffnet wird, soll eine Aktion ausgelöst werden.

      Das script fange ich als so an, damit bei Änderung eine Aktion ausgelöst wird:
      on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

      Danach Frage ich den Wert in einer if Schleife ab, und wenn WindowOpen = true ist, wird die Aktion ausgelöst.

      Nun das Problem ... Der Homematic IP Fensterkontakt meldet beim öffnen immer zwei Werte.

      1. den Zustand bevor das Fenster geöffnet wurde (also false)
      2. den Zustand nacdem das Fenster geöffnet wurde (also true), und zwar ca 0.5 Sekunden später

      Dieses ist sehr unglücklich, da die if Schleife zuerst auf false reagiert und das true 0,5 Sekunden später verschluckt.
      Zum anderen wird beim schließen auch erst ein true und danach ein false gemeldet. Das bedeutet, dass die Aktion auch beim schließen ausgeführt wird.

      Gibt es evtl. die Möglichkeit in dem oben genannten on({id: "hmip.0.de ... noch den gewünschten zustand mitzgeben?
      Oder kann man unten im script angeben, dass die variable mit getState erst später gelesen wird, wenn nur noch der zweite Wert steht?

      Ich habe hier schon ein wenig gesucht, aber noch nichts passendes gefunden. Wäre echt klasse wenn hier jemande eine Idee hat oder schon mal auf dieses Problem gestoßen ist und gelöst hat.

      Beste Grüße,
      Leo

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von UncleSam
      #2

      @leo4455 sagte in Homematic IP Fensterkontakt meldet zweifach Werte:

      on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

      Wenn du in der Funktion einen Parameter angibst, erhälst du direkt das Objekt und den Datenpunkt (State) mitgeliefert:

      on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(obj){
        if (obj.state.val === true) {
          ...
      

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      L 1 Antwort Letzte Antwort
      0
      • L leo4455

        Moin zusammen,

        Nach Umstellung auf das Homeatic IP System habe ich einen Anwendungsfall, wo ich momentan keine Lösung sehe.
        Anwendungsfall:
        Recht einfach zu sagen. Wenn ein Fenster geöffnet wird, soll eine Aktion ausgelöst werden.

        Das script fange ich als so an, damit bei Änderung eine Aktion ausgelöst wird:
        on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

        Danach Frage ich den Wert in einer if Schleife ab, und wenn WindowOpen = true ist, wird die Aktion ausgelöst.

        Nun das Problem ... Der Homematic IP Fensterkontakt meldet beim öffnen immer zwei Werte.

        1. den Zustand bevor das Fenster geöffnet wurde (also false)
        2. den Zustand nacdem das Fenster geöffnet wurde (also true), und zwar ca 0.5 Sekunden später

        Dieses ist sehr unglücklich, da die if Schleife zuerst auf false reagiert und das true 0,5 Sekunden später verschluckt.
        Zum anderen wird beim schließen auch erst ein true und danach ein false gemeldet. Das bedeutet, dass die Aktion auch beim schließen ausgeführt wird.

        Gibt es evtl. die Möglichkeit in dem oben genannten on({id: "hmip.0.de ... noch den gewünschten zustand mitzgeben?
        Oder kann man unten im script angeben, dass die variable mit getState erst später gelesen wird, wenn nur noch der zweite Wert steht?

        Ich habe hier schon ein wenig gesucht, aber noch nichts passendes gefunden. Wäre echt klasse wenn hier jemande eine Idee hat oder schon mal auf dieses Problem gestoßen ist und gelöst hat.

        Beste Grüße,
        Leo

        UncleSamU Offline
        UncleSamU Offline
        UncleSam
        Developer
        schrieb am zuletzt editiert von UncleSam
        #3

        @leo4455 Zudem könntest du auch schon im on() angeben, welchen Wert du haben willst. Das habe ich aber selber noch nie versucht. Hier die ganze Doku:
        https://www.iobroker.net/docu/index-81.htm?page_id=5809&lang=de#on_8211_Subscribe_on_changes_or_updates_of_some_state

        Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
        ♡-lichen Dank an meine Sponsoren

        1 Antwort Letzte Antwort
        0
        • UncleSamU UncleSam

          @leo4455 sagte in Homematic IP Fensterkontakt meldet zweifach Werte:

          on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

          Wenn du in der Funktion einen Parameter angibst, erhälst du direkt das Objekt und den Datenpunkt (State) mitgeliefert:

          on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(obj){
            if (obj.state.val === true) {
              ...
          
          L Offline
          L Offline
          leo4455
          schrieb am zuletzt editiert von
          #4

          @UncleSam , besten Dank fürs feedback.

          So ähnlich habe ich es bereits gemacht und frage auf true (also geöffnet) ab.
          Das Problem ist dann jedoch, dass die Aktion auch ausgeführt wird, wenn das Fenster geschossen wird, da hier erst true und dann false gemeldet wird.

          Ich benötige jedoch immer nur den letzten Wert, damit nur beim öffnen und nicht beim schließen die Aktion ausgeführt wird.

          Gerade sehe ich auch, dass es das Attribute state.val bei mir im hmip devide nicht gibt. Aktuell frage ich auf windowOpen ab .... :-/

          UncleSamU 1 Antwort Letzte Antwort
          0
          • L leo4455

            Moin zusammen,

            Nach Umstellung auf das Homeatic IP System habe ich einen Anwendungsfall, wo ich momentan keine Lösung sehe.
            Anwendungsfall:
            Recht einfach zu sagen. Wenn ein Fenster geöffnet wird, soll eine Aktion ausgelöst werden.

            Das script fange ich als so an, damit bei Änderung eine Aktion ausgelöst wird:
            on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

            Danach Frage ich den Wert in einer if Schleife ab, und wenn WindowOpen = true ist, wird die Aktion ausgelöst.

            Nun das Problem ... Der Homematic IP Fensterkontakt meldet beim öffnen immer zwei Werte.

            1. den Zustand bevor das Fenster geöffnet wurde (also false)
            2. den Zustand nacdem das Fenster geöffnet wurde (also true), und zwar ca 0.5 Sekunden später

            Dieses ist sehr unglücklich, da die if Schleife zuerst auf false reagiert und das true 0,5 Sekunden später verschluckt.
            Zum anderen wird beim schließen auch erst ein true und danach ein false gemeldet. Das bedeutet, dass die Aktion auch beim schließen ausgeführt wird.

            Gibt es evtl. die Möglichkeit in dem oben genannten on({id: "hmip.0.de ... noch den gewünschten zustand mitzgeben?
            Oder kann man unten im script angeben, dass die variable mit getState erst später gelesen wird, wenn nur noch der zweite Wert steht?

            Ich habe hier schon ein wenig gesucht, aber noch nichts passendes gefunden. Wäre echt klasse wenn hier jemande eine Idee hat oder schon mal auf dieses Problem gestoßen ist und gelöst hat.

            Beste Grüße,
            Leo

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

            @leo4455 sagte:

            on({id: "hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.1.functionalChannelType"}, function(){

            Triggere auf Wertänderung.

            on('hmip.0.devices.3014FXXXXXXXXXXXXXXX.channels.N.windowOpen', function(dp) { // Triggert bei Wertänderung
               if(dp.state.val) {
                  // Aktionen bei Öffnen
               } else {
                  // Aktionen bei Schließen
               }
            });
            

            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
            • L leo4455

              @UncleSam , besten Dank fürs feedback.

              So ähnlich habe ich es bereits gemacht und frage auf true (also geöffnet) ab.
              Das Problem ist dann jedoch, dass die Aktion auch ausgeführt wird, wenn das Fenster geschossen wird, da hier erst true und dann false gemeldet wird.

              Ich benötige jedoch immer nur den letzten Wert, damit nur beim öffnen und nicht beim schließen die Aktion ausgeführt wird.

              Gerade sehe ich auch, dass es das Attribute state.val bei mir im hmip devide nicht gibt. Aktuell frage ich auf windowOpen ab .... :-/

              UncleSamU Offline
              UncleSamU Offline
              UncleSam
              Developer
              schrieb am zuletzt editiert von
              #6

              @leo4455 sagte in Homematic IP Fensterkontakt meldet zweifach Werte:

              Gerade sehe ich auch, dass es das Attribute state.val bei mir im hmip devide nicht gibt. Aktuell frage ich auf windowOpen ab

              Das ist eine Eigenschaft vom Objekt das du in der Funktion erhältst. Das hat jeder State. Sonst kannst du ja einfach mal ein log(JSON.stringify(obj); machen in der Funktion wie ich sie beschrieben habe. Dann siehst du was da daher kommt.

              Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
              ♡-lichen Dank an meine Sponsoren

              L 1 Antwort Letzte Antwort
              1
              • UncleSamU UncleSam

                @leo4455 sagte in Homematic IP Fensterkontakt meldet zweifach Werte:

                Gerade sehe ich auch, dass es das Attribute state.val bei mir im hmip devide nicht gibt. Aktuell frage ich auf windowOpen ab

                Das ist eine Eigenschaft vom Objekt das du in der Funktion erhältst. Das hat jeder State. Sonst kannst du ja einfach mal ein log(JSON.stringify(obj); machen in der Funktion wie ich sie beschrieben habe. Dann siehst du was da daher kommt.

                L Offline
                L Offline
                leo4455
                schrieb am zuletzt editiert von
                #7

                Hi @UncleSam,
                Habe das gerade einmal so umgesetzt und was soll ich sagen ... PERFEKT!
                Es klappt alles wie es soll.
                Besten Dank für deine Hilfe :-)

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


                Support us

                ioBroker
                Community Adapters
                Donate

                637

                Online

                32.7k

                Benutzer

                82.5k

                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