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. Visualisierung
  4. [gelöst]Lichtersteuerung auf Smartphone

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    559

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

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

[gelöst]Lichtersteuerung auf Smartphone

Geplant Angeheftet Gesperrt Verschoben Visualisierung
25 Beiträge 3 Kommentatoren 3.4k Aufrufe 3 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.
  • M Meikie

    @bananajoe Hi, danke dir. Kannst du mir kurz erklären wie das Array aufgebaut ist?
    Ist das ein Array mit 4 Werten pro Reihe? Wie kann ich hier meine Datenpunkte einfügen? Einfach den Pfad kopieren und zwischen "" einfügen?

    Beispiel:

    let a_SourceDatapoints =
        ["Eigener Datenpunkt von Lampe", "Echter Datenpunkt von Lampe"],
        ["0_userdata.0.Lights.WZ-Kaminlicht", "zigbee.0.04cd15fffedb3087.color"]
    ];
    

    Wäre das so richtig?
    Vielen Dank.
    Meikie

    BananaJoeB Offline
    BananaJoeB Offline
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von BananaJoe
    #8

    @meikie

    Ja, wäre so richtig (wenn du die im Anschluss richtig ansprichst)

    Wie viele Dimensionen brauchst du?

    Einfaches Array:

    a_meinArray = [
        "Wert1",
        "Wert2",
        "Wert3"
    ];
    
    // Abruf der Werte in einer Schleife:
    for (var i = 0; i < a_meinArray .length; i++) {
        let s_currentValue = a_meinArray[i];
        // etwas mit den Werten machen
    }
    

    Mit mehreren Dimensionen

    a_meinArrayMD = [
        [ "Wert1 A", "Wert1 B", 21 ],
        [ "Wert2 A", "Wert2 B", 42 ],
        [ "Wert3 A", "Wert3 B", 63 ]
    ];
    
    // Abruf der Werte in einer Schleife:
    for (var i = 0; i < a_meinArrayMD .length; i++) {
        let s_WertA = a_meinArrayMD [i][0];
        let s_WertB = a_meinArrayMD [i][1];
        let s_WertZahl = a_meinArrayMD [i][2];
        // etwas mit den Werten machen
    }
    

    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

    M 1 Antwort Letzte Antwort
    0
    • BananaJoeB BananaJoe

      @meikie

      Ja, wäre so richtig (wenn du die im Anschluss richtig ansprichst)

      Wie viele Dimensionen brauchst du?

      Einfaches Array:

      a_meinArray = [
          "Wert1",
          "Wert2",
          "Wert3"
      ];
      
      // Abruf der Werte in einer Schleife:
      for (var i = 0; i < a_meinArray .length; i++) {
          let s_currentValue = a_meinArray[i];
          // etwas mit den Werten machen
      }
      

      Mit mehreren Dimensionen

      a_meinArrayMD = [
          [ "Wert1 A", "Wert1 B", 21 ],
          [ "Wert2 A", "Wert2 B", 42 ],
          [ "Wert3 A", "Wert3 B", 63 ]
      ];
      
      // Abruf der Werte in einer Schleife:
      for (var i = 0; i < a_meinArrayMD .length; i++) {
          let s_WertA = a_meinArrayMD [i][0];
          let s_WertB = a_meinArrayMD [i][1];
          let s_WertZahl = a_meinArrayMD [i][2];
          // etwas mit den Werten machen
      }
      
      M Offline
      M Offline
      Meikie
      schrieb am zuletzt editiert von
      #9

      @bananajoe Hi, ich habe jetzt mal ein JS Skript erstellt und den folgenden Code eingeben. Leider bringt er mir schon Ober bei der Variable sehr viele Fehler. (siehe Bild.)!

      // Hier werden alle Lampen, die mit der Zentralen Steuerung geschalten werden aufgelistet.
      // Variable [ "Name", "Eigener Datenpunkt", "Datenpunkt Lampe ONOFF", "Datenpunkt Lampe RGB"  ]
      let a_lightcontrol =
          ["WZ-Kaminlicht",   "0_userdata.0.Lights.WZ-Kaminlicht",    "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"], 
          ["WZ-Couch",        "0_userdata.0.Lights.WZ-Couch",         "zigbee.0.842e14fffe36885f.state"],
          ["WZ-Stehlampe",    "0_userdata.0.Lights.WZ-Stehlampe",     "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
          ["Kü-Ambiente",     "0_userdata.0.Lights.Kü-Ambiente"],
          ["KZ-Ambiente",     "0_userdata.0.Lights.KZ-Ambiente"],
          ["Bad-Ambiente",    "0_userdata.0.Lights.Bad-Ambiente",     "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"],
      ];
      // Abruf der Werte in einer Schleife:
      for (var i = 0; i < a_lightcontrol.length; i++) {  
          let s_currentName = a_lightcontrol[i][0];
          let s_currentData = a_lightcontrol[i][1];
          let s_currentState = a_lightcontrol[i][2];
          let s_currentColor = a_lightcontrol[i][3];
      }
          
      // OnOff wurde geändert
      on({id: "0_userdata.0.Lights.control-onoff"/*control-onoff*/, change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        setState(s_currentState/*Switch state*/, getState("0_userdata.0.Lights.control-onoff").val);
        setStateDelayed("0_userdata.0.Lights.control-onoff"/*control-onoff*/, '', 1000, true);
      });
      
      // RGB wurde geändert
      on({id: "0_userdata.0.Lights.controll-rgb"/*controll-rgb*/, change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        // Kamin Licht
        if (getState(s_currentData).val == true) {
          setState(s_currentColor/*Color*/, getState("0_userdata.0.Lights.controll-rgb").val);
      });
      

      Bildschirm­foto 2023-02-22 um 12.16.46.png

      Danke für deine/eure Hilfe.

      ZarelloZ 2 Antworten Letzte Antwort
      0
      • M Meikie

        @bananajoe Hi, ich habe jetzt mal ein JS Skript erstellt und den folgenden Code eingeben. Leider bringt er mir schon Ober bei der Variable sehr viele Fehler. (siehe Bild.)!

        // Hier werden alle Lampen, die mit der Zentralen Steuerung geschalten werden aufgelistet.
        // Variable [ "Name", "Eigener Datenpunkt", "Datenpunkt Lampe ONOFF", "Datenpunkt Lampe RGB"  ]
        let a_lightcontrol =
            ["WZ-Kaminlicht",   "0_userdata.0.Lights.WZ-Kaminlicht",    "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"], 
            ["WZ-Couch",        "0_userdata.0.Lights.WZ-Couch",         "zigbee.0.842e14fffe36885f.state"],
            ["WZ-Stehlampe",    "0_userdata.0.Lights.WZ-Stehlampe",     "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
            ["Kü-Ambiente",     "0_userdata.0.Lights.Kü-Ambiente"],
            ["KZ-Ambiente",     "0_userdata.0.Lights.KZ-Ambiente"],
            ["Bad-Ambiente",    "0_userdata.0.Lights.Bad-Ambiente",     "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"],
        ];
        // Abruf der Werte in einer Schleife:
        for (var i = 0; i < a_lightcontrol.length; i++) {  
            let s_currentName = a_lightcontrol[i][0];
            let s_currentData = a_lightcontrol[i][1];
            let s_currentState = a_lightcontrol[i][2];
            let s_currentColor = a_lightcontrol[i][3];
        }
            
        // OnOff wurde geändert
        on({id: "0_userdata.0.Lights.control-onoff"/*control-onoff*/, change: "ne"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          setState(s_currentState/*Switch state*/, getState("0_userdata.0.Lights.control-onoff").val);
          setStateDelayed("0_userdata.0.Lights.control-onoff"/*control-onoff*/, '', 1000, true);
        });
        
        // RGB wurde geändert
        on({id: "0_userdata.0.Lights.controll-rgb"/*controll-rgb*/, change: "ne"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          // Kamin Licht
          if (getState(s_currentData).val == true) {
            setState(s_currentColor/*Color*/, getState("0_userdata.0.Lights.controll-rgb").val);
        });
        

        Bildschirm­foto 2023-02-22 um 12.16.46.png

        Danke für deine/eure Hilfe.

        ZarelloZ Offline
        ZarelloZ Offline
        Zarello
        schrieb am zuletzt editiert von
        #10

        @meikie Dir fehlt eine öffnende eckige Klammer in der dritten (oder vierten) Zeile:

        let a_lightcontrol = [
        
        1 Antwort Letzte Antwort
        0
        • M Meikie

          @bananajoe Hi, ich habe jetzt mal ein JS Skript erstellt und den folgenden Code eingeben. Leider bringt er mir schon Ober bei der Variable sehr viele Fehler. (siehe Bild.)!

          // Hier werden alle Lampen, die mit der Zentralen Steuerung geschalten werden aufgelistet.
          // Variable [ "Name", "Eigener Datenpunkt", "Datenpunkt Lampe ONOFF", "Datenpunkt Lampe RGB"  ]
          let a_lightcontrol =
              ["WZ-Kaminlicht",   "0_userdata.0.Lights.WZ-Kaminlicht",    "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"], 
              ["WZ-Couch",        "0_userdata.0.Lights.WZ-Couch",         "zigbee.0.842e14fffe36885f.state"],
              ["WZ-Stehlampe",    "0_userdata.0.Lights.WZ-Stehlampe",     "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
              ["Kü-Ambiente",     "0_userdata.0.Lights.Kü-Ambiente"],
              ["KZ-Ambiente",     "0_userdata.0.Lights.KZ-Ambiente"],
              ["Bad-Ambiente",    "0_userdata.0.Lights.Bad-Ambiente",     "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"],
          ];
          // Abruf der Werte in einer Schleife:
          for (var i = 0; i < a_lightcontrol.length; i++) {  
              let s_currentName = a_lightcontrol[i][0];
              let s_currentData = a_lightcontrol[i][1];
              let s_currentState = a_lightcontrol[i][2];
              let s_currentColor = a_lightcontrol[i][3];
          }
              
          // OnOff wurde geändert
          on({id: "0_userdata.0.Lights.control-onoff"/*control-onoff*/, change: "ne"}, async function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            setState(s_currentState/*Switch state*/, getState("0_userdata.0.Lights.control-onoff").val);
            setStateDelayed("0_userdata.0.Lights.control-onoff"/*control-onoff*/, '', 1000, true);
          });
          
          // RGB wurde geändert
          on({id: "0_userdata.0.Lights.controll-rgb"/*controll-rgb*/, change: "ne"}, async function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            // Kamin Licht
            if (getState(s_currentData).val == true) {
              setState(s_currentColor/*Color*/, getState("0_userdata.0.Lights.controll-rgb").val);
          });
          

          Bildschirm­foto 2023-02-22 um 12.16.46.png

          Danke für deine/eure Hilfe.

          ZarelloZ Offline
          ZarelloZ Offline
          Zarello
          schrieb am zuletzt editiert von
          #11

          @meikie Und Du greifst nachher auf s_currentState und andere Variablen zu, die da nicht mehr existieren. Diese existieren nur innerhalb der for-Schleife.
          Du musst dementsprechend die for-Schleife in Deine Trigger ziehen und überlegen, welche der Elemente Du schalten möchtest.

          M 1 Antwort Letzte Antwort
          0
          • ZarelloZ Zarello

            @meikie Und Du greifst nachher auf s_currentState und andere Variablen zu, die da nicht mehr existieren. Diese existieren nur innerhalb der for-Schleife.
            Du musst dementsprechend die for-Schleife in Deine Trigger ziehen und überlegen, welche der Elemente Du schalten möchtest.

            M Offline
            M Offline
            Meikie
            schrieb am zuletzt editiert von
            #12

            @zarello Vielen Dank. Ja die kleine Fehler mit Kommas, Klammern usw.
            Kann ich dann in der for-Schleife die Trigger mit einbauen? Also einfach das, was ich unten habe mit in die for-schleife bauen? Oder geht es einfacher in dem ich die Variable Global erstelle. Geht das?

            Vielen Dank.

            ZarelloZ 1 Antwort Letzte Antwort
            0
            • M Meikie

              @zarello Vielen Dank. Ja die kleine Fehler mit Kommas, Klammern usw.
              Kann ich dann in der for-Schleife die Trigger mit einbauen? Also einfach das, was ich unten habe mit in die for-schleife bauen? Oder geht es einfacher in dem ich die Variable Global erstelle. Geht das?

              Vielen Dank.

              ZarelloZ Offline
              ZarelloZ Offline
              Zarello
              schrieb am zuletzt editiert von
              #13

              @meikie Die Trigger in die For-Schleife zu ziehen ist in dem Fall keine gute Idee, das verbraucht nur unnötig Resourcen.

              Die Variablen global erstellen bringt Dir auch nichts. Die For-Schleife wird dann am Anfang einmal durchlaufen und dann stehen die Werte auf dem letzten Eintrag und bleiben dort. Wenn ein Trigger ausgelöst wird, wird er dementsprechend nur den letzten Eintrag verwenden.

              M 1 Antwort Letzte Antwort
              0
              • ZarelloZ Zarello

                @meikie Die Trigger in die For-Schleife zu ziehen ist in dem Fall keine gute Idee, das verbraucht nur unnötig Resourcen.

                Die Variablen global erstellen bringt Dir auch nichts. Die For-Schleife wird dann am Anfang einmal durchlaufen und dann stehen die Werte auf dem letzten Eintrag und bleiben dort. Wenn ein Trigger ausgelöst wird, wird er dementsprechend nur den letzten Eintrag verwenden.

                M Offline
                M Offline
                Meikie
                schrieb am zuletzt editiert von
                #14

                @zarello und wie müsste ich dann die trigger integrieren? Ist für mich alles Neuland.

                ZarelloZ 1 Antwort Letzte Antwort
                0
                • M Meikie

                  @zarello und wie müsste ich dann die trigger integrieren? Ist für mich alles Neuland.

                  ZarelloZ Offline
                  ZarelloZ Offline
                  Zarello
                  schrieb am zuletzt editiert von Zarello
                  #15

                  @meikie Sowas wie:

                  // Hier werden alle Lampen, die mit der Zentralen Steuerung geschalten werden aufgelistet.
                  // Variable [ "Name", "Eigener Datenpunkt", "Datenpunkt Lampe ONOFF", "Datenpunkt Lampe RGB"  ]
                  let a_lightcontrol = [
                      ["WZ-Kaminlicht",   "0_userdata.0.Lights.WZ-Kaminlicht", "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"], 
                      ["WZ-Couch",        "0_userdata.0.Lights.WZ-Couch",      "zigbee.0.842e14fffe36885f.state"],
                      ["WZ-Stehlampe",    "0_userdata.0.Lights.WZ-Stehlampe",  "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
                      ["Kü-Ambiente",     "0_userdata.0.Lights.Kü-Ambiente",   "hier fehlt noch eine ID"],
                      ["KZ-Ambiente",     "0_userdata.0.Lights.KZ-Ambiente",   "hier fehlt noch eine ID"],
                      ["Bad-Ambiente",    "0_userdata.0.Lights.Bad-Ambiente",  "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"]
                  ];
                      
                  // OnOff wurde geändert
                  on({id: "0_userdata.0.Lights.control-onoff"/*control-onoff*/, change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    // Abruf der Werte in einer Schleife:
                    for (var i = 0; i < a_lightcontrol.length; i++) {  
                      let s_currentName = a_lightcontrol[i][0];
                      let s_currentData = a_lightcontrol[i][1];
                      let s_currentState = a_lightcontrol[i][2];
                  
                      // Ich bin mir nicht sicher, was Du hier erreichen wolltest. Ich habe mal geraten:
                      if (getState (s_currentData).val) {
                        setState(s_currentState/*Switch state*/, value);
                        if (!value) {
                          setStateDelayed("0_userdata.0.Lights.control-onoff"/*control-onoff*/, '', 1000, true);
                        }
                      }
                    }
                  });
                  

                  Ich habe gerade keine Möglichkeit das zu testen, es könnten also noch Fehler vorhanden sein.
                  Versuch mal herauszufinden, was da dann wann und wie passiert. Tipp: if (!value) bedeutet: Wenn in value der Wert false steht.

                  M 1 Antwort Letzte Antwort
                  0
                  • ZarelloZ Zarello

                    @meikie Sowas wie:

                    // Hier werden alle Lampen, die mit der Zentralen Steuerung geschalten werden aufgelistet.
                    // Variable [ "Name", "Eigener Datenpunkt", "Datenpunkt Lampe ONOFF", "Datenpunkt Lampe RGB"  ]
                    let a_lightcontrol = [
                        ["WZ-Kaminlicht",   "0_userdata.0.Lights.WZ-Kaminlicht", "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"], 
                        ["WZ-Couch",        "0_userdata.0.Lights.WZ-Couch",      "zigbee.0.842e14fffe36885f.state"],
                        ["WZ-Stehlampe",    "0_userdata.0.Lights.WZ-Stehlampe",  "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
                        ["Kü-Ambiente",     "0_userdata.0.Lights.Kü-Ambiente",   "hier fehlt noch eine ID"],
                        ["KZ-Ambiente",     "0_userdata.0.Lights.KZ-Ambiente",   "hier fehlt noch eine ID"],
                        ["Bad-Ambiente",    "0_userdata.0.Lights.Bad-Ambiente",  "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"]
                    ];
                        
                    // OnOff wurde geändert
                    on({id: "0_userdata.0.Lights.control-onoff"/*control-onoff*/, change: "ne"}, async function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      // Abruf der Werte in einer Schleife:
                      for (var i = 0; i < a_lightcontrol.length; i++) {  
                        let s_currentName = a_lightcontrol[i][0];
                        let s_currentData = a_lightcontrol[i][1];
                        let s_currentState = a_lightcontrol[i][2];
                    
                        // Ich bin mir nicht sicher, was Du hier erreichen wolltest. Ich habe mal geraten:
                        if (getState (s_currentData).val) {
                          setState(s_currentState/*Switch state*/, value);
                          if (!value) {
                            setStateDelayed("0_userdata.0.Lights.control-onoff"/*control-onoff*/, '', 1000, true);
                          }
                        }
                      }
                    });
                    

                    Ich habe gerade keine Möglichkeit das zu testen, es könnten also noch Fehler vorhanden sein.
                    Versuch mal herauszufinden, was da dann wann und wie passiert. Tipp: if (!value) bedeutet: Wenn in value der Wert false steht.

                    M Offline
                    M Offline
                    Meikie
                    schrieb am zuletzt editiert von
                    #16

                    @zarello Hi, danke für den Code. Leider kann ich ihn selbst auch noch nicht testen. Er sagt nämlich die ganze Zeit, dass in Zeile 3

                    let a_lightcontrol = [
                    

                    Ein Fehler wäre.
                    Ich finde dieses aber nicht.

                    ZarelloZ 1 Antwort Letzte Antwort
                    0
                    • M Meikie

                      @zarello Hi, danke für den Code. Leider kann ich ihn selbst auch noch nicht testen. Er sagt nämlich die ganze Zeit, dass in Zeile 3

                      let a_lightcontrol = [
                      

                      Ein Fehler wäre.
                      Ich finde dieses aber nicht.

                      ZarelloZ Offline
                      ZarelloZ Offline
                      Zarello
                      schrieb am zuletzt editiert von
                      #17

                      @meikie Evtl. war es das Komma am Ende der neunten Zeile. Ich habe das oben mal entfernt.

                      ZarelloZ 1 Antwort Letzte Antwort
                      0
                      • ZarelloZ Zarello

                        @meikie Evtl. war es das Komma am Ende der neunten Zeile. Ich habe das oben mal entfernt.

                        ZarelloZ Offline
                        ZarelloZ Offline
                        Zarello
                        schrieb am zuletzt editiert von Zarello
                        #18

                        @zarello Jetzt habe ich es einmal bei mir laufen lassen: Das funktioniert, egal ob mit oder ohne Komma am Ende der neunten Zeile.

                        Gibt es evtl. eine zweite Variable a_lightcontrol in Deinem Skript, also eine zweite Zeile, die mit let a_lightcontrol anfängt?

                        Um was sinnvolles dazu sagen zu können müsstest Du nochmals Dein Skript in der aktuellen Fassung komplett hier einstellen inklusive der Fehlermeldungen die Du bekommst.

                        M 1 Antwort Letzte Antwort
                        0
                        • ZarelloZ Zarello

                          @zarello Jetzt habe ich es einmal bei mir laufen lassen: Das funktioniert, egal ob mit oder ohne Komma am Ende der neunten Zeile.

                          Gibt es evtl. eine zweite Variable a_lightcontrol in Deinem Skript, also eine zweite Zeile, die mit let a_lightcontrol anfängt?

                          Um was sinnvolles dazu sagen zu können müsstest Du nochmals Dein Skript in der aktuellen Fassung komplett hier einstellen inklusive der Fehlermeldungen die Du bekommst.

                          M Offline
                          M Offline
                          Meikie
                          schrieb am zuletzt editiert von
                          #19

                          @zarello Hey, vielen Dank für deine Hilfe. Jetzt habe ich es soweit hinbekommen. Nur folgender Code bekomme ich nicht zum laufen.

                          let a_lightcontrol = [
                              [/*"WZ-Kaminlicht"*/    "WZ",   "0_userdata.0.Lights.WZ-Kaminlicht", "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"],
                              [/*"WZ-Couch"*/         "WZ",   "0_userdata.0.Lights.WZ-Couch",      "zigbee.0.842e14fffe36885f.state"],
                              [/*"WZ-Stehlampe"*/     "WZ",   "0_userdata.0.Lights.WZ-Stehlampe",  "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
                              [/*"Bad-Ambiente"*/     "Bad",  "0_userdata.0.Lights.Bad-Ambiente",  "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"]
                          ];
                          // Wohnzimmer komplett selektieren / deselektieren
                          on({id: "0_userdata.0.Lights.control-wz"/*control-wz*/, change: "ne"}, async function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                                  // Abruf der Werte in einer Schleife:
                                   for (var i = 0; i < a_lightcontrol.length; i++) {  
                                  let s_currentRoom = a_lightcontrol[i][0];
                                  let s_currentData = a_lightcontrol[i][1];
                                  // Alle Lampen im Wohnzimmer auswählen
                                  console.log(s_currentRoom);
                                  if (getState (s_currentRoom).val == "WZ") {
                                  setState(s_currentData/*Switch state*/, getState("0_userdata.0.Lights.control-wz").val);
                                  }
                              }
                                  /*Kaminlicht*/ //setState("0_userdata.0.Lights.WZ-Kaminlicht", value);
                                  /*Stehlampe*/  //setState("0_userdata.0.Lights.WZ-Stehlampe", value);
                                  /*Couch*/      //setState("0_userdata.0.Lights.WZ-Couch", value);
                          });
                          

                          Folgende Fehlermeldung steht im Protokoll.

                          javascript.0 782	2023-02-24 14:18:16.917	warn	at processImmediate (node:internal/timers:466:21)
                          javascript.0 782	2023-02-24 14:18:16.917	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
                          javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
                          javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
                          javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.<anonymous> (script.js.Ambiente.LichtsteuerungJS:66:13)
                          javascript.0 782	2023-02-24 14:18:16.916	warn	getState "WZ" not found (3)
                          javascript.0 782	2023-02-24 14:18:16.915	info	script.js.Ambiente.LichtsteuerungJS: WZ
                          

                          Was habe ich hier falsch? Vielen Dank für deine Hilfe.
                          Liebe Grüße
                          Michael

                          BananaJoeB ZarelloZ 2 Antworten Letzte Antwort
                          0
                          • M Meikie

                            @zarello Hey, vielen Dank für deine Hilfe. Jetzt habe ich es soweit hinbekommen. Nur folgender Code bekomme ich nicht zum laufen.

                            let a_lightcontrol = [
                                [/*"WZ-Kaminlicht"*/    "WZ",   "0_userdata.0.Lights.WZ-Kaminlicht", "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"],
                                [/*"WZ-Couch"*/         "WZ",   "0_userdata.0.Lights.WZ-Couch",      "zigbee.0.842e14fffe36885f.state"],
                                [/*"WZ-Stehlampe"*/     "WZ",   "0_userdata.0.Lights.WZ-Stehlampe",  "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
                                [/*"Bad-Ambiente"*/     "Bad",  "0_userdata.0.Lights.Bad-Ambiente",  "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"]
                            ];
                            // Wohnzimmer komplett selektieren / deselektieren
                            on({id: "0_userdata.0.Lights.control-wz"/*control-wz*/, change: "ne"}, async function (obj) {
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;
                                    // Abruf der Werte in einer Schleife:
                                     for (var i = 0; i < a_lightcontrol.length; i++) {  
                                    let s_currentRoom = a_lightcontrol[i][0];
                                    let s_currentData = a_lightcontrol[i][1];
                                    // Alle Lampen im Wohnzimmer auswählen
                                    console.log(s_currentRoom);
                                    if (getState (s_currentRoom).val == "WZ") {
                                    setState(s_currentData/*Switch state*/, getState("0_userdata.0.Lights.control-wz").val);
                                    }
                                }
                                    /*Kaminlicht*/ //setState("0_userdata.0.Lights.WZ-Kaminlicht", value);
                                    /*Stehlampe*/  //setState("0_userdata.0.Lights.WZ-Stehlampe", value);
                                    /*Couch*/      //setState("0_userdata.0.Lights.WZ-Couch", value);
                            });
                            

                            Folgende Fehlermeldung steht im Protokoll.

                            javascript.0 782	2023-02-24 14:18:16.917	warn	at processImmediate (node:internal/timers:466:21)
                            javascript.0 782	2023-02-24 14:18:16.917	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
                            javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
                            javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
                            javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.<anonymous> (script.js.Ambiente.LichtsteuerungJS:66:13)
                            javascript.0 782	2023-02-24 14:18:16.916	warn	getState "WZ" not found (3)
                            javascript.0 782	2023-02-24 14:18:16.915	info	script.js.Ambiente.LichtsteuerungJS: WZ
                            

                            Was habe ich hier falsch? Vielen Dank für deine Hilfe.
                            Liebe Grüße
                            Michael

                            BananaJoeB Offline
                            BananaJoeB Offline
                            BananaJoe
                            Most Active
                            schrieb am zuletzt editiert von BananaJoe
                            #20

                            @meikie sagte in [gelöst]Lichtersteuerung auf Smartphone:

                            let s_currentRoom = a_lightcontrol[i][0];
                            

                            0 ist WZ, 1 wäre 0_userdata.0.Lights.WZ-Kaminlicht

                            Und ich mag es ja mit vielen Kommentaren ... aber warum musst du die auch immer unbedingt da mitten in den Text schreiben. Bei deinem Array - das packe doch in 0 die Beschreibung die du als Kommentar nutzt, und wenn es dann ein Feld mehr ist. Ist dann auch beim Debuggen praktisch weil man dann die Beschreibung mit ausgeben könnte

                            ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                            M 1 Antwort Letzte Antwort
                            0
                            • BananaJoeB BananaJoe

                              @meikie sagte in [gelöst]Lichtersteuerung auf Smartphone:

                              let s_currentRoom = a_lightcontrol[i][0];
                              

                              0 ist WZ, 1 wäre 0_userdata.0.Lights.WZ-Kaminlicht

                              Und ich mag es ja mit vielen Kommentaren ... aber warum musst du die auch immer unbedingt da mitten in den Text schreiben. Bei deinem Array - das packe doch in 0 die Beschreibung die du als Kommentar nutzt, und wenn es dann ein Feld mehr ist. Ist dann auch beim Debuggen praktisch weil man dann die Beschreibung mit ausgeben könnte

                              M Offline
                              M Offline
                              Meikie
                              schrieb am zuletzt editiert von
                              #21

                              Hey,
                              sehe es mir nach. Ich bin ganz neu in diesem Metier :-)

                              0 ist WZ, 1 wäre 0_userdata.0.Lights.WZ-Kaminlicht

                              Genau so sollte es sein. Kannst du einen Fehler finden und mir sagen?
                              Vielen Dank.

                              ZarelloZ 1 Antwort Letzte Antwort
                              0
                              • M Meikie

                                Hey,
                                sehe es mir nach. Ich bin ganz neu in diesem Metier :-)

                                0 ist WZ, 1 wäre 0_userdata.0.Lights.WZ-Kaminlicht

                                Genau so sollte es sein. Kannst du einen Fehler finden und mir sagen?
                                Vielen Dank.

                                ZarelloZ Offline
                                ZarelloZ Offline
                                Zarello
                                schrieb am zuletzt editiert von
                                #22

                                @meikie War jetzt noch eine Frage offen? Denn der Titel dieser Diskussion ist ja inzwischen auf gelöst gesetzt.

                                M 1 Antwort Letzte Antwort
                                0
                                • ZarelloZ Zarello

                                  @meikie War jetzt noch eine Frage offen? Denn der Titel dieser Diskussion ist ja inzwischen auf gelöst gesetzt.

                                  M Offline
                                  M Offline
                                  Meikie
                                  schrieb am zuletzt editiert von
                                  #23

                                  @zarello Das eigentliche Thema ist gelöst. Jetzt habe ich nur noch eine Frage gehabt bzgl. dem Wohnzimmer komplett selektieren / deselektiern. Siehe Post vor ca 40min.
                                  Danke schon einmal.

                                  1 Antwort Letzte Antwort
                                  0
                                  • M Meikie

                                    @zarello Hey, vielen Dank für deine Hilfe. Jetzt habe ich es soweit hinbekommen. Nur folgender Code bekomme ich nicht zum laufen.

                                    let a_lightcontrol = [
                                        [/*"WZ-Kaminlicht"*/    "WZ",   "0_userdata.0.Lights.WZ-Kaminlicht", "zigbee.0.04cd15fffedb3087.state",  "zigbee.0.04cd15fffedb3087.color"],
                                        [/*"WZ-Couch"*/         "WZ",   "0_userdata.0.Lights.WZ-Couch",      "zigbee.0.842e14fffe36885f.state"],
                                        [/*"WZ-Stehlampe"*/     "WZ",   "0_userdata.0.Lights.WZ-Stehlampe",  "zigbee.0.9035eafffe04994d.state",  "zigbee.0.9035eafffe04994d.color"],
                                        [/*"Bad-Ambiente"*/     "Bad",  "0_userdata.0.Lights.Bad-Ambiente",  "zigbee.0.04cd15fffedb28e3.state",  "zigbee.0.04cd15fffedb28e3.color"]
                                    ];
                                    // Wohnzimmer komplett selektieren / deselektieren
                                    on({id: "0_userdata.0.Lights.control-wz"/*control-wz*/, change: "ne"}, async function (obj) {
                                      var value = obj.state.val;
                                      var oldValue = obj.oldState.val;
                                            // Abruf der Werte in einer Schleife:
                                             for (var i = 0; i < a_lightcontrol.length; i++) {  
                                            let s_currentRoom = a_lightcontrol[i][0];
                                            let s_currentData = a_lightcontrol[i][1];
                                            // Alle Lampen im Wohnzimmer auswählen
                                            console.log(s_currentRoom);
                                            if (getState (s_currentRoom).val == "WZ") {
                                            setState(s_currentData/*Switch state*/, getState("0_userdata.0.Lights.control-wz").val);
                                            }
                                        }
                                            /*Kaminlicht*/ //setState("0_userdata.0.Lights.WZ-Kaminlicht", value);
                                            /*Stehlampe*/  //setState("0_userdata.0.Lights.WZ-Stehlampe", value);
                                            /*Couch*/      //setState("0_userdata.0.Lights.WZ-Couch", value);
                                    });
                                    

                                    Folgende Fehlermeldung steht im Protokoll.

                                    javascript.0 782	2023-02-24 14:18:16.917	warn	at processImmediate (node:internal/timers:466:21)
                                    javascript.0 782	2023-02-24 14:18:16.917	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56)
                                    javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
                                    javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
                                    javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.<anonymous> (script.js.Ambiente.LichtsteuerungJS:66:13)
                                    javascript.0 782	2023-02-24 14:18:16.916	warn	getState "WZ" not found (3)
                                    javascript.0 782	2023-02-24 14:18:16.915	info	script.js.Ambiente.LichtsteuerungJS: WZ
                                    

                                    Was habe ich hier falsch? Vielen Dank für deine Hilfe.
                                    Liebe Grüße
                                    Michael

                                    ZarelloZ Offline
                                    ZarelloZ Offline
                                    Zarello
                                    schrieb am zuletzt editiert von Zarello
                                    #24

                                    @meikie sagte in [gelöst]Lichtersteuerung auf Smartphone:

                                            let s_currentRoom = a_lightcontrol[i][0];
                                            let s_currentData = a_lightcontrol[i][1];
                                            // Alle Lampen im Wohnzimmer auswählen
                                            console.log(s_currentRoom);
                                            if (getState (s_currentRoom).val == "WZ") {
                                              setState(s_currentData/*Switch state*/, getState("0_userdata.0.Lights.control-wz").val);
                                            }
                                    

                                    Folgende Fehlermeldung steht im Protokoll.

                                    javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.<anonymous> (script.js.Ambiente.LichtsteuerungJS:66:13)
                                    javascript.0 782	2023-02-24 14:18:16.916	warn	getState "WZ" not found (3)
                                    javascript.0 782	2023-02-24 14:18:16.915	info	script.js.Ambiente.LichtsteuerungJS: WZ
                                    

                                    Code und Log habe ich hier mal auf die wesentlichen Stellen gekürzt, die man benötigt um das Problem zu verstehen. Die folgenden Zeilennummern beziehen sich auf meinen gekürzten Ausschnitt:
                                    In Zeile 4 gibst Du s_currentRoom im Log aus. Das ist auch zu sehen in Zeile 3 des Logs.
                                    Der Wert von s_currentRoom is "WZ".
                                    Dann versuchst Du in Zeile 5 getState aufzurufen. Das System gibt Dir dazu völlig richtig die Antwort in Zeile 2 im Log: Ein Datenpunkt mit Namen "WZ" existiert nicht, denn getState versucht ja immer Werte aus einem Datenpunkt zu lesen.
                                    In Zeile 1 des Logs findest Du dann übrigens den Hinweis, wo die entsprechende Stelle zu suchen ist: Im Script Ambiente.LichtsteuerungJS, Zeile 66, Spalte 13.
                                    Eigentlich wolltest Du vermutlich einfach überprüfen ob Dein Tabelleneintrag zum Wohnzimmer gehört.
                                    Das wäre dann:

                                      if (s_currentRoom == "WZ") {
                                    

                                    Ich hoffe, das hilft Dir etwas weiter.

                                    Edit: Logzeile mit Hinweis auf Position ergänzt und beschrieben.

                                    M 1 Antwort Letzte Antwort
                                    1
                                    • ZarelloZ Zarello

                                      @meikie sagte in [gelöst]Lichtersteuerung auf Smartphone:

                                              let s_currentRoom = a_lightcontrol[i][0];
                                              let s_currentData = a_lightcontrol[i][1];
                                              // Alle Lampen im Wohnzimmer auswählen
                                              console.log(s_currentRoom);
                                              if (getState (s_currentRoom).val == "WZ") {
                                                setState(s_currentData/*Switch state*/, getState("0_userdata.0.Lights.control-wz").val);
                                              }
                                      

                                      Folgende Fehlermeldung steht im Protokoll.

                                      javascript.0 782	2023-02-24 14:18:16.917	warn	at Object.<anonymous> (script.js.Ambiente.LichtsteuerungJS:66:13)
                                      javascript.0 782	2023-02-24 14:18:16.916	warn	getState "WZ" not found (3)
                                      javascript.0 782	2023-02-24 14:18:16.915	info	script.js.Ambiente.LichtsteuerungJS: WZ
                                      

                                      Code und Log habe ich hier mal auf die wesentlichen Stellen gekürzt, die man benötigt um das Problem zu verstehen. Die folgenden Zeilennummern beziehen sich auf meinen gekürzten Ausschnitt:
                                      In Zeile 4 gibst Du s_currentRoom im Log aus. Das ist auch zu sehen in Zeile 3 des Logs.
                                      Der Wert von s_currentRoom is "WZ".
                                      Dann versuchst Du in Zeile 5 getState aufzurufen. Das System gibt Dir dazu völlig richtig die Antwort in Zeile 2 im Log: Ein Datenpunkt mit Namen "WZ" existiert nicht, denn getState versucht ja immer Werte aus einem Datenpunkt zu lesen.
                                      In Zeile 1 des Logs findest Du dann übrigens den Hinweis, wo die entsprechende Stelle zu suchen ist: Im Script Ambiente.LichtsteuerungJS, Zeile 66, Spalte 13.
                                      Eigentlich wolltest Du vermutlich einfach überprüfen ob Dein Tabelleneintrag zum Wohnzimmer gehört.
                                      Das wäre dann:

                                        if (s_currentRoom == "WZ") {
                                      

                                      Ich hoffe, das hilft Dir etwas weiter.

                                      Edit: Logzeile mit Hinweis auf Position ergänzt und beschrieben.

                                      M Offline
                                      M Offline
                                      Meikie
                                      schrieb am zuletzt editiert von
                                      #25

                                      @zarello
                                      Super erklärt. Vielen Dank. Genau das wollte ich machen. Funktioniert!

                                      Bin mal gespannt wie weit ich jetzt noch komme :-)

                                      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

                                      616

                                      Online

                                      32.7k

                                      Benutzer

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