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

  • 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.
  • 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
                                        • paul53P paul53

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

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

                                          @paul53

                                          log sieht so aus

                                          23:48:20.661	info	javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Ready
                                          23:48:25.593	info	javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Run
                                          23:49:37.318	info	javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Aborting
                                          23:50:02.051	info	javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Ready
                                          

                                          Wird aber nichts geschrieben

                                          paul53P 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

                                          819

                                          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