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. Visualisierung
  4. [gelöst]Widget mit getrennter Statusvariable und Steuervar.

NEWS

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

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

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

[gelöst]Widget mit getrennter Statusvariable und Steuervar.

Geplant Angeheftet Gesperrt Verschoben Visualisierung
android app vis
26 Beiträge 2 Kommentatoren 2.8k Aufrufe 2 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.
  • paul53P paul53

    @AchimB sagte:

    soll ich einen Alias anlegen der aus Taster und Rückmeldung erzeugt wird und diesen dann als Objekt_ID ins Widget eintragen.

    Ja.

    @AchimB sagte in Widget mit getrennter Statusvariable und Steuervariable:

    ein separates Script erstellen in JS

    Ja, folgendes Javascript einmal ausführen, nachdem idAlias und nameAlias angepasst sind ('s7.2.Markers.17.S7_Merker_15' ist der Taster ?)

    // Original-Datenpunkt
    const idOrigin = 's7.2.Markers.17.S7_Merker_15'; 
    // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
    // Bei Nicht-Verwendung Leerstring '' zuweisen
    const idRead = 's7.2.Outputs.8.7';
     
    // Alias-Datenpunkt
    const idAlias = 'Wohnen.Licht.Esstisch';
    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
    // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
    nameAlias = 'Lampe Esstisch';
    desc = 'per Script erstellt';
    // typeAlias = 'boolean'; // oder 'number'
    // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
    write = "val ? true : true";
    role = 'switch';
    // min = 0; // nur Zahlen
    // max = 100; // nur Zahlen
    // unit = '%'; // nur für Zahlen
    // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
    // custom = []; // verhindert doppelte Ausführung von history, ...
    // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
    // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
    
    function createAlias(idDst, idSrc, idRd) {
       if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
       else {
          var obj = {};
          obj.type = 'state';
          obj.common = getObject(idSrc).common;
          obj.common.alias = {};
          if(idRd) {
              obj.common.alias.id = {};
              obj.common.alias.id.read = idRd;
              obj.common.alias.id.write = idSrc;
              obj.common.read = true;
          } else obj.common.alias.id = idSrc;
          if(typeAlias) obj.common.type = typeAlias;
          if(obj.common.read !== false && read) obj.common.alias.read = read;
          if(obj.common.write !== false && write) obj.common.alias.write = write;
          if(nameAlias) obj.common.name = nameAlias;
          if(role) obj.common.role = role;
          if(desc) obj.common.desc = desc;
          if(min !== undefined) obj.common.min = min;
          if(max !== undefined) obj.common.max = max;
          if(unit) obj.common.unit = unit;
          if(states) obj.common.states = states;
          if(custom && obj.common.custom) obj.common.custom = custom;
          obj.native = {};
          setObject(idDst, obj);
          if(raum && getObject('enum.rooms.' + raum)) {
             let obj = getObject('enum.rooms.' + raum)
             obj.common.members.push(idDst);
             setObject('enum.rooms.' + raum, obj);
          }
          if(gewerk && getObject('enum.functions.' + gewerk)) {
             let obj = getObject('enum.functions.' + gewerk)
             obj.common.members.push(idDst);
             setObject('enum.functions.' + gewerk, obj);
          }
       } 
    }
     
    createAlias('alias.0.' + idAlias, idOrigin, idRead);
    

    Nach Anpassung von idOrigin, idRead, idAlias, nameAlias kann es für weitere Aliasse zu S7-Datenpunkten mit Taster/Status verwendet werden.

    A Offline
    A Offline
    AchimB
    schrieb am zuletzt editiert von
    #14

    @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

    ('s7.2.Markers.17.S7_Merker_15' ist der Taster ?)

    Ja korrekt !
    Als idAlias habe ich dann einen Ordner aus Javascript.0
    'Beleuchtung'
    genommen und nameAlias einen freien Namen
    'Lampe Büro'

    funktioniert aber nicht !

    18:02:34.768 error javascript.0 (23398) script.js.Licht.Licht_Büro: /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1913
    18:02:34.771 error javascript.0 (23398) at createAlias (script.js.Licht.Licht_Büro:50:7)
    18:02:34.772 error javascript.0 (23398) at script.js.Licht.Licht_Büro:64:1

    paul53P 1 Antwort Letzte Antwort
    0
    • A AchimB

      @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

      ('s7.2.Markers.17.S7_Merker_15' ist der Taster ?)

      Ja korrekt !
      Als idAlias habe ich dann einen Ordner aus Javascript.0
      'Beleuchtung'
      genommen und nameAlias einen freien Namen
      'Lampe Büro'

      funktioniert aber nicht !

      18:02:34.768 error javascript.0 (23398) script.js.Licht.Licht_Büro: /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1913
      18:02:34.771 error javascript.0 (23398) at createAlias (script.js.Licht.Licht_Büro:50:7)
      18:02:34.772 error javascript.0 (23398) at script.js.Licht.Licht_Büro:64:1

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

      @AchimB sagte:

      Als idAlias habe ich dann einen Ordner aus Javascript.0 'Beleuchtung' genommen

      Alias-Datenpunkte werden im Ordner "alias.0" erstellt, also z.B.

      idAlias = 'Beleuchtung.Buero'; // Ordner: alias.0.Beleuchtung
      

      Was ist das für ein Skript "Licht.Licht_Büro" ?

      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

      A 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @AchimB sagte:

        Als idAlias habe ich dann einen Ordner aus Javascript.0 'Beleuchtung' genommen

        Alias-Datenpunkte werden im Ordner "alias.0" erstellt, also z.B.

        idAlias = 'Beleuchtung.Buero'; // Ordner: alias.0.Beleuchtung
        

        Was ist das für ein Skript "Licht.Licht_Büro" ?

        A Offline
        A Offline
        AchimB
        schrieb am zuletzt editiert von
        #16

        @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

        Alias-Datenpunkte werden im Ordner "alias.0" erstellt, also z.B.
        idAlias = 'Beleuchtung.Buero'; // Ordner: alias.0.Beleuchtung

        Habe aber keinen Ordner : Alias.0

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @AchimB sagte:

          Als idAlias habe ich dann einen Ordner aus Javascript.0 'Beleuchtung' genommen

          Alias-Datenpunkte werden im Ordner "alias.0" erstellt, also z.B.

          idAlias = 'Beleuchtung.Buero'; // Ordner: alias.0.Beleuchtung
          

          Was ist das für ein Skript "Licht.Licht_Büro" ?

          A Offline
          A Offline
          AchimB
          schrieb am zuletzt editiert von
          #17

          @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

          Was ist das für ein Skript "Licht.Licht_Büro" ?

          Das ist das Script das ich angelegt habe !

          paul53P 1 Antwort Letzte Antwort
          0
          • A AchimB

            @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

            Was ist das für ein Skript "Licht.Licht_Büro" ?

            Das ist das Script das ich angelegt habe !

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

            @AchimB
            Hast Du in den Einstellungen der Javascript-Instanz "setObject" freigegeben ?

            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
            • A Offline
              A Offline
              AchimB
              schrieb am zuletzt editiert von
              #19

              Ja habe ich !

              paul53P 1 Antwort Letzte Antwort
              0
              • A AchimB

                Ja habe ich !

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

                @AchimB sagte:

                Ja habe ich !

                Dann wundert mich die Fehlermeldung

                18:02:34.771 error javascript.0 (23398) at createAlias (script.js.Licht.Licht_Büro:50:7)
                

                Es ist Zeile 50 mit setObject() ?

                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
                • A Offline
                  A Offline
                  AchimB
                  schrieb am zuletzt editiert von
                  #21

                  Habe in der Log Datei noch folgende Meldungen !
                  javascript.0 2020-07-26 20:04:43.008 error (1360) at Script.runInContext (vm.js:133:20)
                  javascript.0 2020-07-26 20:04:43.008 error (1360) at script.js.Licht.Licht_Büro:64:1
                  javascript.0 2020-07-26 20:04:43.007 error (1360) at createAlias (script.js.Licht.Licht_Büro:50:7)
                  javascript.0 2020-07-26 20:04:43.007 error (1360) at sandbox.setObject (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2801:25)
                  javascript.0 2020-07-26 20:04:43.006 error (1360) at Adapter.setForeignObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1913:101)
                  javascript.0 2020-07-26 20:04:43.006 error (1360) TypeError: obj.common.alias.id.startsWith is not a function
                  javascript.0 2020-07-26 20:04:43.006 error (1360) ^
                  javascript.0 2020-07-26 20:04:43.005 error (1360) if (obj && obj.common && obj.common.alias && obj.common.alias.id && obj.common.alias.id.startsWith(ALIAS_STARTS_WITH)) {
                  javascript.0 2020-07-26 20:04:43.004 error (1360) script.js.Licht.Licht_Büro: /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1913

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • A AchimB

                    Habe in der Log Datei noch folgende Meldungen !
                    javascript.0 2020-07-26 20:04:43.008 error (1360) at Script.runInContext (vm.js:133:20)
                    javascript.0 2020-07-26 20:04:43.008 error (1360) at script.js.Licht.Licht_Büro:64:1
                    javascript.0 2020-07-26 20:04:43.007 error (1360) at createAlias (script.js.Licht.Licht_Büro:50:7)
                    javascript.0 2020-07-26 20:04:43.007 error (1360) at sandbox.setObject (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2801:25)
                    javascript.0 2020-07-26 20:04:43.006 error (1360) at Adapter.setForeignObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1913:101)
                    javascript.0 2020-07-26 20:04:43.006 error (1360) TypeError: obj.common.alias.id.startsWith is not a function
                    javascript.0 2020-07-26 20:04:43.006 error (1360) ^
                    javascript.0 2020-07-26 20:04:43.005 error (1360) if (obj && obj.common && obj.common.alias && obj.common.alias.id && obj.common.alias.id.startsWith(ALIAS_STARTS_WITH)) {
                    javascript.0 2020-07-26 20:04:43.004 error (1360) script.js.Licht.Licht_Büro: /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1913

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

                    @AchimB sagte:

                    noch folgende Meldungen !

                    Das sind meist Folge-Meldungen von

                    javascript.0 2020-07-26 20:04:43.007 error (1360) at createAlias (script.js.Licht.Licht_Büro:50:7)
                    

                    Welche Version haben der js-controller (Host) und der Javascript-Adapter ?

                    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
                    • A Offline
                      A Offline
                      AchimB
                      schrieb am zuletzt editiert von
                      #23

                      js-controller 2.2.8
                      Javascript 4.6.17

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • A AchimB

                        js-controller 2.2.8
                        Javascript 4.6.17

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

                        @AchimB sagte:

                        js-controller 2.2.8

                        Das mit getrenntem Kommando und Status im Alias funktioniert erst ab js-controller 3.0 ! Siehe Doku

                        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

                        A 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @AchimB sagte:

                          js-controller 2.2.8

                          Das mit getrenntem Kommando und Status im Alias funktioniert erst ab js-controller 3.0 ! Siehe Doku

                          A Offline
                          A Offline
                          AchimB
                          schrieb am zuletzt editiert von
                          #25

                          @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

                          Das mit getrenntem Kommando und Status im Alias funktioniert erst ab js-controller 3.0 ! Siehe Doku

                          Sorry mein Fehler !
                          Hab ein Update gemacht und Funktioniert !
                          Man darf zwar nicht zu schnell hintereinander schalten dann kommt er nicht mehr hinterher aber ansonsten genau das was ich wollte !
                          Vielen Dank für deine Geduld !!

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • A AchimB

                            @paul53 said in Widget mit getrennter Statusvariable und Steuervariable:

                            Das mit getrenntem Kommando und Status im Alias funktioniert erst ab js-controller 3.0 ! Siehe Doku

                            Sorry mein Fehler !
                            Hab ein Update gemacht und Funktioniert !
                            Man darf zwar nicht zu schnell hintereinander schalten dann kommt er nicht mehr hinterher aber ansonsten genau das was ich wollte !
                            Vielen Dank für deine Geduld !!

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

                            @AchimB sagte:

                            genau das was ich wollte !

                            Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].

                            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

                            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

                            412

                            Online

                            32.7k

                            Benutzer

                            82.6k

                            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