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. Skripten / Logik
  4. JavaScript
  5. Erster Versuch ein JSON zu erzeugen

NEWS

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

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

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

Erster Versuch ein JSON zu erzeugen

Geplant Angeheftet Gesperrt Verschoben JavaScript
35 Beiträge 2 Kommentatoren 3.0k Aufrufe 1 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

    @chris76e sagte: JSON soll immer dann erstellt werden wenn der DP "homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState" auf Run steht.

    Nicht, wenn "Run" beendet wird?
    Vorschlag;

    const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
    const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
    const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
     
    var table = [];
    if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
     
    on(idStatus, function(dp) {
        if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
            var obj = {};
            obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');
            obj.Programm = getObject(idProg).common.states[getState(idProg).val];
        } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
            obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
            table.push(obj);
            if(table.length > 10) table.shift();
            setState(idTable, JSON.stringify(table), true);
        }
    });
    
    Chris76eC Online
    Chris76eC Online
    Chris76e
    schrieb am zuletzt editiert von
    #3

    @paul53

    Danke, werde ich testen.

    1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @chris76e sagte: JSON soll immer dann erstellt werden wenn der DP "homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState" auf Run steht.

      Nicht, wenn "Run" beendet wird?
      Vorschlag;

      const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
      const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
      const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
       
      var table = [];
      if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
       
      on(idStatus, function(dp) {
          if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
              var obj = {};
              obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');
              obj.Programm = getObject(idProg).common.states[getState(idProg).val];
          } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
              obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
              table.push(obj);
              if(table.length > 10) table.shift();
              setState(idTable, JSON.stringify(table), true);
          }
      });
      
      Chris76eC Online
      Chris76eC Online
      Chris76e
      schrieb am zuletzt editiert von Chris76e
      #4

      @paul53

      Script funktioniert leider nicht. Es wird kein JSON erzeugt.

      Programm ist gerade fertig und im Script fenster kommt folgende Meldung

      22:34:34.168	error	javascript.0 (649) at Object.<anonymous> (script.js.common.JSON.JASONSP:29:18)
      

      Und das im Javascript Log

      javascript.0
      	2022-09-05 23:17:09.968	error	at processImmediate (node:internal/timers:466:21)
      javascript.0
      	2022-09-05 23:17:09.967	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
      javascript.0
      	2022-09-05 23:17:09.967	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:596:29)
      javascript.0
      	2022-09-05 23:17:09.967	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1212:38)
      javascript.0
      	2022-09-05 23:17:09.967	error	at Object.<anonymous> (script.js.common.JSON.JASONSP:29:18)
      javascript.0
      	2022-09-05 23:17:09.967	error	Error in callback: TypeError: Cannot set properties of undefined (setting 'Ende')
      

      Im Javascript Log konnte ich sehen wie die Endzeit immer neu geschrieben wurden ist

      javascript.0
      	2022-09-05 22:30:23.361	info	script.js.common.EndzeitGeschirr: 1662410063361
      javascript.0
      	2022-09-05 22:29:23.365	info	script.js.common.EndzeitGeschirr: 1662410063365
      

      Wenn ich den Wert aus dem Im DP homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState herrauskopiere steht da nur "Run" als es lief und jetzt "Inactive"

      paul53P 1 Antwort Letzte Antwort
      0
      • Chris76eC Chris76e

        @paul53

        Script funktioniert leider nicht. Es wird kein JSON erzeugt.

        Programm ist gerade fertig und im Script fenster kommt folgende Meldung

        22:34:34.168	error	javascript.0 (649) at Object.<anonymous> (script.js.common.JSON.JASONSP:29:18)
        

        Und das im Javascript Log

        javascript.0
        	2022-09-05 23:17:09.968	error	at processImmediate (node:internal/timers:466:21)
        javascript.0
        	2022-09-05 23:17:09.967	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
        javascript.0
        	2022-09-05 23:17:09.967	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:596:29)
        javascript.0
        	2022-09-05 23:17:09.967	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1212:38)
        javascript.0
        	2022-09-05 23:17:09.967	error	at Object.<anonymous> (script.js.common.JSON.JASONSP:29:18)
        javascript.0
        	2022-09-05 23:17:09.967	error	Error in callback: TypeError: Cannot set properties of undefined (setting 'Ende')
        

        Im Javascript Log konnte ich sehen wie die Endzeit immer neu geschrieben wurden ist

        javascript.0
        	2022-09-05 22:30:23.361	info	script.js.common.EndzeitGeschirr: 1662410063361
        javascript.0
        	2022-09-05 22:29:23.365	info	script.js.common.EndzeitGeschirr: 1662410063365
        

        Wenn ich den Wert aus dem Im DP homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState herrauskopiere steht da nur "Run" als es lief und jetzt "Inactive"

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

        @chris76e sagte: Cannot set properties of undefined (setting 'Ende')

        Ist Zeile 14 in meinem Vorschlag jetzt Zeile 29?
        Schiebe mal die Deklaration von obj (Zeile 10) vor den Trigger.

        @chris76e sagte in Erster Versuch ein JSON zu erzeugen:

        wie die Endzeit immer neu geschrieben wurden ist

        Das ist ein anderes Skript.

        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

        Chris76eC 1 Antwort Letzte Antwort
        -1
        • paul53P paul53

          @chris76e sagte: Cannot set properties of undefined (setting 'Ende')

          Ist Zeile 14 in meinem Vorschlag jetzt Zeile 29?
          Schiebe mal die Deklaration von obj (Zeile 10) vor den Trigger.

          @chris76e sagte in Erster Versuch ein JSON zu erzeugen:

          wie die Endzeit immer neu geschrieben wurden ist

          Das ist ein anderes Skript.

          Chris76eC Online
          Chris76eC Online
          Chris76e
          schrieb am zuletzt editiert von Chris76e
          #6

          @paul53

          Habe das Script jetzt so geändert:

          const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
          const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
          const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
          
          var table = [];
          if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
          var obj = {};
          on(idStatus, function(dp) {
              if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
                  obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');
                  obj.Programm = getObject(idProg).common.states[getState(idProg).val];
              } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                  obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                  table.push(obj);
                  if(table.length > 10) table.shift();
                  setState(idTable, JSON.stringify(table), true);
              }
          });
          

          Dann wird das in JSON geschrieben, fehlt also noch das Programm

          [
            {
              "Start": "05.09.22 23:37",
              "Ende": "05.09.22 23:38"
            }
          ]
          
          
          

          Die Zeilen hatten sich beim Kopieren vom Script geändert, wurde immer eine leerzeile eingefügt, ist jetzt geändert.

          paul53P 1 Antwort Letzte Antwort
          0
          • Chris76eC Chris76e

            @paul53

            Habe das Script jetzt so geändert:

            const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
            const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
            const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
            
            var table = [];
            if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
            var obj = {};
            on(idStatus, function(dp) {
                if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
                    obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');
                    obj.Programm = getObject(idProg).common.states[getState(idProg).val];
                } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                    obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                    table.push(obj);
                    if(table.length > 10) table.shift();
                    setState(idTable, JSON.stringify(table), true);
                }
            });
            

            Dann wird das in JSON geschrieben, fehlt also noch das Programm

            [
              {
                "Start": "05.09.22 23:37",
                "Ende": "05.09.22 23:38"
              }
            ]
            
            
            

            Die Zeilen hatten sich beim Kopieren vom Script geändert, wurde immer eine leerzeile eingefügt, ist jetzt geändert.

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

            @chris76e sagte: fehlt also noch das Programm

            Ohne Error- oder Warn-Log?
            Füge mal Logs ein (hinter Zeile 11):

                    log(getState(idProg).val);
                    log(getObject(idProg).common.states[getState(idProg).val]);
            

            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

            Chris76eC 2 Antworten Letzte Antwort
            0
            • paul53P paul53

              @chris76e sagte: fehlt also noch das Programm

              Ohne Error- oder Warn-Log?
              Füge mal Logs ein (hinter Zeile 11):

                      log(getState(idProg).val);
                      log(getObject(idProg).common.states[getState(idProg).val]);
              
              Chris76eC Online
              Chris76eC Online
              Chris76e
              schrieb am zuletzt editiert von
              #8

              @paul53

              Wenn Spülmaschiene Startet kommt das im Log

              00:23:34.096	info	javascript.0 (649) script.js.common.JSON.JASONSP: null
              00:23:34.097	info	javascript.0 (649) script.js.common.JSON.JASONSP: undefined
              
              paul53P 1 Antwort Letzte Antwort
              0
              • Chris76eC Chris76e

                @paul53

                Wenn Spülmaschiene Startet kommt das im Log

                00:23:34.096	info	javascript.0 (649) script.js.common.JSON.JASONSP: null
                00:23:34.097	info	javascript.0 (649) script.js.common.JSON.JASONSP: undefined
                
                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #9

                @chris76e sagte: kommt das im Log

                Dann verschiebe mal Zeile 11 unter Zeile 12 (else if).

                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

                Chris76eC 2 Antworten Letzte Antwort
                0
                • paul53P paul53

                  @chris76e sagte: kommt das im Log

                  Dann verschiebe mal Zeile 11 unter Zeile 12 (else if).

                  Chris76eC Online
                  Chris76eC Online
                  Chris76e
                  schrieb am zuletzt editiert von
                  #10

                  @paul53

                  Da ist das selbe....

                  00:43:45.727	info	javascript.0 (649) script.js.common.JSON.JASONSP: null
                  00:43:45.728	info	javascript.0 (649) script.js.common.JSON.JASONSP: undefined
                  
                  const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
                  const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
                  const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
                  
                  var table = [];
                  if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                  var obj = {};
                  on(idStatus, function(dp) {
                      if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
                          obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');   
                      } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                          obj.Programm = getObject(idProg).common.states[getState(idProg).val];
                          obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                          table.push(obj);
                          if(table.length > 10) table.shift();
                          setState(idTable, JSON.stringify(table), true);
                  
                          log(getState(idProg).val);
                          log(getObject(idProg).common.states[getState(idProg).val]);
                      }
                  });
                  
                  1 Antwort Letzte Antwort
                  0
                  • Chris76eC Online
                    Chris76eC Online
                    Chris76e
                    schrieb am zuletzt editiert von
                    #11

                    Vieleicht hilft das dir noch weiter, die Objektdaten von

                    {
                      "type": "state",
                      "common": {
                        "name": "BSH_Common_Root_ActiveProgram",
                        "type": "string",
                        "role": "indicator",
                        "write": true,
                        "read": true,
                        "states": {
                          "Dishcare.Dishwasher.Program.Intensiv70": "Intensiv 70°",
                          "Dishcare.Dishwasher.Program.Auto2": "Auto 45-65°",
                          "Dishcare.Dishwasher.Program.Eco50": "Eco 50°",
                          "Dishcare.Dishwasher.Program.Quick45": "Speed 45°",
                          "Dishcare.Dishwasher.Program.PreRinse": "Vorspülen",
                          "Dishcare.Dishwasher.Program.Quick65": "Speed 65°",
                          "Dishcare.Dishwasher.Program.MachineCare": "Maschinenpflege"
                        },
                        "custom": {
                          "history.0": {
                            "enabled": true,
                            "aliasId": "",
                            "debounceTime": 0,
                            "blockTime": 0,
                            "changesOnly": false,
                            "changesRelogInterval": 0,
                            "changesMinDelta": 0,
                            "ignoreBelowNumber": "",
                            "disableSkippedValueLogging": false,
                            "retention": 31536000,
                            "customRetentionDuration": 365,
                            "maxLength": 10,
                            "enableDebugLogs": false,
                            "debounce": 0
                          }
                        }
                      },
                      "native": {},
                      "_id": "homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.homeconnect.0",
                      "user": "system.user.admin",
                      "ts": 1662416101983
                    }
                    
                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @chris76e sagte: kommt das im Log

                      Dann verschiebe mal Zeile 11 unter Zeile 12 (else if).

                      Chris76eC Online
                      Chris76eC Online
                      Chris76e
                      schrieb am zuletzt editiert von Chris76e
                      #12

                      @paul53

                      Bin jetzt einwenig weiter gekommen, wenn ich den DP

                      homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram
                      

                      nehme, dann wird der erkannt.

                      Aber mit der Schleife ist nochwas nicht richtig. Hier werden Daten überschrieben

                      [
                        {
                          "Start": "06.09.22 00:42",
                          "Ende": "06.09.22 00:43"
                        },
                        {
                          "Start": "06.09.22 09:25",
                          "Ende": "06.09.22 09:25",
                          "Programm": "Eco 50°"
                        },
                        {
                          "Start": "06.09.22 09:25",
                          "Ende": "06.09.22 09:25",
                          "Programm": "Eco 50°"
                        }
                      ]
                      
                      [
                          {
                          "Start": "06.09.22 00:42",
                          "Ende": "06.09.22 00:43"
                        },
                        {
                          "Start": "06.09.22 09:28",
                          "Ende": "06.09.22 09:28",
                          "Programm": "Speed 45°"
                        },
                        {
                          "Start": "06.09.22 09:28",
                          "Ende": "06.09.22 09:28",
                          "Programm": "Speed 45°"
                        },
                        {
                          "Start": "06.09.22 09:28",
                          "Ende": "06.09.22 09:28",
                          "Programm": "Speed 45°"
                        }
                      ]
                      
                      const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
                      const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
                      const idProg = 'homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram';
                      
                      var table = [];
                      if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                      var obj = {};
                      on(idStatus, function(dp) {
                          if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
                              obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); 
                              obj.Programm = getObject(idProg).common.states[getState(idProg).val];
                           
                      
                              log(getState(idProg).val);
                              log(getObject(idProg).common.states[getState(idProg).val]);
                          } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                              obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                              table.push(obj);
                              if(table.length > 10) table.shift();
                              setState(idTable, JSON.stringify(table), true);
                      
                          }
                      });
                      
                      Chris76eC 1 Antwort Letzte Antwort
                      0
                      • Chris76eC Chris76e

                        @paul53

                        Bin jetzt einwenig weiter gekommen, wenn ich den DP

                        homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram
                        

                        nehme, dann wird der erkannt.

                        Aber mit der Schleife ist nochwas nicht richtig. Hier werden Daten überschrieben

                        [
                          {
                            "Start": "06.09.22 00:42",
                            "Ende": "06.09.22 00:43"
                          },
                          {
                            "Start": "06.09.22 09:25",
                            "Ende": "06.09.22 09:25",
                            "Programm": "Eco 50°"
                          },
                          {
                            "Start": "06.09.22 09:25",
                            "Ende": "06.09.22 09:25",
                            "Programm": "Eco 50°"
                          }
                        ]
                        
                        [
                            {
                            "Start": "06.09.22 00:42",
                            "Ende": "06.09.22 00:43"
                          },
                          {
                            "Start": "06.09.22 09:28",
                            "Ende": "06.09.22 09:28",
                            "Programm": "Speed 45°"
                          },
                          {
                            "Start": "06.09.22 09:28",
                            "Ende": "06.09.22 09:28",
                            "Programm": "Speed 45°"
                          },
                          {
                            "Start": "06.09.22 09:28",
                            "Ende": "06.09.22 09:28",
                            "Programm": "Speed 45°"
                          }
                        ]
                        
                        const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
                        const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
                        const idProg = 'homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram';
                        
                        var table = [];
                        if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                        var obj = {};
                        on(idStatus, function(dp) {
                            if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') {
                                obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); 
                                obj.Programm = getObject(idProg).common.states[getState(idProg).val];
                             
                        
                                log(getState(idProg).val);
                                log(getObject(idProg).common.states[getState(idProg).val]);
                            } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                                obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                                table.push(obj);
                                if(table.length > 10) table.shift();
                                setState(idTable, JSON.stringify(table), true);
                        
                            }
                        });
                        
                        Chris76eC Online
                        Chris76eC Online
                        Chris76e
                        schrieb am zuletzt editiert von Chris76e
                        #13

                        Habe vermutlich zuschnell das Programm am GS gestoppt.

                        Habe es jetzt einwenig länger laufen lassen und dann wird richtig geschrieben.

                          {
                            "Start": "06.09.22 10:09",
                            "Programm": "Auto 45-65°",
                            "Ende": "06.09.22 10:11"
                          },
                          {
                            "Start": "06.09.22 10:09",
                            "Programm": "Auto 45-65°",
                            "Ende": "06.09.22 10:11"
                          },
                          {
                            "Start": "06.09.22 10:09",
                            "Programm": "Auto 45-65°",
                            "Ende": "06.09.22 10:11"
                          },
                          {
                            "Start": "06.09.22 10:09",
                            "Programm": "Auto 45-65°",
                            "Ende": "06.09.22 10:11"
                          },
                          {
                            "Start": "06.09.22 10:13",
                            "Programm": "Eco 50°",
                            "Ende": "06.09.22 10:20"
                          }
                        ]
                        
                        1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @chris76e sagte: fehlt also noch das Programm

                          Ohne Error- oder Warn-Log?
                          Füge mal Logs ein (hinter Zeile 11):

                                  log(getState(idProg).val);
                                  log(getObject(idProg).common.states[getState(idProg).val]);
                          
                          Chris76eC Online
                          Chris76eC Online
                          Chris76e
                          schrieb am zuletzt editiert von
                          #14

                          @paul53

                          Kannst du dir nochmal bitte die schleife anschauen? Irgendwas stimmt da doch nicht.

                          Es werden weiter Dopelte Einträge gemacht, bzw. alte Einträge überschrieben.

                          [
                            {
                              "Start": "06.09.22 09:28",
                              "Ende": "06.09.22 09:28",
                              "Programm": "Speed 45°"
                            },
                            {
                              "Start": "06.09.22 09:28",
                              "Ende": "06.09.22 09:28",
                              "Programm": "Speed 45°"
                            },
                            {
                              "Start": "06.09.22 09:49",
                              "Programm": "Intensiv 70°",
                              "Ende": "06.09.22 09:49"
                            },
                            {
                              "Start": "06.09.22 09:49",
                              "Programm": "Intensiv 70°",
                              "Ende": "06.09.22 09:49"
                            },
                            {
                              "Start": "06.09.22 10:09",
                              "Programm": "Auto 45-65°",
                              "Ende": "06.09.22 10:11"
                            },
                            {
                              "Start": "06.09.22 10:09",
                              "Programm": "Auto 45-65°",
                              "Ende": "06.09.22 10:11"
                            },
                            {
                              "Start": "06.09.22 10:09",
                              "Programm": "Auto 45-65°",
                              "Ende": "06.09.22 10:11"
                            },
                            {
                              "Start": "06.09.22 10:09",
                              "Programm": "Auto 45-65°",
                              "Ende": "06.09.22 10:11"
                            },
                            {
                              "Start": "06.09.22 10:31",
                              "Programm": "Eco 50°",
                              "Ende": "06.09.22 15:08"
                            },
                            {
                              "Start": "06.09.22 10:31",
                              "Programm": "Eco 50°",
                              "Ende": "06.09.22 15:08"
                            }
                          ]
                          
                          paul53P 1 Antwort Letzte Antwort
                          0
                          • Chris76eC Chris76e

                            @paul53

                            Kannst du dir nochmal bitte die schleife anschauen? Irgendwas stimmt da doch nicht.

                            Es werden weiter Dopelte Einträge gemacht, bzw. alte Einträge überschrieben.

                            [
                              {
                                "Start": "06.09.22 09:28",
                                "Ende": "06.09.22 09:28",
                                "Programm": "Speed 45°"
                              },
                              {
                                "Start": "06.09.22 09:28",
                                "Ende": "06.09.22 09:28",
                                "Programm": "Speed 45°"
                              },
                              {
                                "Start": "06.09.22 09:49",
                                "Programm": "Intensiv 70°",
                                "Ende": "06.09.22 09:49"
                              },
                              {
                                "Start": "06.09.22 09:49",
                                "Programm": "Intensiv 70°",
                                "Ende": "06.09.22 09:49"
                              },
                              {
                                "Start": "06.09.22 10:09",
                                "Programm": "Auto 45-65°",
                                "Ende": "06.09.22 10:11"
                              },
                              {
                                "Start": "06.09.22 10:09",
                                "Programm": "Auto 45-65°",
                                "Ende": "06.09.22 10:11"
                              },
                              {
                                "Start": "06.09.22 10:09",
                                "Programm": "Auto 45-65°",
                                "Ende": "06.09.22 10:11"
                              },
                              {
                                "Start": "06.09.22 10:09",
                                "Programm": "Auto 45-65°",
                                "Ende": "06.09.22 10:11"
                              },
                              {
                                "Start": "06.09.22 10:31",
                                "Programm": "Eco 50°",
                                "Ende": "06.09.22 15:08"
                              },
                              {
                                "Start": "06.09.22 10:31",
                                "Programm": "Eco 50°",
                                "Ende": "06.09.22 15:08"
                              }
                            ]
                            
                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #15

                            @chris76e sagte: Es werden weiter Dopelte Einträge gemacht

                            Das kann nur am Verhalten des Datenpunktes "homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState" liegen". Logge mal den Wert bei jedem Trigger-Ereignis.

                            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

                            Chris76eC 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @chris76e sagte: Es werden weiter Dopelte Einträge gemacht

                              Das kann nur am Verhalten des Datenpunktes "homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState" liegen". Logge mal den Wert bei jedem Trigger-Ereignis.

                              Chris76eC Online
                              Chris76eC Online
                              Chris76e
                              schrieb am zuletzt editiert von
                              #16

                              @paul53

                              Hier der Eintrag aus dem Log

                              1. Start war noch ohne log vom Ende
                              20:19:34.230	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run
                              20:19:34.231	info	javascript.0 (649) script.js.common.JSON.JASONSP: Run
                              20:19:34.231	info	javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare
                              20:19:34.231	info	javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege
                              20:27:19.463	info	javascript.0 (649) Stop script script.js.common.JSON.JASONSP
                              20:27:19.466	info	javascript.0 (649) Start javascript script.js.common.JSON.JASONSP
                              20:27:19.479	info	javascript.0 (649) script.js.common.JSON.JASONSP: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              20:28:02.079	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run
                              20:28:02.081	info	javascript.0 (649) script.js.common.JSON.JASONSP: Run
                              20:28:02.082	info	javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Quick45
                              20:28:02.082	info	javascript.0 (649) script.js.common.JSON.JASONSP: Speed 45°
                              20:30:16.619	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting
                              20:30:16.619	info	javascript.0 (649) script.js.common.JSON.JASONSP: Aborting
                              20:32:02.233	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run
                              20:32:02.234	info	javascript.0 (649) script.js.common.JSON.JASONSP: Run
                              20:32:02.234	info	javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare
                              20:32:02.234	info	javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege
                              20:33:17.902	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting
                              20:33:17.902	info	javascript.0 (649) script.js.common.JSON.JASONSP: Aborting
                              
                              

                              Und so sieht die JSON aus

                               {
                                  "Start": "06.09.22 20:19",
                                  "Programm": "Maschinenpflege",
                                  "Ende": "06.09.22 20:25"
                                },
                                {
                                  "Start": "06.09.22 20:32",
                                  "Programm": "Maschinenpflege",
                                  "Ende": "06.09.22 20:33"
                                },
                                {
                                  "Start": "06.09.22 20:32",
                                  "Programm": "Maschinenpflege",
                                  "Ende": "06.09.22 20:33"
                                }
                              

                              Hier stand auch mal zwischenzeitlich der Eintrag von 20:28 mit Speed 45°

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • Chris76eC Chris76e

                                @paul53

                                Hier der Eintrag aus dem Log

                                1. Start war noch ohne log vom Ende
                                20:19:34.230	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run
                                20:19:34.231	info	javascript.0 (649) script.js.common.JSON.JASONSP: Run
                                20:19:34.231	info	javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare
                                20:19:34.231	info	javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege
                                20:27:19.463	info	javascript.0 (649) Stop script script.js.common.JSON.JASONSP
                                20:27:19.466	info	javascript.0 (649) Start javascript script.js.common.JSON.JASONSP
                                20:27:19.479	info	javascript.0 (649) script.js.common.JSON.JASONSP: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                20:28:02.079	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run
                                20:28:02.081	info	javascript.0 (649) script.js.common.JSON.JASONSP: Run
                                20:28:02.082	info	javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Quick45
                                20:28:02.082	info	javascript.0 (649) script.js.common.JSON.JASONSP: Speed 45°
                                20:30:16.619	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting
                                20:30:16.619	info	javascript.0 (649) script.js.common.JSON.JASONSP: Aborting
                                20:32:02.233	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run
                                20:32:02.234	info	javascript.0 (649) script.js.common.JSON.JASONSP: Run
                                20:32:02.234	info	javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare
                                20:32:02.234	info	javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege
                                20:33:17.902	info	javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting
                                20:33:17.902	info	javascript.0 (649) script.js.common.JSON.JASONSP: Aborting
                                
                                

                                Und so sieht die JSON aus

                                 {
                                    "Start": "06.09.22 20:19",
                                    "Programm": "Maschinenpflege",
                                    "Ende": "06.09.22 20:25"
                                  },
                                  {
                                    "Start": "06.09.22 20:32",
                                    "Programm": "Maschinenpflege",
                                    "Ende": "06.09.22 20:33"
                                  },
                                  {
                                    "Start": "06.09.22 20:32",
                                    "Programm": "Maschinenpflege",
                                    "Ende": "06.09.22 20:33"
                                  }
                                

                                Hier stand auch mal zwischenzeitlich der Eintrag von 20:28 mit Speed 45°

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

                                @chris76e
                                Aus dem Log sehe ich, dass "Run" nur als kurzer Impuls gemeldet wird und danach das Programm, beendet durch "Aborting". Dann versuche es mal so:

                                const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
                                const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
                                // const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
                                 
                                var table = [];
                                if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                                var obj = {};
                                 
                                on(idStatus, function(dp) {
                                    if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                                        obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');
                                        obj.Programm = dp.common.states[dp.state.val];
                                    } else if (dp.state.val == 'BSH.Common.EnumType.OperationState.Aborting') {
                                        obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                                        table.push(obj);
                                        if(table.length > 10) table.shift();
                                        setState(idTable, JSON.stringify(table), true);
                                    }
                                });
                                

                                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

                                Chris76eC 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @chris76e
                                  Aus dem Log sehe ich, dass "Run" nur als kurzer Impuls gemeldet wird und danach das Programm, beendet durch "Aborting". Dann versuche es mal so:

                                  const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle
                                  const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState';
                                  // const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
                                   
                                  var table = [];
                                  if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                                  var obj = {};
                                   
                                  on(idStatus, function(dp) {
                                      if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') {
                                          obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm');
                                          obj.Programm = dp.common.states[dp.state.val];
                                      } else if (dp.state.val == 'BSH.Common.EnumType.OperationState.Aborting') {
                                          obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
                                          table.push(obj);
                                          if(table.length > 10) table.shift();
                                          setState(idTable, JSON.stringify(table), true);
                                      }
                                  });
                                  
                                  Chris76eC Online
                                  Chris76eC Online
                                  Chris76e
                                  schrieb am zuletzt editiert von
                                  #18

                                  @paul53

                                  obj.Programm = dp.common.states[dp.state.val];
                                  

                                  Wo kommt jetzt der DP herr? Fehlt da nicht was?

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • Chris76eC Chris76e

                                    @paul53

                                    obj.Programm = dp.common.states[dp.state.val];
                                    

                                    Wo kommt jetzt der DP herr? Fehlt da nicht was?

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

                                    @chris76e sagte: Wo kommt jetzt der DP herr?

                                    Aus dem Trigger: Enthält den Zustand "laufendes Programm" nach "Run".

                                    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

                                    Chris76eC 1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @chris76e sagte: Wo kommt jetzt der DP herr?

                                      Aus dem Trigger: Enthält den Zustand "laufendes Programm" nach "Run".

                                      Chris76eC Online
                                      Chris76eC Online
                                      Chris76e
                                      schrieb am zuletzt editiert von
                                      #20

                                      @paul53

                                      Mit der Version wird nichts geschrieben, bekomme auch keine Fehlermeldung.

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • Chris76eC Chris76e

                                        @paul53

                                        Mit der Version wird nichts geschrieben, bekomme auch keine Fehlermeldung.

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

                                        @chris76e sagte: Mit der Version wird nichts geschrieben

                                        Wurde obj außerhalb des Triggers deklariert? Habe ich oben korrigiert.

                                        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

                                        Chris76eC 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @chris76e sagte: Mit der Version wird nichts geschrieben

                                          Wurde obj außerhalb des Triggers deklariert? Habe ich oben korrigiert.

                                          Chris76eC Online
                                          Chris76eC Online
                                          Chris76e
                                          schrieb am zuletzt editiert von
                                          #22

                                          @paul53
                                          ist geändert, aber macht immer noch nichts.

                                          paul53P 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

                                          561

                                          Online

                                          32.8k

                                          Benutzer

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