Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Javascript - Datenobjekte vom gewissen Typ abfragen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Speedy-Turbo last edited by 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

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Speedy-Turbo last edited by 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 1 Reply Last reply Reply Quote 0
        • S
          Speedy-Turbo @paul53 last edited by 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 ?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Speedy-Turbo last edited by 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 2 Replies Last reply Reply Quote 0
            • S
              Speedy-Turbo @paul53 last edited by

              @paul53
              Super - vielen Dank

              1 Reply Last reply Reply Quote 0
              • S
                Speedy-Turbo @paul53 last edited by 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

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Speedy-Turbo last edited by

                  @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 1 Reply Last reply Reply Quote 0
                  • S
                    Speedy-Turbo @paul53 last edited by

                    @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 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    677
                    Online

                    31.8k
                    Users

                    80.0k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    431
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo