Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Rolle eines Objektes auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Rolle eines Objektes auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active last edited by mickym

      Ich verstehe es nicht, Du hast doch geschrieben, dass meine Lösung funktioniert, indem Du die Rolle im Selektor filterst.

      https://forum.iobroker.net/post/1219936

      Was willst Du mehr. Und warum Du die neuen Puzzleteile nicht verwenden kannst, habe ich Dir eigentlich auch mehrfach erklärt.
      Du kannst auch functions oder rooms eingeben - das ist alles in dem Screenshot:
      1c5e26eb-91af-4474-8001-cafcb3f76f11-image.png
      Na dann lasse ich Euch wieder alleine hier.

      J 2 Replies Last reply Reply Quote 0
      • J
        JoergH @mickym last edited by

        @mickym sagte in Rolle eines Objektes auslesen:

        Ich verstehe es nicht, Du hast doch geschrieben, dass meine Lösung funktioniert, indem Du die Rolle im Selektor filterst.

        https://forum.iobroker.net/post/1219936

        Was willst Du mehr. Und warum Du die neuen Puzzleteile nicht verwenden kannst, habe ich Dir eigentlich auch mehrfach erklärt.

        Na dann lasse ich Euch wieder alleine hier.

        Ich würde Dir ja gerne helfen, weiß nur nicht was Du denn nicht verstehst?

        Die Diskussion mit @Homoran ging doch jetzt um die Motivation, was ich vorhabe und warum...

        Unzutreffend ist jedenfalls, dass man nicht auf Objekte zugreifen kann und um nichts anderes ging es bei meinem Beispiel der neuen Bausteine.

        1 Reply Last reply Reply Quote 0
        • J
          JoergH @mickym last edited by JoergH

          @mickym sagte in Rolle eines Objektes auslesen:

          Was willst Du mehr. Und warum Du die neuen Puzzleteile nicht verwenden kannst, habe ich Dir eigentlich auch mehrfach erklärt.
          Du kannst auch functions oder rooms eingeben - das ist alles in dem Screenshot:

          Die States kann ich damit auslesen, aber leider sind die Räume und Funktionen bei den Channels angehängt. Ich bekomme keine Ergebnisse, wenn ich die [EDIT] functions der States abfrage, da dort nichts hinterlegt ist. Wie bekomme ich denn die functions der channel bspw.?

          6e2ad176-3a52-4d70-ac85-4a1984d202d8-grafik.png

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @JoergH last edited by

            @joergh sagte: keine Ergebnisse, wenn ich die States abfrage

            Wie fragst du sie ab?

            J 1 Reply Last reply Reply Quote 0
            • J
              JoergH @paul53 last edited by JoergH

              @paul53 Habe da alles Mögliche probiert, weiss aber nicht wie...mit [channel.id=hm-rpc.1..1.] geht es jedenfalls nicht...

              [EDIT]

              Ich meinte nicht die States, sondern die functions der states....sorry!

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @JoergH last edited by paul53

                @joergh sagte: mit [channel.id=hm-rpc.1..1.] geht es jedenfalls nicht...

                Du möchtest das Gewerk im Selektor verwenden? Wie ist die Schreibweise in der Enum-ID? Denn diese ist entscheidend für

                $('hm-rpc.1.*.STATE(functions=gewerk)')
                
                J 1 Reply Last reply Reply Quote 1
                • J
                  JoergH @paul53 last edited by

                  @paul53 Danke Dir! Jetzt hab ich es hinbekommen!

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @JoergH last edited by paul53

                    @joergh sagte: Jetzt hab ich es hinbekommen!

                    Möchtest du dann den zugehörigen Raum abfragen, wird eine JS-Funktion mit Ergebnis benötigt.

                    id = id.substring(0, id.lastIndexOf('.')); // parentID (Kanal)
                    if(existsObject(id)) {
                        let room = getObject(id, 'rooms').enumNames[0];
                        if(typeof room == 'object') room = room.de;
                        return room;
                    }
                    

                    Blockly_temp.JPG

                    J 2 Replies Last reply Reply Quote 0
                    • J
                      JoergH @paul53 last edited by

                      @paul53 Ok. Schade, dass das nicht auch wie mit functions funktioniert. Danke für den Code!

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @JoergH last edited by

                        @joergh sagte: Schade, dass das nicht auch wie mit functions funktioniert.

                        Die Selektion funktioniert auch mit (rooms=raum). Aber du willst ja nicht nach Räumen selektieren, sondern bei offenem Fenster den zugehörigen Raumnamen, der dem Kanal (parentObject) zugewiesen ist, ausgeben.

                        J 2 Replies Last reply Reply Quote 0
                        • J
                          JoergH @paul53 last edited by

                          @paul53 sagte in Rolle eines Objektes auslesen:

                          @joergh sagte: Schade, dass das nicht auch wie mit functions funktioniert.

                          Die Selektion funktioniert auch mit (rooms=raum). Aber du willst ja nicht nach Räumen selektieren, sondern bei offenem Fenster den zugehörigen Raumnamen, der dem Kanal (parentObject) zugewiesen ist, ausgeben.

                          Genau.

                          1 Reply Last reply Reply Quote 0
                          • J
                            JoergH @paul53 last edited by

                            @paul53
                            Warum wirft er mir hier eine Fehlermeldung "TypeError: Fensterliste_neu.push is not a function" beim Eintragen des Elements als letzten Eintrag in die Liste?

                            Screenshot 2024-11-16 173945.png

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @JoergH last edited by paul53

                              @joergh sagte: Eintragen des Elements als letzten Eintrag in die Liste?

                              Ist Fensterliste_neu als leere Liste initialisiert worden?
                              Das sieht recht unstrukturiert aus (z.B. Element enthält eine Datenpunkt-ID).
                              Was möchtest du erreichen?

                              J 2 Replies Last reply Reply Quote 0
                              • J
                                JoergH @paul53 last edited by JoergH

                                @paul53 sagte in Rolle eines Objektes auslesen:

                                @joergh sagte: Eintragen des Elements als letzten Eintrag in die Liste?

                                Ist Fensterliste_neu als leere Liste initialisiert worden?
                                Das sieht recht unstrukturiert aus (z.B. Element enthält eine Datenpunkt-ID).
                                Was möchtest du erreichen?

                                Das ist genau so beabsichtigt. Ich will die IDs in einer Liste abspeichern.
                                Es gibt eine alte Liste und die wird mit der neuen Liste verglichen. Sollten neue IDs aufgetaucht sein, die als "Fenster" deklariert sind, so werden diese zu der alten Liste hinzugefügt und in der "Fensterliste_neu" gespeichert.

                                Anbei der obere Teil

                                5bd5f41a-0c80-4d07-8c7b-a83939b756c5-grafik.png

                                P.S.: In dieser Version ohne initiales Element in der alten Liste wirft er auch noch einen length Fehler aus, aber das ist nicht der Punkt. Ich kann da auch einen sinnlosen Init-Wert einfügen.

                                paul53 1 Reply Last reply Reply Quote 0
                                • J
                                  JoergH @paul53 last edited by

                                  @paul53 sagte in Rolle eines Objektes auslesen:

                                  @joergh sagte: Eintragen des Elements als letzten Eintrag in die Liste?

                                  Ist Fensterliste_neu als leere Liste initialisiert worden?
                                  Das sieht recht unstrukturiert aus (z.B. Element enthält eine Datenpunkt-ID).
                                  Was möchtest du erreichen?

                                  Hat sich erledigt. Auf einmal geht es...

                                  1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @JoergH last edited by paul53

                                    @joergh sagte: Sollten neue IDs aufgetaucht sein, die als "Fenster" deklariert sind, so werden diese zu der alten Liste hinzugefügt und in der "Fensterliste_neu" gespeichert.

                                    Wozu soll das gut sein? Bei Skriptstart werden alle Fenster erfasst - auch neue.

                                    Vorschlag zur Erfassung offener Fenster und deren Räume:

                                    Blockly_temp.JPG

                                    J 1 Reply Last reply Reply Quote 0
                                    • J
                                      JoergH @paul53 last edited by

                                      @paul53 Das ist der Anfang einer Logik und nicht das Ende. Erstmal muss das funktionieren und das tut es jetzt auch. Ich will die Liste der IDs speichern und wenn ein neuer Sensor dazu kommt, dann soll er den mit aufnehmen. So verhindere ich, dass wenn die Funktionen mal wieder verschwinden er nicht mehr weiß was ein Fenstersensor ist. Das fällt mir nämlich immer erst dann auf, wenn ich irgendwann keine Ansage mehr bekomme welches Fenster gerade offen ist. Dazu speichere ich mir die Räume und nutze das anstatt der direkt ausgelesenen Werte, die immer wieder mal weg sind.

                                      Danke ansonsten für die Hilfe.

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • J
                                        JoergH @paul53 last edited by

                                        @paul53 sagte in Rolle eines Objektes auslesen:

                                        @joergh sagte: Jetzt hab ich es hinbekommen!

                                        Möchtest du dann den zugehörigen Raum abfragen, wird eine JS-Funktion mit Ergebnis benötigt.

                                        id = id.substring(0, id.lastIndexOf('.')); // parentID (Kanal)
                                        if(existsObject(id)) {
                                            let room = getObject(id, 'rooms').enumNames[0];
                                            if(typeof room == 'object') room = room.de;
                                            return room;
                                        }
                                        

                                        Blockly_temp.JPG

                                        Welches Format muss denn die id haben?
                                        Wenn ich ihm die DP-ID gebe, findet er nichts...

                                        c5219416-af69-48fa-ba8f-3c9533eae559-grafik.png

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @JoergH last edited by

                                          @joergh sagte: wenn ein neuer Sensor dazu kommt

                                          Dann müssen "hm-rpc.1" und "hm-rega.0" neu gestartet werden und anschließend die Javascript-Instanz. Und alles ist gut.

                                          J 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @JoergH last edited by paul53

                                            @joergh sagte in Rolle eines Objektes auslesen:

                                            Wenn ich ihm die DP-ID gebe, findet er nichts...

                                            Bei mir funktioniert es.

                                            hm-rpc_Wohnzimmer.JPG

                                            Blockly_temp.JPG

                                            J 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            958
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            55
                                            1545
                                            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