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. [gelöst] Javascript - Datenobjekte vom gewissen Typ abfragen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[gelöst] Javascript - Datenobjekte vom gewissen Typ abfragen

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 2 Kommentatoren 704 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.
  • S Offline
    S Offline
    Speedy-Turbo
    schrieb am zuletzt editiert von Speedy-Turbo
    #1

    Hallo.
    ich komme leide an dieser Stelle einfach nicht weiter:
    Ich würde gerne alle Homatic Geräte/Objekte vom Typ Device abfragen.
    Also im Prinzip nur den ersten Eintrag.

    Folgendes habe ich ohne Erfolg probiert:

    var cacheSelectorState=$('channel[state.id=hm-rpc.1.*](types="device")');
    var cacheSelectorState=$('channel[state.id=hm-rpc.1.*](type="device")');
    var cacheSelectorState=$('channel[state.id=hm-rpc.1.*](TYPE="DEVICE")');
    

    Das hier funktioniert:

    var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*]');
    var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](functions="Verschluss")');
    var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](rooms="EG-Schlafzimmer")');
    

    Habe das hier gefunden:
    https://www.iobroker.net/docu/index-81.htm?page_id=5809&lang=en
    $(‘channel{TYPE=BLIND}[state.id=*.LEVEL]’) – Get all shutter of Homematic

    Aber das funktioniert ja auch nicht.

    Könnte mir vorstellen das ich da irgendwie falsch abgebogen bin.
    channel bezieht sich doch auf die erste Zeile im Objektbrowser ?
    In den Objekteigenschaften finde ich sie zumindest nicht .

    Oder kann man gar nicht den Typ abfragen ?

    Gruß Speedy
    Channel_objects.png

    Iobroker_Objekteigenschaften.png

    paul53P 1 Antwort Letzte Antwort
    0
    • S Speedy-Turbo

      Hallo.
      ich komme leide an dieser Stelle einfach nicht weiter:
      Ich würde gerne alle Homatic Geräte/Objekte vom Typ Device abfragen.
      Also im Prinzip nur den ersten Eintrag.

      Folgendes habe ich ohne Erfolg probiert:

      var cacheSelectorState=$('channel[state.id=hm-rpc.1.*](types="device")');
      var cacheSelectorState=$('channel[state.id=hm-rpc.1.*](type="device")');
      var cacheSelectorState=$('channel[state.id=hm-rpc.1.*](TYPE="DEVICE")');
      

      Das hier funktioniert:

      var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*]');
      var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](functions="Verschluss")');
      var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](rooms="EG-Schlafzimmer")');
      

      Habe das hier gefunden:
      https://www.iobroker.net/docu/index-81.htm?page_id=5809&lang=en
      $(‘channel{TYPE=BLIND}[state.id=*.LEVEL]’) – Get all shutter of Homematic

      Aber das funktioniert ja auch nicht.

      Könnte mir vorstellen das ich da irgendwie falsch abgebogen bin.
      channel bezieht sich doch auf die erste Zeile im Objektbrowser ?
      In den Objekteigenschaften finde ich sie zumindest nicht .

      Oder kann man gar nicht den Typ abfragen ?

      Gruß Speedy
      Channel_objects.png

      Iobroker_Objekteigenschaften.png

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

      @speedy-turbo
      Der Selektor liefert nur Datenpunkte. Bei hm-rpc ist die Device-ID 2 Ebenen über der Datenpunkt-ID.

      id = id.substring(0, id.lastIndexOf('.')); // Channel-ID
      id = id.substring(0, id.lastIndexOf('.')); // Device-ID
      const devName = getObject(id).common.name; // Device-Name
      

      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

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @speedy-turbo
        Der Selektor liefert nur Datenpunkte. Bei hm-rpc ist die Device-ID 2 Ebenen über der Datenpunkt-ID.

        id = id.substring(0, id.lastIndexOf('.')); // Channel-ID
        id = id.substring(0, id.lastIndexOf('.')); // Device-ID
        const devName = getObject(id).common.name; // Device-Name
        
        S Offline
        S Offline
        Speedy-Turbo
        schrieb am zuletzt editiert von Speedy-Turbo
        #3

        @paul53
        Danke für die schnelle Antwort.

        Also am Beispiel von einem Homatic Fensterkontakt;
        hm-rpc.1.0000DBE0815Z99.1.STATE - hier kann ich mit den Selektoren nur STATE abfragen richtig ?
        STATE wäre dann die Datenpunkt-ID ?

        Eine Alternative gibt es da wohl nicht oder ?

        Und noch eine Frage:
        Abfrage functions und rooms habe ich ja hinbekommen auf Datenpunkt-ID Ebene.
        Wie kann ich denn Typ und Rollen abfragen ?

        var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](role="value.window")');
        var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](type="state")');
        

        Ist Rolle = role und Status = state ?

        Oder geht das nicht ?

        paul53P 1 Antwort Letzte Antwort
        0
        • S Speedy-Turbo

          @paul53
          Danke für die schnelle Antwort.

          Also am Beispiel von einem Homatic Fensterkontakt;
          hm-rpc.1.0000DBE0815Z99.1.STATE - hier kann ich mit den Selektoren nur STATE abfragen richtig ?
          STATE wäre dann die Datenpunkt-ID ?

          Eine Alternative gibt es da wohl nicht oder ?

          Und noch eine Frage:
          Abfrage functions und rooms habe ich ja hinbekommen auf Datenpunkt-ID Ebene.
          Wie kann ich denn Typ und Rollen abfragen ?

          var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](role="value.window")');
          var cacheSelectorState  = $('channel[state.id=hm-rpc.1.*](type="state")');
          

          Ist Rolle = role und Status = state ?

          Oder geht das nicht ?

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

          @speedy-turbo sagte: Wie kann ich denn Typ und Rollen abfragen ?

          const idsNumber = $('hm-rpc.1.*[type=number]'); // Alle DP vom Typ Zahl
          const idsWindow = $('hm-rpc.1.*[role=value.window]'); // Alle DP mit Rolle "value.window"
          

          Den Objekt-Typ kann man nicht abfragen, was auch keinen Sinn machen würde, da es sich immer um Datenpunkte ("state") handelt.
          In runden Klammern selektiert man nach Aufzählungen, in eckigen Klammern nach Common-Attributen.

          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

          S 2 Antworten Letzte Antwort
          0
          • paul53P paul53

            @speedy-turbo sagte: Wie kann ich denn Typ und Rollen abfragen ?

            const idsNumber = $('hm-rpc.1.*[type=number]'); // Alle DP vom Typ Zahl
            const idsWindow = $('hm-rpc.1.*[role=value.window]'); // Alle DP mit Rolle "value.window"
            

            Den Objekt-Typ kann man nicht abfragen, was auch keinen Sinn machen würde, da es sich immer um Datenpunkte ("state") handelt.
            In runden Klammern selektiert man nach Aufzählungen, in eckigen Klammern nach Common-Attributen.

            S Offline
            S Offline
            Speedy-Turbo
            schrieb am zuletzt editiert von
            #5

            @paul53
            Super - vielen Dank

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @speedy-turbo sagte: Wie kann ich denn Typ und Rollen abfragen ?

              const idsNumber = $('hm-rpc.1.*[type=number]'); // Alle DP vom Typ Zahl
              const idsWindow = $('hm-rpc.1.*[role=value.window]'); // Alle DP mit Rolle "value.window"
              

              Den Objekt-Typ kann man nicht abfragen, was auch keinen Sinn machen würde, da es sich immer um Datenpunkte ("state") handelt.
              In runden Klammern selektiert man nach Aufzählungen, in eckigen Klammern nach Common-Attributen.

              S Offline
              S Offline
              Speedy-Turbo
              schrieb am zuletzt editiert von Speedy-Turbo
              #6

              @paul53
              Hallo
              Jetzt habe ich doch noch eine Frage:
              Gibt es denn eine Möglichkeit die Werte eines Objektes in Javascript abzufragen ?
              Kann man diese Werte (obwohl es kein Datenpunkt ist) irgendwie abfragen ?
              Ich würde gerne eine Inventarisierung meiner Geräte machen und z.B. diesen Wert native - TYPE abfragen um den Gerätetyp zu bestimmen.

              Gruß Speedy
              Iobroker-Objekt.png

              paul53P 1 Antwort Letzte Antwort
              0
              • S Speedy-Turbo

                @paul53
                Hallo
                Jetzt habe ich doch noch eine Frage:
                Gibt es denn eine Möglichkeit die Werte eines Objektes in Javascript abzufragen ?
                Kann man diese Werte (obwohl es kein Datenpunkt ist) irgendwie abfragen ?
                Ich würde gerne eine Inventarisierung meiner Geräte machen und z.B. diesen Wert native - TYPE abfragen um den Gerätetyp zu bestimmen.

                Gruß Speedy
                Iobroker-Objekt.png

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

                @speedy-turbo sagte: Kann man diese Werte (obwohl es kein Datenpunkt ist) irgendwie abfragen ?

                Ja, verwende einen Selektor für einen Datenpunkt, den es in jedem Gerät genau einmal gibt, z.B. "hm-rpc.*.0.UNREACH". Dann ermittle die Geräte-ID (2 Ebenen höher) und lese den Typ aus dem Objekt.

                id = id.substring(0, id.lastIndexOf('.')); // Channel-ID
                id = id.substring(0, id.lastIndexOf('.')); // Device-ID
                const devType = getObject(id).native.TYPE; // Device-Type
                

                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

                S 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @speedy-turbo sagte: Kann man diese Werte (obwohl es kein Datenpunkt ist) irgendwie abfragen ?

                  Ja, verwende einen Selektor für einen Datenpunkt, den es in jedem Gerät genau einmal gibt, z.B. "hm-rpc.*.0.UNREACH". Dann ermittle die Geräte-ID (2 Ebenen höher) und lese den Typ aus dem Objekt.

                  id = id.substring(0, id.lastIndexOf('.')); // Channel-ID
                  id = id.substring(0, id.lastIndexOf('.')); // Device-ID
                  const devType = getObject(id).native.TYPE; // Device-Type
                  
                  S Offline
                  S Offline
                  Speedy-Turbo
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 sagte in Javascript - Datenobjekte vom gewissen Typ abfragen:

                  const devType = getObject(id).native.TYPE;

                  Perfekt - das hat super funktioniert.

                  const devType = getObject('hm-rpc.1.0000DBE9970815').native.TYPE;
                  console.log("Ausgabe devType:  " +  devType);
                  

                  Ausgabe:

                  Ausgabe devType: HMIP-SWDO
                  

                  Vielen Dank

                  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

                  666

                  Online

                  32.6k

                  Benutzer

                  82.3k

                  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