Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Skript "lügt" / Werte von Xiaomi Fenstersensor wird falsch ausgewertet

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    802

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

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

Skript "lügt" / Werte von Xiaomi Fenstersensor wird falsch ausgewertet

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptcommunication
5 Beiträge 4 Kommentatoren 488 Aufrufe 1 Beobachtet
  • Ä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.
  • M Offline
    M Offline
    martinschm
    schrieb am zuletzt editiert von martinschm
    #1

    Hi,
    ich frage per Skript den Status meiner Xiaomi Fenstersensoren ab. Jetzt wird mir ein Sensor als offen zurück gemeldet obwohl er geschlossen ist.

    Ich hab ihn unter Objekten geprüft. dort steht "isopen" = false. Trotzdem wird mir im Skript gemeldet, das er true wäre. Für alle anderen Sensoren von Xiaomi klappt es einwandfrei.

    Anfangs dachte ich es wäre ein Problem des Xiaomi Gateways, aber die Überprüfung unter Objekte zeigte das es eigentlich geschlossen ist. In iobroker kommt also der korrekte Status an. Ich vermute, das die Skripte eben jenen Status im Objektbaum auch abfragen, oder ?
    Das wird mir unter Objekten angezeigt
    iobroker garagentor sensor status.jpg

    Mein Testskript:

    var Status = getState("mihome.0.devices.magnet_158d0001b95702.state").val;
    var objektname = getObject("mihome.0.devices.magnet_158d0001b95702").common.name;
    var raum = getObject("mihome.0.devices.magnet_158d0001b95702","rooms").enumNames;
    
    var OffeneFenster = "\n Im " + raum + " ist "  + objektname + Status + " offen.";
                    
    console.log(OffeneFenster);
    

    Ausgabe des Skripts ist:
    Im [object Object] ist Xiaomi Garagentortrue offen.

    Interessanterweise wird auch der Name des Raums nicht ausgegeben, obwohl der Sensor einem zugeordnet ist. Wäre auch interessant warum, aber ist Prio 2.

    paul53P 1 Antwort Letzte Antwort
    0
    • MicM Offline
      MicM Offline
      Mic
      Developer
      schrieb am zuletzt editiert von Mic
      #2

      Ich hab mal kurz Dein Script umgeschrieben, Du fügst ja das String " offen." immer hinzu, egal wie der Status ist.

      Versuch mal:

      let statePath = 'mihome.0.devices.magnet_158d0001b95702';
      let objName = getObject(statePath).common.name;
      let raum = getObject(statePath, "rooms").enumNames;
      let status = 'offen';
      if (! getState(statePath + ".state").val) status = 'zu';
      let windowStatusText = "\n Im " + raum + " ist "  + objName + ' ' + status + '.';
      console.log(windowStatusText);
      
      M 1 Antwort Letzte Antwort
      0
      • htreckslerH Offline
        htreckslerH Offline
        htrecksler
        Forum Testing
        schrieb am zuletzt editiert von
        #3

        es ging nicht um das "offen" sondern um den Wert "true" davor.

        Gruss Hermann

        ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

        1 Antwort Letzte Antwort
        0
        • M martinschm

          Hi,
          ich frage per Skript den Status meiner Xiaomi Fenstersensoren ab. Jetzt wird mir ein Sensor als offen zurück gemeldet obwohl er geschlossen ist.

          Ich hab ihn unter Objekten geprüft. dort steht "isopen" = false. Trotzdem wird mir im Skript gemeldet, das er true wäre. Für alle anderen Sensoren von Xiaomi klappt es einwandfrei.

          Anfangs dachte ich es wäre ein Problem des Xiaomi Gateways, aber die Überprüfung unter Objekte zeigte das es eigentlich geschlossen ist. In iobroker kommt also der korrekte Status an. Ich vermute, das die Skripte eben jenen Status im Objektbaum auch abfragen, oder ?
          Das wird mir unter Objekten angezeigt
          iobroker garagentor sensor status.jpg

          Mein Testskript:

          var Status = getState("mihome.0.devices.magnet_158d0001b95702.state").val;
          var objektname = getObject("mihome.0.devices.magnet_158d0001b95702").common.name;
          var raum = getObject("mihome.0.devices.magnet_158d0001b95702","rooms").enumNames;
          
          var OffeneFenster = "\n Im " + raum + " ist "  + objektname + Status + " offen.";
                          
          console.log(OffeneFenster);
          

          Ausgabe des Skripts ist:
          Im [object Object] ist Xiaomi Garagentortrue offen.

          Interessanterweise wird auch der Name des Raums nicht ausgegeben, obwohl der Sensor einem zugeordnet ist. Wäre auch interessant warum, aber ist Prio 2.

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

          @martinschm sagte:

          wird auch der Name des Raums nicht ausgegeben

          Versuche es mal mit .enumNames[0].

          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
          • MicM Mic

            Ich hab mal kurz Dein Script umgeschrieben, Du fügst ja das String " offen." immer hinzu, egal wie der Status ist.

            Versuch mal:

            let statePath = 'mihome.0.devices.magnet_158d0001b95702';
            let objName = getObject(statePath).common.name;
            let raum = getObject(statePath, "rooms").enumNames;
            let status = 'offen';
            if (! getState(statePath + ".state").val) status = 'zu';
            let windowStatusText = "\n Im " + raum + " ist "  + objName + ' ' + status + '.';
            console.log(windowStatusText);
            
            M Offline
            M Offline
            martinschm
            schrieb am zuletzt editiert von
            #5

            @Mic said in Skript "lügt":

            Ich hab mal kurz Dein Script umgeschrieben, Du fügst ja das String " offen." immer hinzu, egal wie der Status ist.

            Hi Mic, das ist ok so. In dem eigentlichen Skript füge ich in einer Schleife alle Fenster zu einem Ausgabe String zusammen. Da wird vorher geprüft ob offen oder zu ist und nur bei offen werden sie hinzugefügt.

            in dem Testskript hier steht das "offen" halt noch mit drin. Entscheidend ist der Status der über die Variabel ausgegeben wird.

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            278

            Online

            32.8k

            Benutzer

            82.7k

            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