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. Blockly
  5. Rolle eines Objektes auslesen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    684

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Rolle eines Objektes auslesen

Geplant Angeheftet Gesperrt Verschoben Blockly
55 Beiträge 4 Kommentatoren 4.3k 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.
  • J 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.

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

    @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

    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

    J 1 Antwort Letzte Antwort
    0
    • paul53P 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 Offline
      J Offline
      JoergH
      schrieb am zuletzt editiert von
      #43

      @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.

      paul53P 1 Antwort Letzte Antwort
      0
      • paul53P 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 Offline
        J Offline
        JoergH
        schrieb am zuletzt editiert von
        #44

        @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

        paul53P 1 Antwort Letzte Antwort
        0
        • J JoergH

          @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.

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

          @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.

          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

          J 1 Antwort Letzte Antwort
          0
          • J JoergH

            @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

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

            @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

            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

            J 2 Antworten Letzte Antwort
            0
            • paul53P paul53

              @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 Offline
              J Offline
              JoergH
              schrieb am zuletzt editiert von JoergH
              #47

              Disregard

              1 Antwort Letzte Antwort
              0
              • paul53P 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 Offline
                J Offline
                JoergH
                schrieb am zuletzt editiert von
                #48

                @paul53 Danke, man muss das Skript auch starten und nicht nur speichern, dann geht's :face_palm:

                1 Antwort Letzte Antwort
                0
                • paul53P 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 Offline
                  J Offline
                  JoergH
                  schrieb am zuletzt editiert von
                  #49

                  @paul53 Wenn ich in einem Skript Trigger starte, das Skript selbst dann stoppe oder neustarte, werden dann die erzeugten Trigger auch gestoppt?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • J JoergH

                    @paul53 Wenn ich in einem Skript Trigger starte, das Skript selbst dann stoppe oder neustarte, werden dann die erzeugten Trigger auch gestoppt?

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

                    @joergh sagte: Skript selbst dann stoppe oder neustarte, werden dann die erzeugten Trigger auch gestoppt?

                    Bei Skriptstop werden die Trigger im Skript gelöscht und bei Skriptstart neu erzeugt.

                    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

                    J 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @joergh sagte: Skript selbst dann stoppe oder neustarte, werden dann die erzeugten Trigger auch gestoppt?

                      Bei Skriptstop werden die Trigger im Skript gelöscht und bei Skriptstart neu erzeugt.

                      J Offline
                      J Offline
                      JoergH
                      schrieb am zuletzt editiert von
                      #51

                      @paul53 Ich meine die, die ich nicht vorher fest programmiert habe, sondern die ich durch das Programm anlegen lasse, z.B. durch Aufruf einer Funktion, in die ich das packe...?

                      fb9430f9-ea68-4c49-9631-2ab59d4ad198-grafik.png

                      Werden die auch mit gestoppt?

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • J JoergH

                        @paul53 Ich meine die, die ich nicht vorher fest programmiert habe, sondern die ich durch das Programm anlegen lasse, z.B. durch Aufruf einer Funktion, in die ich das packe...?

                        fb9430f9-ea68-4c49-9631-2ab59d4ad198-grafik.png

                        Werden die auch mit gestoppt?

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

                        @joergh sagte: Werden die auch mit gestoppt?

                        Gestoppt werden alle Trigger.
                        Wenn ein Trigger innerhalb einer Funktion erzeugt wird (weshalb eigentlich?), muss die Funktion bei Skriptstart aufgerufen werden, um dann den Trigger zu erzeugen.

                        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
                        • J Offline
                          J Offline
                          JoergH
                          schrieb am zuletzt editiert von
                          #53

                          @paul53
                          Danke erneut für die Auskunft.

                          Weitere Frage: Bisher ist es, soweit ich weiß, nicht möglich mehrere Cronjobs mit variablen Namen automatisiert zu starten und zu beenden, korrekt?

                          Die Idee ist, wenn ein Fenster geöffnet wird, für jedes, einen dazugehörigen Cronjob mit einer regelmäßigen Aktion zu starten, also z.B. nach X Minuten eine Erinnerung zu senden.
                          Da ich in den Blockly Bausteinen wie z.B. "Intervall" oder Cronjob nur fixe Namen vergeben kann und keine variablen, würde beim zweiten Fenster ein Intervall mit dem gleichen Namen gestartet, was dazu führt, dass man sie nicht mehr korrekt beenden kann oder gibt es hier inzwischen andere Möglichkeiten?

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • J JoergH

                            @paul53
                            Danke erneut für die Auskunft.

                            Weitere Frage: Bisher ist es, soweit ich weiß, nicht möglich mehrere Cronjobs mit variablen Namen automatisiert zu starten und zu beenden, korrekt?

                            Die Idee ist, wenn ein Fenster geöffnet wird, für jedes, einen dazugehörigen Cronjob mit einer regelmäßigen Aktion zu starten, also z.B. nach X Minuten eine Erinnerung zu senden.
                            Da ich in den Blockly Bausteinen wie z.B. "Intervall" oder Cronjob nur fixe Namen vergeben kann und keine variablen, würde beim zweiten Fenster ein Intervall mit dem gleichen Namen gestartet, was dazu führt, dass man sie nicht mehr korrekt beenden kann oder gibt es hier inzwischen andere Möglichkeiten?

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

                            @joergh sagte: "Intervall" oder Cronjob nur fixe Namen vergeben kann

                            Ja, das ist eine Einschränkung von Blockly. In Javascript kann man ein Array für die Timer-Variablen verwenden.

                            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

                            J 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @joergh sagte: "Intervall" oder Cronjob nur fixe Namen vergeben kann

                              Ja, das ist eine Einschränkung von Blockly. In Javascript kann man ein Array für die Timer-Variablen verwenden.

                              J Offline
                              J Offline
                              JoergH
                              schrieb am zuletzt editiert von
                              #55

                              @paul53

                              Dachte ich mir...dann muss ich mich da wohl mal dran versuchen. Wenn ich von Blockly aus den Namen übergeben könnte beim starten und beenden, würde das ja auch reichen...morgen geht's weiter...

                              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

                              707

                              Online

                              32.5k

                              Benutzer

                              81.6k

                              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