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

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: 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 Offline
    Chris76eC Offline
    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 Offline
        Chris76eC Offline
        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 Offline
            Chris76eC Offline
            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 Offline
              Chris76eC Offline
              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 Offline
                Chris76eC Offline
                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 Offline
                  Chris76eC Offline
                  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 Offline
                    Chris76eC Offline
                    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 Offline
                        Chris76eC Offline
                        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 Offline
                            Chris76eC Offline
                            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 Offline
                                Chris76eC Offline
                                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 Offline
                                    Chris76eC Offline
                                    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 Offline
                                        Chris76eC Offline
                                        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
                                        • Chris76eC Chris76e

                                          @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 Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von paul53
                                          #25

                                          @chris76e
                                          Habe mich hier durch die weiteren Logs täuschen lassen, da sie nicht gekennzeichnet sind.
                                          Weshalb das Skript doppelte Einträge erzeugt, erschließt sich mir bisher nicht. Deshalb erzeuge bitte Logs mit Datenpunkt-Kennung:

                                          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';
                                          const idAktiv = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram';
                                          
                                          var table = [];
                                          if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                                          var obj = {};
                                          
                                          on(idAktiv, function(dp) {
                                              log('Aktiv: ' + dp.state.val);
                                          });
                                          
                                          on(idStatus, function(dp) {
                                              log('gewählt: ' + getState(idProg).val);
                                              log('alter Status: ' + dp.oldState.val);
                                              log('neuer Status: ' + dp.state.val);
                                              
                                              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);
                                              }
                                          });
                                          

                                          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

                                          876

                                          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