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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Ein script für x buttons. Welcher Button hat das Script aufgerufen?

NEWS

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

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

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

Ein script für x buttons. Welcher Button hat das Script aufgerufen?

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 4 Kommentatoren 443 Aufrufe 4 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.
  • B Offline
    B Offline
    Burgi
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    als totaler Anfänger habe ich im VIS 64 Buttons defiert und alle sollen das gleiche Script aufrufen: "Object ID = javascript.0.scriptEnabled.Garten.Beleuchtung.On". Wie kann ich herausfunden welcher Button das Script aufgerufen hat?
    Ich möchte nicht für jeden Button ein eigenes Script bauen.
    Das Script sieht so aus und funktioniert für ein Button:

    on({id: 'javascript.0.scriptEnabled.Garten.Beleuchtung.On'}, function(obj){
    getState("mqtt.0.Garten.Beleuchtung.Zeiten.on.so", (err, state) => {
    console.log("State.val: "+state.val+" neu: "+addHour(state.val));
    setState("mqtt.0.Garten.Beleuchtung.Zeiten.on.so",addHour(state.val));
    })
    });

    bahnuhrB 1 Antwort Letzte Antwort
    0
    • htreckslerH Offline
      htreckslerH Offline
      htrecksler
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      ich befürchte, das wird nicht gehen.
      Aber vielleicht hat ja ein genialer Geist hier noch eine Idee.
      Interessehalber aber die Frage...
      Warum müssen 64 Button das gleiche tun? Was ist der Anwendungsfall?

      Gruss Hermann

      ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

      1 Antwort Letzte Antwort
      0
      • B Burgi

        Hallo zusammen,
        als totaler Anfänger habe ich im VIS 64 Buttons defiert und alle sollen das gleiche Script aufrufen: "Object ID = javascript.0.scriptEnabled.Garten.Beleuchtung.On". Wie kann ich herausfunden welcher Button das Script aufgerufen hat?
        Ich möchte nicht für jeden Button ein eigenes Script bauen.
        Das Script sieht so aus und funktioniert für ein Button:

        on({id: 'javascript.0.scriptEnabled.Garten.Beleuchtung.On'}, function(obj){
        getState("mqtt.0.Garten.Beleuchtung.Zeiten.on.so", (err, state) => {
        console.log("State.val: "+state.val+" neu: "+addHour(state.val));
        setState("mqtt.0.Garten.Beleuchtung.Zeiten.on.so",addHour(state.val));
        })
        });

        bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #3

        @Burgi sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

        VIS 64 Buttons defiert

        • Lege 64 boolean Objekte an. (also true und false)
        • Schreibe Script mit on (welches objekt geht auf true)
          damit weißt du dann genau welcher button gedrückt wurd.
        • Im o.g. Script dann dein script aufrufen.

        Nachteil:
        du musst 64 Objekte anlegen und diese dann deinen buttons zuordnen.

        P.S.
        das Anlegen geht auch per Script:
        createState('javascript.0.64_Buttons.Button_x', true, {type: 'boolean',name: 'Button x',read: true,write: true,role: 'per Script'});

        dies dann 64 mal nach unten kopieren und x mit der fortlaufenden zahl ersetzen; Script starten und dann hast du 64 Objekte


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        AlCalzoneA 1 Antwort Letzte Antwort
        0
        • bahnuhrB bahnuhr

          @Burgi sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

          VIS 64 Buttons defiert

          • Lege 64 boolean Objekte an. (also true und false)
          • Schreibe Script mit on (welches objekt geht auf true)
            damit weißt du dann genau welcher button gedrückt wurd.
          • Im o.g. Script dann dein script aufrufen.

          Nachteil:
          du musst 64 Objekte anlegen und diese dann deinen buttons zuordnen.

          P.S.
          das Anlegen geht auch per Script:
          createState('javascript.0.64_Buttons.Button_x', true, {type: 'boolean',name: 'Button x',read: true,write: true,role: 'per Script'});

          dies dann 64 mal nach unten kopieren und x mit der fortlaufenden zahl ersetzen; Script starten und dann hast du 64 Objekte

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          @bahnuhr sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

          dies dann 64 mal nach unten kopieren und x mit der fortlaufenden zahl ersetzen; Script starten und dann hast du 64 Objekte

          Oder man nimmt das Konstrukt, das es in der Programmierung dafür gibt: Schleifen.

          // 64 States mit fortlaufender Nummerierung erstellen
          for (let i = 1; i <= 64; i++) {
              createState('javascript.0.64_Buttons.Button_' + i, true, {
                  type: 'boolean',
                  name: 'Button ' + i,
                  read: true,
                  write: true,
                  role: 'per Script'
              });
          }
          

          @Burgi sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

          Object ID = javascript.0.scriptEnabled.Garten.Beleuchtung.On

          Eigene Datenpunkte sollten niemals unter scriptEnabled erstellt werden!

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          bahnuhrB 1 Antwort Letzte Antwort
          1
          • AlCalzoneA AlCalzone

            @bahnuhr sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

            dies dann 64 mal nach unten kopieren und x mit der fortlaufenden zahl ersetzen; Script starten und dann hast du 64 Objekte

            Oder man nimmt das Konstrukt, das es in der Programmierung dafür gibt: Schleifen.

            // 64 States mit fortlaufender Nummerierung erstellen
            for (let i = 1; i <= 64; i++) {
                createState('javascript.0.64_Buttons.Button_' + i, true, {
                    type: 'boolean',
                    name: 'Button ' + i,
                    read: true,
                    write: true,
                    role: 'per Script'
                });
            }
            

            @Burgi sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

            Object ID = javascript.0.scriptEnabled.Garten.Beleuchtung.On

            Eigene Datenpunkte sollten niemals unter scriptEnabled erstellt werden!

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #5

            @AlCalzone sagte in Ein script für x buttons. Welcher Button hat das Script aufgerufen?:

            Oder man nimmt das Konstrukt, das es in der Programmierung dafür gibt: Schleifen.

            Ja, so gehts einfacher.


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            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

            633

            Online

            32.4k

            Benutzer

            81.4k

            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