Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Verständnis Attribute mit Blockly ändern

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Verständnis Attribute mit Blockly ändern

Scheduled Pinned Locked Moved Skripten / Logik
10 Posts 4 Posters 506 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • padrinoP Offline
    padrinoP Offline
    padrino
    Most Active
    wrote on last edited by padrino
    #1

    Hi,

    also, eigentlich will ich ein Attribut überschreiben, aber irgendwie komm ich da nicht ran.
    Auslesen ist kein Problem, aber will ich schreiben, wird es nicht gefunden.
    Bereits das Prüfen auf Existenz scheitert... :man-shrugging:
    20251013_034008.png
    Wo biegt mein Hirn hier falsch ab? :relieved:

    AsgothianA paul53P 3 Replies Last reply
    0
    • padrinoP padrino

      Hi,

      also, eigentlich will ich ein Attribut überschreiben, aber irgendwie komm ich da nicht ran.
      Auslesen ist kein Problem, aber will ich schreiben, wird es nicht gefunden.
      Bereits das Prüfen auf Existenz scheitert... :man-shrugging:
      20251013_034008.png
      Wo biegt mein Hirn hier falsch ab? :relieved:

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      wrote on last edited by Asgothian
      #2

      @padrino sagte in Verständnis Attribute mit Blockly ändern:

      Wo biegt mein Hirn hier falsch ab?

      Ganz am Anfang.

      Dein Objekt sieht so aus:

      WC_Besucher = {
         common: ...
      }
      

      Die Funktion hat attribut Prüft nur dieses Objekt ab. Was auch immer da hinter dem Attribut common steht ist für die Funktion irrelevant. Das könnte so

      WC_Besucher = {
         common: "hier steht nur ein normaler Text"
      }
      

      oder so aussehen

      WC_Besucher = {
         common: { 
              desc: "description",
              name: "WC_Besucher"
      }
      

      der Baustein attribut "A" von Objekt Objekt B übersetzt sich dagegen in B.A Wenn da also an Stelle von "A" "A.S.E" steht, dann wird daraus B.A.S.E.

      Nebenbei geht das auch nur wenn da direkt ein Text eingesetzt wird. Wenn an Stelle des Bausteins "common.desc" eine die Variable attr eingesetzt wird, dann ändert sich der Code von WC_Besucher.common.desc zu WC_Besucher[attr]. Und wenn dann der Wert von attr "common.desc" ist, dann wird dein erstes Debug auch undefined heraus werfen.

      A.

      Edit: Typos. Wer noch welche Findet: Herzlichen Glückwunsch, Test bestanden :)

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      padrinoP 1 Reply Last reply
      1
      • padrinoP padrino

        Hi,

        also, eigentlich will ich ein Attribut überschreiben, aber irgendwie komm ich da nicht ran.
        Auslesen ist kein Problem, aber will ich schreiben, wird es nicht gefunden.
        Bereits das Prüfen auf Existenz scheitert... :man-shrugging:
        20251013_034008.png
        Wo biegt mein Hirn hier falsch ab? :relieved:

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by paul53
        #3

        @padrino sagte: will ich schreiben, wird es nicht gefunden.

        Um ein Datenpunkt-Attribut zu ändern, benötigt man die Funktion setObject(id, obj) oder extendObject(id, attr), die es in Blockly absichtlich nicht gibt.

        EDIT: Man kann sich mit einer Javascript-Funktion behelfen:

        extendObject(id, {common: {desc: desc}});
        

        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

        1 Reply Last reply
        1
        • padrinoP padrino

          Hi,

          also, eigentlich will ich ein Attribut überschreiben, aber irgendwie komm ich da nicht ran.
          Auslesen ist kein Problem, aber will ich schreiben, wird es nicht gefunden.
          Bereits das Prüfen auf Existenz scheitert... :man-shrugging:
          20251013_034008.png
          Wo biegt mein Hirn hier falsch ab? :relieved:

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

          @padrino sagte: Auslesen ist kein Problem

          Das geht auch einfacher:

          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

          1 Reply Last reply
          0
          • AsgothianA Asgothian

            @padrino sagte in Verständnis Attribute mit Blockly ändern:

            Wo biegt mein Hirn hier falsch ab?

            Ganz am Anfang.

            Dein Objekt sieht so aus:

            WC_Besucher = {
               common: ...
            }
            

            Die Funktion hat attribut Prüft nur dieses Objekt ab. Was auch immer da hinter dem Attribut common steht ist für die Funktion irrelevant. Das könnte so

            WC_Besucher = {
               common: "hier steht nur ein normaler Text"
            }
            

            oder so aussehen

            WC_Besucher = {
               common: { 
                    desc: "description",
                    name: "WC_Besucher"
            }
            

            der Baustein attribut "A" von Objekt Objekt B übersetzt sich dagegen in B.A Wenn da also an Stelle von "A" "A.S.E" steht, dann wird daraus B.A.S.E.

            Nebenbei geht das auch nur wenn da direkt ein Text eingesetzt wird. Wenn an Stelle des Bausteins "common.desc" eine die Variable attr eingesetzt wird, dann ändert sich der Code von WC_Besucher.common.desc zu WC_Besucher[attr]. Und wenn dann der Wert von attr "common.desc" ist, dann wird dein erstes Debug auch undefined heraus werfen.

            A.

            Edit: Typos. Wer noch welche Findet: Herzlichen Glückwunsch, Test bestanden :)

            padrinoP Offline
            padrinoP Offline
            padrino
            Most Active
            wrote on last edited by
            #5

            @asgothian
            Uff, das ist schon etwas verwirrend, aber danke für die Erklärung. :relieved:

            @paul53
            Ah, ok, da man wohl vermutlich zu viel kaputt machen kann, kommt man nur mit Blockly nicht ran.
            Aber danke, dass Du mir den Weg über JS gezeigt hast.
            Damit kann ich was anfangen. 🥳

            Danke auch für den Hinweis, dass man einfacher an die Desc kommen kann.
            Evtl. kann ich das später mal verwenden.
            Für den aktuellen Fall war das mit der Desc nur als Beispiel gedacht, bzw. für mich, zum Testen, ein Attribute mit dem ich recht gefahrlos experimentieren könnte, bis mein Skript funktioniert. :D
            In Wirklichkeit ist mein Ziel in ein paar rflink Objekten zu werkeln, genauer, deren interne "GeräteID" zu aktualieren/ändern. :)

            "native": {
                "ID": 283538,
                "brand": "F007_TH",
            ...
            

            Also, braucht es schon den "generellen Ansatz". ;)

            Denke, dass mit Deinem Beispiel Skript-Blockly-Hybriden die Chancen gut stehen, dass ich mein Ziel umsetzen kann. :+1:

            AsgothianA 1 Reply Last reply
            0
            • padrinoP padrino

              @asgothian
              Uff, das ist schon etwas verwirrend, aber danke für die Erklärung. :relieved:

              @paul53
              Ah, ok, da man wohl vermutlich zu viel kaputt machen kann, kommt man nur mit Blockly nicht ran.
              Aber danke, dass Du mir den Weg über JS gezeigt hast.
              Damit kann ich was anfangen. 🥳

              Danke auch für den Hinweis, dass man einfacher an die Desc kommen kann.
              Evtl. kann ich das später mal verwenden.
              Für den aktuellen Fall war das mit der Desc nur als Beispiel gedacht, bzw. für mich, zum Testen, ein Attribute mit dem ich recht gefahrlos experimentieren könnte, bis mein Skript funktioniert. :D
              In Wirklichkeit ist mein Ziel in ein paar rflink Objekten zu werkeln, genauer, deren interne "GeräteID" zu aktualieren/ändern. :)

              "native": {
                  "ID": 283538,
                  "brand": "F007_TH",
              ...
              

              Also, braucht es schon den "generellen Ansatz". ;)

              Denke, dass mit Deinem Beispiel Skript-Blockly-Hybriden die Chancen gut stehen, dass ich mein Ziel umsetzen kann. :+1:

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              wrote on last edited by
              #6

              @padrino sagte in [gelöst] Verständnis Attribute mit Blockly ändern:

              Für den aktuellen Fall war das mit der Desc nur als Beispiel gedacht, bzw. für mich, zum Testen, ein Attribute mit dem ich recht gefahrlos experimentieren könnte, bis mein Skript funktioniert.
              In Wirklichkeit ist mein Ziel in ein paar rflink Objekten zu werkeln, genauer, deren interne "GeräteID" zu aktualieren/ändern.

              Vorsicht beim Verändern von Objektattributen die in Namespaces der Adapter liegen - ggf. überwachen die Adapter diese und schreiben sie ggf. zu beliebigen Zeiten neu. Der Zigbee-Adapter macht das zum Beispiel bei jedem Start und jedes mal wenn ein Gerät neu angelernt wird.

              A.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              padrinoP 1 Reply Last reply
              0
              • AsgothianA Asgothian

                @padrino sagte in [gelöst] Verständnis Attribute mit Blockly ändern:

                Für den aktuellen Fall war das mit der Desc nur als Beispiel gedacht, bzw. für mich, zum Testen, ein Attribute mit dem ich recht gefahrlos experimentieren könnte, bis mein Skript funktioniert.
                In Wirklichkeit ist mein Ziel in ein paar rflink Objekten zu werkeln, genauer, deren interne "GeräteID" zu aktualieren/ändern.

                Vorsicht beim Verändern von Objektattributen die in Namespaces der Adapter liegen - ggf. überwachen die Adapter diese und schreiben sie ggf. zu beliebigen Zeiten neu. Der Zigbee-Adapter macht das zum Beispiel bei jedem Start und jedes mal wenn ein Gerät neu angelernt wird.

                A.

                padrinoP Offline
                padrinoP Offline
                padrino
                Most Active
                wrote on last edited by
                #7

                @asgothian
                Also, ich weiß jetzt leider nicht, was Du mit "Namespace" meinst, aber die von mir angesprochene "ID" wird im rflink Adapter nur einmal beim Anlegen des Objekts vergeben. Sie dient wohl dazu ein 433mHz Gerät von den anderen (eines Herstellers) zu unterscheiden.
                Wenn ich also z.B. die Batterie wechsle wird dieses ID neu vergeben, nachdem ich das Gerät neu hab suchen lassen.
                Damit der Objektbaum sauber und geordnet bleibt, habe ich für mich den Weg über die ID auserkoren, statt ein neues Gerät anlegen zu lassen, das alte dann manuell zu löschen und das neue in den Nanen des alten umzubenennen...

                HomoranH AsgothianA 2 Replies Last reply
                0
                • padrinoP padrino

                  @asgothian
                  Also, ich weiß jetzt leider nicht, was Du mit "Namespace" meinst, aber die von mir angesprochene "ID" wird im rflink Adapter nur einmal beim Anlegen des Objekts vergeben. Sie dient wohl dazu ein 433mHz Gerät von den anderen (eines Herstellers) zu unterscheiden.
                  Wenn ich also z.B. die Batterie wechsle wird dieses ID neu vergeben, nachdem ich das Gerät neu hab suchen lassen.
                  Damit der Objektbaum sauber und geordnet bleibt, habe ich für mich den Weg über die ID auserkoren, statt ein neues Gerät anlegen zu lassen, das alte dann manuell zu löschen und das neue in den Nanen des alten umzubenennen...

                  HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #8

                  @padrino sagte in [gelöst] Verständnis Attribute mit Blockly ändern:

                  was Du mit "Namespace"

                  der "Namensbereich" des Adapters, Also adapterName.#
                  im Prinzip alles was nicht 0_userdata.0 oder alias.0 ist

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Reply Last reply
                  1
                  • padrinoP padrino

                    @asgothian
                    Also, ich weiß jetzt leider nicht, was Du mit "Namespace" meinst, aber die von mir angesprochene "ID" wird im rflink Adapter nur einmal beim Anlegen des Objekts vergeben. Sie dient wohl dazu ein 433mHz Gerät von den anderen (eines Herstellers) zu unterscheiden.
                    Wenn ich also z.B. die Batterie wechsle wird dieses ID neu vergeben, nachdem ich das Gerät neu hab suchen lassen.
                    Damit der Objektbaum sauber und geordnet bleibt, habe ich für mich den Weg über die ID auserkoren, statt ein neues Gerät anlegen zu lassen, das alte dann manuell zu löschen und das neue in den Nanen des alten umzubenennen...

                    AsgothianA Offline
                    AsgothianA Offline
                    Asgothian
                    Developer
                    wrote on last edited by
                    #9

                    @padrino sagte in [gelöst] Verständnis Attribute mit Blockly ändern:

                    @asgothian
                    Also, ich weiß jetzt leider nicht, was Du mit "Namespace" meinst, aber die von mir angesprochene "ID" wird im rflink Adapter nur einmal beim Anlegen des Objekts vergeben. Sie dient wohl dazu ein 433mHz Gerät von den anderen (eines Herstellers) zu unterscheiden.
                    Wenn ich also z.B. die Batterie wechsle wird dieses ID neu vergeben, nachdem ich das Gerät neu hab suchen lassen.
                    Damit der Objektbaum sauber und geordnet bleibt, habe ich für mich den Weg über die ID auserkoren, statt ein neues Gerät anlegen zu lassen, das alte dann manuell zu löschen und das neue in den Nanen des alten umzubenennen...

                    Das müsste doch ein Standard-Problem für andere Nutzer des rflink Adapters zu sein. Hast du am Adapter mal ein Issue aufgemacht ob es eine Möglichkeit geben kann / soll das im Adapter abzubilden, anstatt das via JS nur für Dich zu lösen ?

                    A.

                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                    padrinoP 1 Reply Last reply
                    0
                    • AsgothianA Asgothian

                      @padrino sagte in [gelöst] Verständnis Attribute mit Blockly ändern:

                      @asgothian
                      Also, ich weiß jetzt leider nicht, was Du mit "Namespace" meinst, aber die von mir angesprochene "ID" wird im rflink Adapter nur einmal beim Anlegen des Objekts vergeben. Sie dient wohl dazu ein 433mHz Gerät von den anderen (eines Herstellers) zu unterscheiden.
                      Wenn ich also z.B. die Batterie wechsle wird dieses ID neu vergeben, nachdem ich das Gerät neu hab suchen lassen.
                      Damit der Objektbaum sauber und geordnet bleibt, habe ich für mich den Weg über die ID auserkoren, statt ein neues Gerät anlegen zu lassen, das alte dann manuell zu löschen und das neue in den Nanen des alten umzubenennen...

                      Das müsste doch ein Standard-Problem für andere Nutzer des rflink Adapters zu sein. Hast du am Adapter mal ein Issue aufgemacht ob es eine Möglichkeit geben kann / soll das im Adapter abzubilden, anstatt das via JS nur für Dich zu lösen ?

                      A.

                      padrinoP Offline
                      padrinoP Offline
                      padrino
                      Most Active
                      wrote on last edited by
                      #10

                      @asgothian
                      Also, ich glaube, der Adapter ist ziemlich tot. ;)
                      Wollte damit auch niemanden behelligen...
                      Hatte schon angefangen zu überlegen ob der Adapter evtl... und wie....
                      Aber dann dachte ich, ich guck mal, was ich in JS hin bekomme, und wenn's ordentlich klappt mach ich das Skript zugänglich für Interessierte. :relieved:

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      759

                      Online

                      32.7k

                      Users

                      82.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe