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. [gelöst] Verständnis Attribute mit Blockly ändern

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 4 Kommentatoren 353 Aufrufe 2 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.
  • padrinoP Online
    padrinoP Online
    padrino
    Most Active
    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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 Online
            padrinoP Online
            padrino
            Most Active
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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 Online
                padrinoP Online
                padrino
                Most Active
                schrieb am zuletzt editiert von
                #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 Antworten Letzte Antwort
                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 Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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 Online
                      padrinoP Online
                      padrino
                      Most Active
                      schrieb am zuletzt editiert von
                      #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 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

                      908

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      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