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. Skript "lügt" / Werte von Xiaomi Fenstersensor wird falsch ausgewertet

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptcommunication
5 Beiträge 4 Kommentatoren 460 Aufrufe 1 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.
  • 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
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            794

            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