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. Erster Versuch ein JSON zu erzeugen

NEWS

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

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

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

Erster Versuch ein JSON zu erzeugen

Geplant Angeheftet Gesperrt Verschoben JavaScript
35 Beiträge 2 Kommentatoren 2.2k 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.
  • 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
                                        • Chris76eC Chris76e

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

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

                                          @chris76e sagte: ist geändert, aber macht immer noch nichts.

                                          @chris76e sagte in Erster Versuch ein JSON zu erzeugen:

                                          Hier der Eintrag aus dem Log

                                          Das ist wirklich der Wert des Trigger-Datenpunktes. Es sind zumindest zwei Log-Ausgaben. Logge mal nur den Trigger-Wert:

                                          on(idStatus, function(dp) {
                                              log(dp.state.val);
                                          

                                          Alle anderen Logs kommentiere aus.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          670

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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