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]Widget mit getrennter Statusvariable und Steuervar.

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    351

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

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

Geplant Angeheftet Gesperrt Verschoben Visualisierung
android app vis
26 Beiträge 2 Kommentatoren 2.4k 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.
  • 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
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            665

                            Online

                            32.5k

                            Benutzer

                            81.8k

                            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