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. Skripten / Logik
  4. JavaScript
  5. nspanel script: state im alias bleibt 0

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

nspanel script: state im alias bleibt 0

Geplant Angeheftet Gesperrt Verschoben JavaScript
10 Beiträge 2 Kommentatoren 598 Aufrufe 1 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 Offline
    M Offline
    msuilmann
    schrieb am zuletzt editiert von
    #1

    Hallo Schwarmwissen,

    das ts-script für den Müllkalender für das nspanel läuft fehlerfrei, die Werte für das Datum und den Behältertyp werden im alias übernommen.
    Nur die Farbe bleibt im alias auf 0.

    hier die Objektdaten für color in userdata:
    {
    "common": {
    "name": "color",
    "desc": "Manuell erzeugt",
    "role": "state",
    "type": "number",
    "read": true,
    "write": true,
    "def": 0
    },
    "type": "state",
    "native": {},
    "from": "system.adapter.admin.0",
    "user": "system.user.admin",
    "ts": 1669308868460,
    "_id": "0_userdata.0.Abfallkalender.1.color",
    "acl": {
    "object": 1636,
    "state": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
    }
    }

    und hier die Objektdaten im alias folder:
    {
    "_id": "alias.0.NSPanel.Abfall.event1.LEVEL",
    "common": {
    "name": "LEVEL",
    "role": "value.warning",
    "type": "number",
    "read": true,
    "write": true,
    "alias": {
    "id": "0_userdata.0.Abfallkalender.1.color"
    }
    },
    "native": {},
    "type": "state",
    "acl": {
    "object": 1636,
    "state": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
    },
    "from": "system.adapter.admin.0",
    "user": "system.user.admin",
    "ts": 1679861120927
    }

    warum bleibt der Wert im Objekt auf 0?

    T 1 Antwort Letzte Antwort
    0
    • M msuilmann

      Hallo Schwarmwissen,

      das ts-script für den Müllkalender für das nspanel läuft fehlerfrei, die Werte für das Datum und den Behältertyp werden im alias übernommen.
      Nur die Farbe bleibt im alias auf 0.

      hier die Objektdaten für color in userdata:
      {
      "common": {
      "name": "color",
      "desc": "Manuell erzeugt",
      "role": "state",
      "type": "number",
      "read": true,
      "write": true,
      "def": 0
      },
      "type": "state",
      "native": {},
      "from": "system.adapter.admin.0",
      "user": "system.user.admin",
      "ts": 1669308868460,
      "_id": "0_userdata.0.Abfallkalender.1.color",
      "acl": {
      "object": 1636,
      "state": 1636,
      "owner": "system.user.admin",
      "ownerGroup": "system.group.administrator"
      }
      }

      und hier die Objektdaten im alias folder:
      {
      "_id": "alias.0.NSPanel.Abfall.event1.LEVEL",
      "common": {
      "name": "LEVEL",
      "role": "value.warning",
      "type": "number",
      "read": true,
      "write": true,
      "alias": {
      "id": "0_userdata.0.Abfallkalender.1.color"
      }
      },
      "native": {},
      "type": "state",
      "acl": {
      "object": 1636,
      "state": 1636,
      "owner": "system.user.admin",
      "ownerGroup": "system.group.administrator"
      },
      "from": "system.adapter.admin.0",
      "user": "system.user.admin",
      "ts": 1679861120927
      }

      warum bleibt der Wert im Objekt auf 0?

      T Offline
      T Offline
      TT-Tom
      schrieb am zuletzt editiert von TT-Tom
      #2

      @msuilmann

      zeige mal dein Script. Die Daten sehen okay aus. Ich habe den Verdacht, dass der Vergleich nicht funktioniert, um die richtige Farbe zu setzen. Füge bitte mal die beiden, Log Zeilen vor dem "if" ein. Damit kannst du den erkannten Restmüllnamen und deinen angegebenen Namen im log sehen.

              console.log(Event2);
              console.log(idRestmuellName);
      
       if (Event2 == idRestmuellName) {
      

      Gruß Tom
      https://github.com/tt-tom17
      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

      NSPanel Script Wiki
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      NSPanel Adapter Wiki
      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

      M 1 Antwort Letzte Antwort
      0
      • T TT-Tom

        @msuilmann

        zeige mal dein Script. Die Daten sehen okay aus. Ich habe den Verdacht, dass der Vergleich nicht funktioniert, um die richtige Farbe zu setzen. Füge bitte mal die beiden, Log Zeilen vor dem "if" ein. Damit kannst du den erkannten Restmüllnamen und deinen angegebenen Namen im log sehen.

                console.log(Event2);
                console.log(idRestmuellName);
        
         if (Event2 == idRestmuellName) {
        
        M Offline
        M Offline
        msuilmann
        schrieb am zuletzt editiert von
        #3

        @tt-tom said in nspanel script: state im alias bleibt 0:

        console.log(idRestmuellName);

        Hallo Tom,
        ich habe jetzt mal in das script die folgenden log-Befehle eingegeben:
        console.log('Event2 = ' + Event2);
        console.log('ID = ' + idRestmuellName);
        console.log('ID = ' + idBioabfaelleName);
        console.log('ID = ' + idPappePapierName);
        console.log('ID = ' + idWertstoffName);

        Das ist das Ergebnis in der log-Datei:
        javascript.0
        2023-04-01 21:30:03.730 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

        javascript.0
        2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

        javascript.0
        2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: Event2 = Bioabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.728 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

        javascript.0
        2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

        javascript.0
        2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: Event2 = Wertstoffbehaelter

        javascript.0
        2023-04-01 21:30:03.726 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

        javascript.0
        2023-04-01 21:30:03.726 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

        javascript.0
        2023-04-01 21:30:03.725 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.725 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.725 info script.js.NSPanel.Muell_JS: Event2 = Restabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

        javascript.0
        2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

        javascript.0
        2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

        javascript.0
        2023-04-01 21:30:03.721 info script.js.NSPanel.Muell_JS: Event2 = Papierbehaelter

        Es sieht so aus, als ob bei der ersten event2-Abfrage der string leer ist.

        Hier jetzt mal das script:

        const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
        const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
        const idRestmuellName ='Restabfallbehaelter'; // Schwarze Tonne
        const idWertstoffName = 'Wertstoffbehaelter'; // Gelbe Tonne / Sack
        const idPappePapierName = 'Papierbehaelter'; // Blaue Tonne
        const idBioabfaelleName = 'Bioabfallbehaelter'; // Braune Tonne

        var i, Muell_JSON, Event2, Color = 0;

        for (i = 1; i <= 4; i++) {
        if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
        log(i + '.date nicht vorhanden, wurde erstellt');
        createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
        {
        name: parseFloat(i) + '.date',
        role: 'state',
        type: 'string',
        read: true,
        write: true,
        def: ''
        });
        };
        if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
        log(i + '.event nicht vorhanden, wurde erstellt');
        createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
        {
        name: parseFloat(i) + '.event',
        role: 'state',
        type: 'string',
        read: true,
        write: true,
        def: ''
        });
        };
        if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
        log(i + '.color nicht vorhanden, wurde erstellt');
        createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 31,
        {
        name: parseFloat(i) + '.color',
        role: 'state',
        type: 'number',
        read: true,
        write: true,
        def: 0
        });
        };
        }

        function subsequenceFromStartLast(sequence, at1) {
        var start = at1;
        var end = sequence.length;
        return sequence.slice(start, end);
        }

        on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {

        for (i = 0; i <= 3; i++) {
            Muell_JSON = getState(idAbfalliCal + '.data.table').val;
            setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
            Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
          
            setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
            console.log('Event2 = ' + Event2);
            console.log('ID = ' + idRestmuellName);
            console.log('ID = ' + idBioabfaelleName);
            console.log('ID = ' + idPappePapierName);
            console.log('ID = ' + idWertstoffName);
            if (Event2 == idRestmuellName) {
                Color = 33840;
                console.log ('Rest = true');
            } else if (Event2 == idBioabfaelleName) {
                Color = 2016;
                console.log ('Bio = true');
            } else if (Event2 == idPappePapierName) {
                Color = 31;
                console.log ('Papier = true');
            } else if (Event2 == idWertstoffName) {
                Color = 65504;
                console.log ('Wert = true');
            }
            setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
        }
        

        });

        M 1 Antwort Letzte Antwort
        0
        • M msuilmann

          @tt-tom said in nspanel script: state im alias bleibt 0:

          console.log(idRestmuellName);

          Hallo Tom,
          ich habe jetzt mal in das script die folgenden log-Befehle eingegeben:
          console.log('Event2 = ' + Event2);
          console.log('ID = ' + idRestmuellName);
          console.log('ID = ' + idBioabfaelleName);
          console.log('ID = ' + idPappePapierName);
          console.log('ID = ' + idWertstoffName);

          Das ist das Ergebnis in der log-Datei:
          javascript.0
          2023-04-01 21:30:03.730 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

          javascript.0
          2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

          javascript.0
          2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.729 info script.js.NSPanel.Muell_JS: Event2 = Bioabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.728 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

          javascript.0
          2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

          javascript.0
          2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.727 info script.js.NSPanel.Muell_JS: Event2 = Wertstoffbehaelter

          javascript.0
          2023-04-01 21:30:03.726 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

          javascript.0
          2023-04-01 21:30:03.726 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

          javascript.0
          2023-04-01 21:30:03.725 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.725 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.725 info script.js.NSPanel.Muell_JS: Event2 = Restabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter

          javascript.0
          2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter

          javascript.0
          2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter

          javascript.0
          2023-04-01 21:30:03.721 info script.js.NSPanel.Muell_JS: Event2 = Papierbehaelter

          Es sieht so aus, als ob bei der ersten event2-Abfrage der string leer ist.

          Hier jetzt mal das script:

          const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
          const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
          const idRestmuellName ='Restabfallbehaelter'; // Schwarze Tonne
          const idWertstoffName = 'Wertstoffbehaelter'; // Gelbe Tonne / Sack
          const idPappePapierName = 'Papierbehaelter'; // Blaue Tonne
          const idBioabfaelleName = 'Bioabfallbehaelter'; // Braune Tonne

          var i, Muell_JSON, Event2, Color = 0;

          for (i = 1; i <= 4; i++) {
          if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
          log(i + '.date nicht vorhanden, wurde erstellt');
          createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
          {
          name: parseFloat(i) + '.date',
          role: 'state',
          type: 'string',
          read: true,
          write: true,
          def: ''
          });
          };
          if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
          log(i + '.event nicht vorhanden, wurde erstellt');
          createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
          {
          name: parseFloat(i) + '.event',
          role: 'state',
          type: 'string',
          read: true,
          write: true,
          def: ''
          });
          };
          if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
          log(i + '.color nicht vorhanden, wurde erstellt');
          createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 31,
          {
          name: parseFloat(i) + '.color',
          role: 'state',
          type: 'number',
          read: true,
          write: true,
          def: 0
          });
          };
          }

          function subsequenceFromStartLast(sequence, at1) {
          var start = at1;
          var end = sequence.length;
          return sequence.slice(start, end);
          }

          on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {

          for (i = 0; i <= 3; i++) {
              Muell_JSON = getState(idAbfalliCal + '.data.table').val;
              setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
              Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
            
              setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
              console.log('Event2 = ' + Event2);
              console.log('ID = ' + idRestmuellName);
              console.log('ID = ' + idBioabfaelleName);
              console.log('ID = ' + idPappePapierName);
              console.log('ID = ' + idWertstoffName);
              if (Event2 == idRestmuellName) {
                  Color = 33840;
                  console.log ('Rest = true');
              } else if (Event2 == idBioabfaelleName) {
                  Color = 2016;
                  console.log ('Bio = true');
              } else if (Event2 == idPappePapierName) {
                  Color = 31;
                  console.log ('Papier = true');
              } else if (Event2 == idWertstoffName) {
                  Color = 65504;
                  console.log ('Wert = true');
              }
              setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
          }
          

          });

          M Offline
          M Offline
          msuilmann
          schrieb am zuletzt editiert von
          #4

          @msuilmann Sehe gerade, dass ich ja von unten nach oben lesen mus,
          also passt die Anzeige

          T 1 Antwort Letzte Antwort
          0
          • M msuilmann

            @msuilmann Sehe gerade, dass ich ja von unten nach oben lesen mus,
            also passt die Anzeige

            T Offline
            T Offline
            TT-Tom
            schrieb am zuletzt editiert von TT-Tom
            #5

            @msuilmann

            Kannst du bitte mal alle Ausgaben in die codetags packen. Dann kann ich es besser lesen.

            Gruß Tom
            https://github.com/tt-tom17
            Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

            NSPanel Script Wiki
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            NSPanel Adapter Wiki
            https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

            M 1 Antwort Letzte Antwort
            0
            • T TT-Tom

              @msuilmann

              Kannst du bitte mal alle Ausgaben in die codetags packen. Dann kann ich es besser lesen.

              M Offline
              M Offline
              msuilmann
              schrieb am zuletzt editiert von
              #6

              @tt-tom

              console.log('Event2 = ' + Event2);
              console.log('ID = ' + idRestmuellName);
              console.log('ID = ' + idBioabfaelleName);
              console.log('ID = ' + idPappePapierName);
              console.log('ID = ' + idWertstoffName);
              
              javascript.0
              2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter
              
              javascript.0
              2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter
              
              javascript.0
              2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter
              
              javascript.0
              2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter
              
              javascript.0
              2023-04-01 21:30:03.721 info script.js.NSPanel.Muell_JS: Event2 = Papierbehaelter
              
              const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
              const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
              const idRestmuellName ='Restabfallbehaelter'; // Schwarze Tonne
              const idWertstoffName = 'Wertstoffbehaelter'; // Gelbe Tonne / Sack
              const idPappePapierName = 'Papierbehaelter'; // Blaue Tonne
              const idBioabfaelleName = 'Bioabfallbehaelter'; // Braune Tonne
              
              var i, Muell_JSON, Event2, Color = 0;
              
              for (i = 1; i <= 4; i++) {
              if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
              log(i + '.date nicht vorhanden, wurde erstellt');
              createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
              {
              name: parseFloat(i) + '.date',
              role: 'state',
              type: 'string',
              read: true,
              write: true,
              def: ''
              });
              };
              if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
              log(i + '.event nicht vorhanden, wurde erstellt');
              createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
              {
              name: parseFloat(i) + '.event',
              role: 'state',
              type: 'string',
              read: true,
              write: true,
              def: ''
              });
              };
              if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
              log(i + '.color nicht vorhanden, wurde erstellt');
              createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 31,
              {
              name: parseFloat(i) + '.color',
              role: 'state',
              type: 'number',
              read: true,
              write: true,
              def: 0
              });
              };
              }
              
              function subsequenceFromStartLast(sequence, at1) {
              var start = at1;
              var end = sequence.length;
              return sequence.slice(start, end);
              }
              
              on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {
              
              for (i = 0; i <= 3; i++) {
                  Muell_JSON = getState(idAbfalliCal + '.data.table').val;
                  setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
                  Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
                
                  setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                  console.log('Event2 = ' + Event2);
                  console.log('ID = ' + idRestmuellName);
                  console.log('ID = ' + idBioabfaelleName);
                  console.log('ID = ' + idPappePapierName);
                  console.log('ID = ' + idWertstoffName);
                  if (Event2 == idRestmuellName) {
                      Color = 33840;
                      console.log ('Rest = true');
                  } else if (Event2 == idBioabfaelleName) {
                      Color = 2016;
                      console.log ('Bio = true');
                  } else if (Event2 == idPappePapierName) {
                      Color = 31;
                      console.log ('Papier = true');
                  } else if (Event2 == idWertstoffName) {
                      Color = 65504;
                      console.log ('Wert = true');
                  }
                  setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
              }
              });
              
              

              Ich hoffe, dass es nun richtig ist.
              Gruß Matthias

              T 1 Antwort Letzte Antwort
              0
              • M msuilmann

                @tt-tom

                console.log('Event2 = ' + Event2);
                console.log('ID = ' + idRestmuellName);
                console.log('ID = ' + idBioabfaelleName);
                console.log('ID = ' + idPappePapierName);
                console.log('ID = ' + idWertstoffName);
                
                javascript.0
                2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Wertstoffbehaelter
                
                javascript.0
                2023-04-01 21:30:03.723 info script.js.NSPanel.Muell_JS: ID = Papierbehaelter
                
                javascript.0
                2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Bioabfallbehaelter
                
                javascript.0
                2023-04-01 21:30:03.722 info script.js.NSPanel.Muell_JS: ID = Restabfallbehaelter
                
                javascript.0
                2023-04-01 21:30:03.721 info script.js.NSPanel.Muell_JS: Event2 = Papierbehaelter
                
                const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
                const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
                const idRestmuellName ='Restabfallbehaelter'; // Schwarze Tonne
                const idWertstoffName = 'Wertstoffbehaelter'; // Gelbe Tonne / Sack
                const idPappePapierName = 'Papierbehaelter'; // Blaue Tonne
                const idBioabfaelleName = 'Bioabfallbehaelter'; // Braune Tonne
                
                var i, Muell_JSON, Event2, Color = 0;
                
                for (i = 1; i <= 4; i++) {
                if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
                log(i + '.date nicht vorhanden, wurde erstellt');
                createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
                {
                name: parseFloat(i) + '.date',
                role: 'state',
                type: 'string',
                read: true,
                write: true,
                def: ''
                });
                };
                if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
                log(i + '.event nicht vorhanden, wurde erstellt');
                createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
                {
                name: parseFloat(i) + '.event',
                role: 'state',
                type: 'string',
                read: true,
                write: true,
                def: ''
                });
                };
                if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
                log(i + '.color nicht vorhanden, wurde erstellt');
                createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 31,
                {
                name: parseFloat(i) + '.color',
                role: 'state',
                type: 'number',
                read: true,
                write: true,
                def: 0
                });
                };
                }
                
                function subsequenceFromStartLast(sequence, at1) {
                var start = at1;
                var end = sequence.length;
                return sequence.slice(start, end);
                }
                
                on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {
                
                for (i = 0; i <= 3; i++) {
                    Muell_JSON = getState(idAbfalliCal + '.data.table').val;
                    setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
                    Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
                  
                    setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                    console.log('Event2 = ' + Event2);
                    console.log('ID = ' + idRestmuellName);
                    console.log('ID = ' + idBioabfaelleName);
                    console.log('ID = ' + idPappePapierName);
                    console.log('ID = ' + idWertstoffName);
                    if (Event2 == idRestmuellName) {
                        Color = 33840;
                        console.log ('Rest = true');
                    } else if (Event2 == idBioabfaelleName) {
                        Color = 2016;
                        console.log ('Bio = true');
                    } else if (Event2 == idPappePapierName) {
                        Color = 31;
                        console.log ('Papier = true');
                    } else if (Event2 == idWertstoffName) {
                        Color = 65504;
                        console.log ('Wert = true');
                    }
                    setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                }
                });
                
                

                Ich hoffe, dass es nun richtig ist.
                Gruß Matthias

                T Offline
                T Offline
                TT-Tom
                schrieb am zuletzt editiert von TT-Tom
                #7

                @msuilmann
                Setze bitte mal hinter der Variable noch ein % zum Beispiel, ich glaube da ist ein Leerzeichen noch dran.

                 console.log('Event2 = %' + Event2 +  '%' )
                

                Gruß Tom
                https://github.com/tt-tom17
                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                NSPanel Script Wiki
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                NSPanel Adapter Wiki
                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                M 1 Antwort Letzte Antwort
                0
                • T TT-Tom

                  @msuilmann
                  Setze bitte mal hinter der Variable noch ein % zum Beispiel, ich glaube da ist ein Leerzeichen noch dran.

                   console.log('Event2 = %' + Event2 +  '%' )
                  
                  M Offline
                  M Offline
                  msuilmann
                  schrieb am zuletzt editiert von
                  #8

                  @tt-tom said in nspanel script: state im alias bleibt 0:

                  console.log('Event2 = %' + Event2 + '%' )

                  Du hast recht, der emsländische Abfallkalender hat als Besonderheit ein Leerzeichen hinter dem Namen :face_with_rolling_eyes: :face_with_rolling_eyes:
                  Oh Mann, Danke für den Hinweis, da wäre ich NIE drauf gekommen!

                  Beste Grüße Matthias

                  T 1 Antwort Letzte Antwort
                  0
                  • M msuilmann

                    @tt-tom said in nspanel script: state im alias bleibt 0:

                    console.log('Event2 = %' + Event2 + '%' )

                    Du hast recht, der emsländische Abfallkalender hat als Besonderheit ein Leerzeichen hinter dem Namen :face_with_rolling_eyes: :face_with_rolling_eyes:
                    Oh Mann, Danke für den Hinweis, da wäre ich NIE drauf gekommen!

                    Beste Grüße Matthias

                    T Offline
                    T Offline
                    TT-Tom
                    schrieb am zuletzt editiert von
                    #9

                    @msuilmann
                    mir ist damals auch der gleich Fehler passiert, darum hatte ich so eine Vorahnung. Schön wenn es jetzt läuft.

                    Gruß Tom
                    https://github.com/tt-tom17
                    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                    NSPanel Script Wiki
                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                    NSPanel Adapter Wiki
                    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                    M 1 Antwort Letzte Antwort
                    0
                    • T TT-Tom

                      @msuilmann
                      mir ist damals auch der gleich Fehler passiert, darum hatte ich so eine Vorahnung. Schön wenn es jetzt läuft.

                      M Offline
                      M Offline
                      msuilmann
                      schrieb am zuletzt editiert von
                      #10

                      @tt-tom

                      hier nochmal das Ergebnis vom log:

                      javascript.0
                      2023-04-03 21:30:03.740	info	script.js.NSPanel.Muell_JS: Bio = true
                      
                      javascript.0
                      2023-04-03 21:30:03.740	info	script.js.NSPanel.Muell_JS: Event2 = %Bioabfallbehaelter %
                      
                      javascript.0
                      2023-04-03 21:30:03.739	info	script.js.NSPanel.Muell_JS: Wert = true
                      
                      javascript.0
                      2023-04-03 21:30:03.739	info	script.js.NSPanel.Muell_JS: Event2 = %Wertstoffbehaelter %
                      
                      javascript.0
                      2023-04-03 21:30:03.738	info	script.js.NSPanel.Muell_JS: Rest = true
                      
                      javascript.0
                      2023-04-03 21:30:03.738	info	script.js.NSPanel.Muell_JS: Event2 = %Restabfallbehaelter %
                      
                      javascript.0
                      2023-04-03 21:30:03.737	info	script.js.NSPanel.Muell_JS: Papier = true
                      
                      javascript.0
                      2023-04-03 21:30:03.735	info	script.js.NSPanel.Muell_JS: Event2 = %Papierbehaelter %
                      
                      1 Antwort Letzte Antwort
                      1
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      761

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      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