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. Off Topic
  4. simple-api abfrage: alle offenen Türen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

simple-api abfrage: alle offenen Türen

Geplant Angeheftet Gesperrt Verschoben Off Topic
6 Beiträge 3 Kommentatoren 297 Aufrufe 4 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.
  • Dominic ReberD Offline
    Dominic ReberD Offline
    Dominic Reber
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen

    Wie kann ich mit einer Simple-API-Abfrage die Namen aller offenen Türen erhalten?

    deconz.0.Sensors.X.open = true
    und den Namen dazu deconz.0.Sensors["Name"]

    Zusatzfrage: Ist es möglich, über simple-api ein eigenes script auszuführen und werte zurückzugeben?

    Danke, Sven

    paul53P 1 Antwort Letzte Antwort
    0
    • Dominic ReberD Dominic Reber

      Hallo zusammen

      Wie kann ich mit einer Simple-API-Abfrage die Namen aller offenen Türen erhalten?

      deconz.0.Sensors.X.open = true
      und den Namen dazu deconz.0.Sensors["Name"]

      Zusatzfrage: Ist es möglich, über simple-api ein eigenes script auszuführen und werte zurückzugeben?

      Danke, Sven

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

      @Dominic-Reber sagte:

      Wie kann ich mit einer Simple-API-Abfrage die Namen aller offenen Türen erhalten?

      Gar nicht, es sei denn, es gibt einen Datenpunkt, der die Namen aller offen Türen enthält.

      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

      Dominic ReberD 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @Dominic-Reber sagte:

        Wie kann ich mit einer Simple-API-Abfrage die Namen aller offenen Türen erhalten?

        Gar nicht, es sei denn, es gibt einen Datenpunkt, der die Namen aller offen Türen enthält.

        Dominic ReberD Offline
        Dominic ReberD Offline
        Dominic Reber
        schrieb am zuletzt editiert von Dominic Reber
        #3

        @paul53
        Schade, ich schaffs alle sensoren auszulesen, die "open" = true haben, aber den dazugehörigen Namen kann ich nirgends auslesen... Schade.

        Mach ich halt eine Doppelabfrage.
        objects liefert den Namen, states den status

        paul53P 1 Antwort Letzte Antwort
        0
        • Dominic ReberD Dominic Reber

          @paul53
          Schade, ich schaffs alle sensoren auszulesen, die "open" = true haben, aber den dazugehörigen Namen kann ich nirgends auslesen... Schade.

          Mach ich halt eine Doppelabfrage.
          objects liefert den Namen, states den status

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

          @Dominic-Reber sagte:

          den dazugehörigen Namen kann ich nirgends auslesen... Schade.

          Dazu benötigt man ein Script auf ioBroker, das auf jede Türbewegung reagiert und die Namen der offenen Türen in einen Datenpunkt schreibt. Dieser Datenpunkt kann zu jeder Zeit per Simple-API abgefragt werden. Beispiel-Skript:

          const idsOpen = $('deconz.0.Sensors.*.open');
          const idNamen = '0_userdata.0.Offen.Namen';
          
          function checkOpen() {
              let names = [];
              idsOpen.each(function(id, i) {
                  if(getState(id).val) names.push(getObject(id).common.name);
              });
              let text = 'alle Türen sind geschlossen';
              if(names.length) text = 'offene Türen: ' + names.join(', ');
              setState(idNamen, text, true);
          }
          
          createState(idNamen, '', {type: 'string', name: 'Namen offener Türen', role: 'info'}, checkOpen);
          
          idsOpen.on(checkOpen); // Wertänderung
          

          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
          • K Offline
            K Offline
            klassisch
            Most Active
            schrieb am zuletzt editiert von klassisch
            #5

            Dazu ein konkretes Beispiel.
            Aus alten Zeiten habe ich für jedes Fenster eine Homematic-Variable, in die ein Text geschrieben wird, wenn ein Fenster offen ist.
            Diese Variable wird zum ioBroker übertragen.
            Dort hat diese Variable den leider wenig sprechenden Datenpunkt

            hm-rega.0.7419
            

            und mit einer simpleApi Abfrage

            http://192.168.1.25:8087/get/hm-rega.0.7419/?prettyPrint
            

            bekomme ich in diesem Fall ein recht komplexes Objekt in JSON

            {
                "val": "WC-Fenster",
                "ack": true,
                "ts": 1607927113044,
                "q": 0,
                "from": "system.adapter.hm-rega.0",
                "user": "system.user.admin",
                "lc": 1608927984804,
                "_id": "hm-rega.0.7419",
                "type": "state",
                "common": {
                    "name": "AllesZu_msg_WC",
                    "type": "string",
                    "read": true,
                    "write": true,
                    "role": "state",
                    "desc": "Texpuffer WC",
                    "custom": {
                        "history.0": {
                            "enabled": true,
                            "changesOnly": true,
                            "debounce": "",
                            "maxLength": "",
                            "retention": 0,
                            "changesRelogInterval": "",
                            "changesMinDelta": "",
                            "aliasId": ""
                        },
                        "influxdb.0": {
                            "enabled": true,
                            "changesOnly": false,
                            "debounce": "",
                            "retention": 0,
                            "changesRelogInterval": 0,
                            "changesMinDelta": 0,
                            "storageType": ""
                        }
                    }
                },
                "native": {
                    "Name": "AllesZu_msg_WC",
                    "TypeName": "VARDP",
                    "DPInfo": "Texpuffer WC",
                    "ValueMin": null,
                    "ValueMax": null,
                    "ValueUnit": "",
                    "ValueType": 20,
                    "ValueSubType": 11,
                    "ValueList": ""
                },
                "acl": {
                    "object": 1636,
                    "state": 1636
                }
            }
            
            

            relevant ist in diesem Fall der Wert des Strings
            "val": "WC-Fenster",
            Wird das Fenster wieder geschlossen, dann schreibe ich einen Leerstring in diese Variable und ioBroker antwortet auf obige Abfrage mit einem geänderten Wert
            "val": "",
            Die Ausgabe kommt wie gezeigt im JSON Format, wenn man /?prettyPrint anhängt.
            Wenn man das wegläßt kommt einfach plain text

            	
            val	""
            ack	true
            ts	1607927113044
            q	0
            from	"system.adapter.hm-rega.0"
            user	"system.user.admin"
            lc	1608929424856
            _id	"hm-rega.0.7419"
            type	"state"
            common	
            name	"AllesZu_msg_WC"
            type	"string"
            read	true
            write	true
            role	"state"
            desc	"Texpuffer WC"
            custom	
            history.0	
            enabled	true
            changesOnly	true
            debounce	""
            maxLength	""
            retention	0
            changesRelogInterval	""
            changesMinDelta	""
            aliasId	""
            influxdb.0	
            enabled	true
            changesOnly	false
            debounce	""
            retention	0
            changesRelogInterval	0
            changesMinDelta	0
            storageType	""
            native	
            Name	"AllesZu_msg_WC"
            TypeName	"VARDP"
            DPInfo	"Texpuffer WC"
            ValueMin	null
            ValueMax	null
            ValueUnit	""
            ValueType	20
            ValueSubType	11
            ValueList	""
            acl	
            object	1636
            state	1636
            

            Einen manuell angelegten Datenpunkt kann man sicher einfacher gestalten. Aber um ein Parsen auf dem Empfänger wird man nicht herumkommen.
            Man kann jetzt also vom verarbeitenden Gerät aus alle Datenpunkte einzeln oder per bulk abfragen und hat damit die Komplexität dort.
            Oder man legt etwas mehr Komplexität in den ioBroker und schreibt ein Schript, welches eine Liste der offenen Türen zusammenstellt und holt dann per get diese Liste ab.

            Zur Zusatzfrage: Man kann ein Script auslösen, wenn man per simpleApi "set" einen Datenpunkt verändert (oder zumindest setzt) und das JavaScript auf diese Veränderung bzw. das Setzen triggern läßt.

            Dominic ReberD 1 Antwort Letzte Antwort
            0
            • K klassisch

              Dazu ein konkretes Beispiel.
              Aus alten Zeiten habe ich für jedes Fenster eine Homematic-Variable, in die ein Text geschrieben wird, wenn ein Fenster offen ist.
              Diese Variable wird zum ioBroker übertragen.
              Dort hat diese Variable den leider wenig sprechenden Datenpunkt

              hm-rega.0.7419
              

              und mit einer simpleApi Abfrage

              http://192.168.1.25:8087/get/hm-rega.0.7419/?prettyPrint
              

              bekomme ich in diesem Fall ein recht komplexes Objekt in JSON

              {
                  "val": "WC-Fenster",
                  "ack": true,
                  "ts": 1607927113044,
                  "q": 0,
                  "from": "system.adapter.hm-rega.0",
                  "user": "system.user.admin",
                  "lc": 1608927984804,
                  "_id": "hm-rega.0.7419",
                  "type": "state",
                  "common": {
                      "name": "AllesZu_msg_WC",
                      "type": "string",
                      "read": true,
                      "write": true,
                      "role": "state",
                      "desc": "Texpuffer WC",
                      "custom": {
                          "history.0": {
                              "enabled": true,
                              "changesOnly": true,
                              "debounce": "",
                              "maxLength": "",
                              "retention": 0,
                              "changesRelogInterval": "",
                              "changesMinDelta": "",
                              "aliasId": ""
                          },
                          "influxdb.0": {
                              "enabled": true,
                              "changesOnly": false,
                              "debounce": "",
                              "retention": 0,
                              "changesRelogInterval": 0,
                              "changesMinDelta": 0,
                              "storageType": ""
                          }
                      }
                  },
                  "native": {
                      "Name": "AllesZu_msg_WC",
                      "TypeName": "VARDP",
                      "DPInfo": "Texpuffer WC",
                      "ValueMin": null,
                      "ValueMax": null,
                      "ValueUnit": "",
                      "ValueType": 20,
                      "ValueSubType": 11,
                      "ValueList": ""
                  },
                  "acl": {
                      "object": 1636,
                      "state": 1636
                  }
              }
              
              

              relevant ist in diesem Fall der Wert des Strings
              "val": "WC-Fenster",
              Wird das Fenster wieder geschlossen, dann schreibe ich einen Leerstring in diese Variable und ioBroker antwortet auf obige Abfrage mit einem geänderten Wert
              "val": "",
              Die Ausgabe kommt wie gezeigt im JSON Format, wenn man /?prettyPrint anhängt.
              Wenn man das wegläßt kommt einfach plain text

              	
              val	""
              ack	true
              ts	1607927113044
              q	0
              from	"system.adapter.hm-rega.0"
              user	"system.user.admin"
              lc	1608929424856
              _id	"hm-rega.0.7419"
              type	"state"
              common	
              name	"AllesZu_msg_WC"
              type	"string"
              read	true
              write	true
              role	"state"
              desc	"Texpuffer WC"
              custom	
              history.0	
              enabled	true
              changesOnly	true
              debounce	""
              maxLength	""
              retention	0
              changesRelogInterval	""
              changesMinDelta	""
              aliasId	""
              influxdb.0	
              enabled	true
              changesOnly	false
              debounce	""
              retention	0
              changesRelogInterval	0
              changesMinDelta	0
              storageType	""
              native	
              Name	"AllesZu_msg_WC"
              TypeName	"VARDP"
              DPInfo	"Texpuffer WC"
              ValueMin	null
              ValueMax	null
              ValueUnit	""
              ValueType	20
              ValueSubType	11
              ValueList	""
              acl	
              object	1636
              state	1636
              

              Einen manuell angelegten Datenpunkt kann man sicher einfacher gestalten. Aber um ein Parsen auf dem Empfänger wird man nicht herumkommen.
              Man kann jetzt also vom verarbeitenden Gerät aus alle Datenpunkte einzeln oder per bulk abfragen und hat damit die Komplexität dort.
              Oder man legt etwas mehr Komplexität in den ioBroker und schreibt ein Schript, welches eine Liste der offenen Türen zusammenstellt und holt dann per get diese Liste ab.

              Zur Zusatzfrage: Man kann ein Script auslösen, wenn man per simpleApi "set" einen Datenpunkt verändert (oder zumindest setzt) und das JavaScript auf diese Veränderung bzw. das Setzen triggern läßt.

              Dominic ReberD Offline
              Dominic ReberD Offline
              Dominic Reber
              schrieb am zuletzt editiert von
              #6

              Super, danke euch beiden!

              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

              739

              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