Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. JavaScript
  5. Szenen DP manipulieren mit extendObject

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    679

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Szenen DP manipulieren mit extendObject

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 388 Aufrufe 1 Beobachtet
  • Ä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.
  • sts85S Offline
    sts85S Offline
    sts85
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich möchte gerne in einer Szene (iobroker Scenes Adapter) einzelne Zustände inaktiv machen:
    29cc9caf-8f39-43c6-93fc-173577729d2c-image.png

    Dies würde ich gern über Blockly oder JavaScript lösen.

    Dazu habe ich den Ansatz über extendObject genutzt:

    extendObject('scene.0.TEST', {native: {members: [{disabled: true}]}});
    

    So lange die Szene nur aus einem Zustand besteht, funktioniert das so. Ich habe aber mehrere Zustände und weiß nicht, wie ich nur das "disabled" einer bestimmten ID manipulieren kann, da sie ja hintereinander in members stehen. Wie bekomme ich Zugriff auf das "disabled" der jeweiligen ID?

    {
      "common": {
        "name": "TEST",
        "type": "mixed",
        "role": "scene.state",
        "desc": "",
        "enabled": true,
        "read": true,
        "write": true,
        "def": false,
        "engine": "system.adapter.scenes.0"
      },
      "native": {
        "onTrue": {
          "trigger": {},
          "cron": null,
          "astro": null
        },
        "onFalse": {
          "enabled": true,
          "trigger": {},
          "cron": null,
          "astro": null
        },
        "easy": true,
        "burstInterval": 0,
        "members": [
          {
            "id": "alias.0.Buttons.Button-WZ-St-Weinregal",
            "setIfTrue": true,
            "setIfFalse": false,
            "stopAllDelays": true,
            "desc": null,
            "disabled": true,
            "delay": 0
          },
          {
            "id": "alias.0.Buttons.Button-WZ-Bilderrahmen",
            "setIfTrue": true,
            "setIfFalse": false,
            "stopAllDelays": true,
            "desc": null,
            "disabled": false,
            "delay": 0
          }
        ]
      },
      "type": "state",
      "_id": "scene.0.TEST",
      "from": "system.adapter.admin.0",
      "user": "system.user.admin",
      "ts": 1715248145422,
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      }
    }
    

    Danke euch,
    viele Grüße

    paul53P 1 Antwort Letzte Antwort
    0
    • sts85S sts85

      Hallo zusammen,

      ich möchte gerne in einer Szene (iobroker Scenes Adapter) einzelne Zustände inaktiv machen:
      29cc9caf-8f39-43c6-93fc-173577729d2c-image.png

      Dies würde ich gern über Blockly oder JavaScript lösen.

      Dazu habe ich den Ansatz über extendObject genutzt:

      extendObject('scene.0.TEST', {native: {members: [{disabled: true}]}});
      

      So lange die Szene nur aus einem Zustand besteht, funktioniert das so. Ich habe aber mehrere Zustände und weiß nicht, wie ich nur das "disabled" einer bestimmten ID manipulieren kann, da sie ja hintereinander in members stehen. Wie bekomme ich Zugriff auf das "disabled" der jeweiligen ID?

      {
        "common": {
          "name": "TEST",
          "type": "mixed",
          "role": "scene.state",
          "desc": "",
          "enabled": true,
          "read": true,
          "write": true,
          "def": false,
          "engine": "system.adapter.scenes.0"
        },
        "native": {
          "onTrue": {
            "trigger": {},
            "cron": null,
            "astro": null
          },
          "onFalse": {
            "enabled": true,
            "trigger": {},
            "cron": null,
            "astro": null
          },
          "easy": true,
          "burstInterval": 0,
          "members": [
            {
              "id": "alias.0.Buttons.Button-WZ-St-Weinregal",
              "setIfTrue": true,
              "setIfFalse": false,
              "stopAllDelays": true,
              "desc": null,
              "disabled": true,
              "delay": 0
            },
            {
              "id": "alias.0.Buttons.Button-WZ-Bilderrahmen",
              "setIfTrue": true,
              "setIfFalse": false,
              "stopAllDelays": true,
              "desc": null,
              "disabled": false,
              "delay": 0
            }
          ]
        },
        "type": "state",
        "_id": "scene.0.TEST",
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1715248145422,
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Danke euch,
      viele Grüße

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

      @sts85 sagte: Wie bekomme ich Zugriff auf das "disabled" der jeweiligen ID?

      Verwende getObject(id). In einer for-Schleife über obj.native.members prüfe die ID und setze obj.native.members[i].disabled auf true oder false. Anschließend mit setObject(id, obj) schreiben.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      sts85S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @sts85 sagte: Wie bekomme ich Zugriff auf das "disabled" der jeweiligen ID?

        Verwende getObject(id). In einer for-Schleife über obj.native.members prüfe die ID und setze obj.native.members[i].disabled auf true oder false. Anschließend mit setObject(id, obj) schreiben.

        sts85S Offline
        sts85S Offline
        sts85
        schrieb am zuletzt editiert von sts85
        #3

        @paul53 Mega, danke für den Ansatz. Eigentlich logisch. Das ist dabei rausgekommen:

        var SceneName = 'scene.0.TEST'
        
        var SceneObject = getObject('scene.0.TEST')
        var SceneID = "alias.0.Buttons.Button-WZ-Bilderrahmen";
        
        var SceneData = SceneObject.native.members
        
        var index = SceneData.findIndex(obj => obj.id==SceneID);
        //console.log(index);
        
        SceneObject.native.members[index].disabled = true;
        //console.log(SceneObject.native.members);
        
        setObject(SceneName, SceneObject)
        
        paul53P 1 Antwort Letzte Antwort
        0
        • sts85S sts85

          @paul53 Mega, danke für den Ansatz. Eigentlich logisch. Das ist dabei rausgekommen:

          var SceneName = 'scene.0.TEST'
          
          var SceneObject = getObject('scene.0.TEST')
          var SceneID = "alias.0.Buttons.Button-WZ-Bilderrahmen";
          
          var SceneData = SceneObject.native.members
          
          var index = SceneData.findIndex(obj => obj.id==SceneID);
          //console.log(index);
          
          SceneObject.native.members[index].disabled = true;
          //console.log(SceneObject.native.members);
          
          setObject(SceneName, SceneObject)
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @sts85 sagte: Das ist dabei rausgekommen:

          Die letzten beiden Befehle sollten nur bedingt ausgeführt werden:

          if(index > -1) {
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

          sts85S 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @sts85 sagte: Das ist dabei rausgekommen:

            Die letzten beiden Befehle sollten nur bedingt ausgeführt werden:

            if(index > -1) {
            
            sts85S Offline
            sts85S Offline
            sts85
            schrieb am zuletzt editiert von
            #5

            @paul53 said in Szenen DP manipulieren mit extendObject:

            @sts85 sagte: Das ist dabei rausgekommen:

            Die letzten beiden Befehle sollten nur bedingt ausgeführt werden:

            if(index > -1) {
            

            Japp, das war mein Minimalbeispiel. Bedingung ist schon umgesetzt.

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            503

            Online

            32.9k

            Benutzer

            83.0k

            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