Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    933

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

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

Erster Versuch ein JSON zu erzeugen

Scheduled Pinned Locked Moved JavaScript
35 Posts 2 Posters 2.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paul53P paul53

    @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);
        }
    });
    
    Chris76eC Offline
    Chris76eC Offline
    Chris76e
    wrote on last edited by
    #26

    @paul53

    Hier der log von 2 Abgebrochenen Durchgänge:

    08:58:09.745	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Eco50
    08:58:09.745	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Ready
    08:58:09.746	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Run
    08:58:09.746	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Eco50
    08:58:09.746	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Eco 50°
    08:58:09.918	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: Dishcare.Dishwasher.Program.Eco50
    09:00:36.446	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: null
    09:00:36.847	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Eco50
    09:00:36.847	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Run
    09:00:36.847	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Aborting
    09:01:03.132	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Eco50
    09:01:03.132	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Aborting
    09:01:03.133	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Ready
    09:09:34.041	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Quick65
    09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Ready
    09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Run
    09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Quick65
    09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Speed 65°
    09:09:34.107	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: Dishcare.Dishwasher.Program.Quick65
    09:10:56.316	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: null
    09:10:56.480	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Quick65
    09:10:56.480	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Run
    09:10:56.480	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Aborting
    09:11:20.331	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Quick65
    09:11:20.332	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Aborting
    09:11:20.332	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Ready
    
    

    So sieht die JSON nach dem 1. aus:

    [
      {
        "Start": "06.09.22 23:48",
        "Programm": "Intensiv 70°",
        "Ende": "06.09.22 23:49"
      },
      {
        "Start": "07.09.22 08:58",
        "Programm": "Eco 50°",
        "Ende": "07.09.22 09:00"
      }
    ]
    

    und so nach dem 2.

    [
      {
        "Start": "06.09.22 23:48",
        "Programm": "Intensiv 70°",
        "Ende": "06.09.22 23:49"
      },
      {
        "Start": "07.09.22 09:09",
        "Programm": "Speed 65°",
        "Ende": "07.09.22 09:10"
      },
      {
        "Start": "07.09.22 09:09",
        "Programm": "Speed 65°",
        "Ende": "07.09.22 09:10"
      }
    ]
    
    paul53P 1 Reply Last reply
    0
    • Chris76eC Chris76e

      @paul53

      Hier der log von 2 Abgebrochenen Durchgänge:

      08:58:09.745	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Eco50
      08:58:09.745	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Ready
      08:58:09.746	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Run
      08:58:09.746	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Eco50
      08:58:09.746	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Eco 50°
      08:58:09.918	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: Dishcare.Dishwasher.Program.Eco50
      09:00:36.446	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: null
      09:00:36.847	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Eco50
      09:00:36.847	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Run
      09:00:36.847	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Aborting
      09:01:03.132	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Eco50
      09:01:03.132	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Aborting
      09:01:03.133	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Ready
      09:09:34.041	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Quick65
      09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Ready
      09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Run
      09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Quick65
      09:09:34.042	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: Speed 65°
      09:09:34.107	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: Dishcare.Dishwasher.Program.Quick65
      09:10:56.316	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: aktiv: null
      09:10:56.480	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Quick65
      09:10:56.480	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Run
      09:10:56.480	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Aborting
      09:11:20.331	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: gewählt: Dishcare.Dishwasher.Program.Quick65
      09:11:20.332	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: alter Status: BSH.Common.EnumType.OperationState.Aborting
      09:11:20.332	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: neuer Status: BSH.Common.EnumType.OperationState.Ready
      
      

      So sieht die JSON nach dem 1. aus:

      [
        {
          "Start": "06.09.22 23:48",
          "Programm": "Intensiv 70°",
          "Ende": "06.09.22 23:49"
        },
        {
          "Start": "07.09.22 08:58",
          "Programm": "Eco 50°",
          "Ende": "07.09.22 09:00"
        }
      ]
      

      und so nach dem 2.

      [
        {
          "Start": "06.09.22 23:48",
          "Programm": "Intensiv 70°",
          "Ende": "06.09.22 23:49"
        },
        {
          "Start": "07.09.22 09:09",
          "Programm": "Speed 65°",
          "Ende": "07.09.22 09:10"
        },
        {
          "Start": "07.09.22 09:09",
          "Programm": "Speed 65°",
          "Ende": "07.09.22 09:10"
        }
      ]
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #27

      @chris76e
      Aus dem Log erkennt man, dass "ActiveProgram" zu Beginn und zu Ende triggert - am Ende mit Wert null. Damit kann man das Programm vereinfachen:

      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) {
          if(dp.state.val) {
              obj = {};
              obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); 
              obj.Programm = dp.common.states[dp.state.val];
          } else {
              obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
      //        log(table);
              table.push(obj);
              if(table.length > 10) table.shift();
              setState(idTable, JSON.stringify(table), true);
      //        log(table);
          }
      });
      

      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 Reply Last reply
      0
      • paul53P paul53

        @chris76e
        Aus dem Log erkennt man, dass "ActiveProgram" zu Beginn und zu Ende triggert - am Ende mit Wert null. Damit kann man das Programm vereinfachen:

        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) {
            if(dp.state.val) {
                obj = {};
                obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); 
                obj.Programm = dp.common.states[dp.state.val];
            } else {
                obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm');
        //        log(table);
                table.push(obj);
                if(table.length > 10) table.shift();
                setState(idTable, JSON.stringify(table), true);
        //        log(table);
            }
        });
        
        Chris76eC Offline
        Chris76eC Offline
        Chris76e
        wrote on last edited by
        #28

        @paul53

        Wird immer noch überschrieben....

        10:20:10.018	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'}]
        10:20:10.018	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:16','Programm':'Eco 50°','Ende':'07.09.22 10:20'}]
        10:23:40.013	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'}]
        10:23:40.013	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'}]
        
        paul53P 2 Replies Last reply
        0
        • Chris76eC Chris76e

          @paul53

          Wird immer noch überschrieben....

          10:20:10.018	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'}]
          10:20:10.018	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:16','Programm':'Eco 50°','Ende':'07.09.22 10:20'}]
          10:23:40.013	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'}]
          10:23:40.013	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'}]
          
          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #29

          @chris76e sagte: Wird immer noch überschrieben....

          Muss ich noch mal schauen.

          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 Reply Last reply
          0
          • paul53P paul53

            @chris76e sagte: Wird immer noch überschrieben....

            Muss ich noch mal schauen.

            Chris76eC Offline
            Chris76eC Offline
            Chris76e
            wrote on last edited by
            #30

            @paul53

            Okay, kann ich aber erst heute Abend weiter testen, muss gleich zur Arbeit....

            1 Reply Last reply
            0
            • Chris76eC Chris76e

              @paul53

              Wird immer noch überschrieben....

              10:20:10.018	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'}]
              10:20:10.018	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:16','Programm':'Eco 50°','Ende':'07.09.22 10:20'}]
              10:23:40.013	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'}]
              10:23:40.013	info	javascript.0 (3489476) script.js.common.JSON.JASONSP: [{'Start':'06.09.22 23:48','Programm':'Intensiv 70°','Ende':'06.09.22 23:49'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 09:09','Programm':'Speed 65°','Ende':'07.09.22 09:10'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'},{'Start':'07.09.22 10:21','Programm':'Eco 50°','Ende':'07.09.22 10:23'}]
              
              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #31

              @chris76e sagte: Wird immer noch überschrieben....

              Habe hier Zeile 12 eingefügt:

                      obj = {};
              

              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 Replies Last reply
              0
              • paul53P paul53

                @chris76e sagte: Wird immer noch überschrieben....

                Habe hier Zeile 12 eingefügt:

                        obj = {};
                
                Chris76eC Offline
                Chris76eC Offline
                Chris76e
                wrote on last edited by
                #32

                @paul53

                Vielen Dank, funktioniert jetzt.
                Habe jetzt einiges lernen können hier.

                :clap: :clap: :clap: :+1: :+1: :+1:

                1 Reply Last reply
                0
                • paul53P paul53

                  @chris76e sagte: Wird immer noch überschrieben....

                  Habe hier Zeile 12 eingefügt:

                          obj = {};
                  
                  Chris76eC Offline
                  Chris76eC Offline
                  Chris76e
                  wrote on last edited by
                  #33

                  @paul53

                  Brauche nochmal deine Hilfe. Möchte jetzt noch den Stromverbrauch anzeigen lassen. Habe den Wert bei Start und Ende. Wie kann ich jetzt damit rechnen?

                  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';
                  const idVerbrauch = 'sonoff.0.Spuehlmaschine.ENERGY_Total';
                  
                  var table = [];
                  if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                  var obj = {};
                  
                  on(idAktiv, function(dp) {
                      if(dp.state.val) {
                          obj = {};
                          obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                          obj.StartUhr = formatDate(new Date(), 'hh:mm'); 
                          obj.Programm = dp.common.states[dp.state.val];
                          obj.StartVerbrauch = getState(idVerbrauch).val;
                      } else {
                          obj.Ende = formatDate(new Date(), 'MM.DD.YY hh:mm');
                          obj.EndeUhr = formatDate(new Date(), 'hh:mm');
                          obj.EndVerbrauch = getState(idVerbrauch).val;
                          log(table);
                          table.push(obj);
                          if(table.length > 10) table.shift();
                          setState(idTable, JSON.stringify(table), true);
                          log(table);
                      }
                  });
                  
                   {
                      "Start": "10.12.22 20:00",
                      "StartUhr": "20:00",
                      "Programm": "Eco 50°",
                      "StartVerbrauch": 212.794,
                      "Ende": "10.12.22 20:08",
                      "EndeUhr": "20:08",
                      "EndVerbrauch": 212.796
                    }
                  
                  paul53P 1 Reply Last reply
                  0
                  • Chris76eC Chris76e

                    @paul53

                    Brauche nochmal deine Hilfe. Möchte jetzt noch den Stromverbrauch anzeigen lassen. Habe den Wert bei Start und Ende. Wie kann ich jetzt damit rechnen?

                    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';
                    const idVerbrauch = 'sonoff.0.Spuehlmaschine.ENERGY_Total';
                    
                    var table = [];
                    if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                    var obj = {};
                    
                    on(idAktiv, function(dp) {
                        if(dp.state.val) {
                            obj = {};
                            obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                            obj.StartUhr = formatDate(new Date(), 'hh:mm'); 
                            obj.Programm = dp.common.states[dp.state.val];
                            obj.StartVerbrauch = getState(idVerbrauch).val;
                        } else {
                            obj.Ende = formatDate(new Date(), 'MM.DD.YY hh:mm');
                            obj.EndeUhr = formatDate(new Date(), 'hh:mm');
                            obj.EndVerbrauch = getState(idVerbrauch).val;
                            log(table);
                            table.push(obj);
                            if(table.length > 10) table.shift();
                            setState(idTable, JSON.stringify(table), true);
                            log(table);
                        }
                    });
                    
                     {
                        "Start": "10.12.22 20:00",
                        "StartUhr": "20:00",
                        "Programm": "Eco 50°",
                        "StartVerbrauch": 212.794,
                        "Ende": "10.12.22 20:08",
                        "EndeUhr": "20:08",
                        "EndVerbrauch": 212.796
                      }
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #34

                    @Chris76e

                    Du möchtest die Differenz Endverbrauch - Startverbrauch?

                    var obj = {};
                    var StartVerbrauch = getState(idVerbrauch).val;
                     
                    on(idAktiv, function(dp) {
                        if(dp.state.val) {
                            obj = {};
                            obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                            obj.StartUhr = formatDate(new Date(), 'hh:mm'); 
                            obj.Programm = dp.common.states[dp.state.val];
                            StartVerbrauch = getState(idVerbrauch).val;
                        } else {
                            obj.Ende = formatDate(new Date(), 'MM.DD.YY hh:mm');
                            obj.EndeUhr = formatDate(new Date(), 'hh:mm');
                            obj.Verbrauch = getState(idVerbrauch).val - StartVerbrauch;
                            log(table);
                            table.push(obj);
                            if(table.length > 10) table.shift();
                            setState(idTable, JSON.stringify(table), true);
                            log(table);
                        }
                    });
                    

                    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 Reply Last reply
                    0
                    • paul53P paul53

                      @Chris76e

                      Du möchtest die Differenz Endverbrauch - Startverbrauch?

                      var obj = {};
                      var StartVerbrauch = getState(idVerbrauch).val;
                       
                      on(idAktiv, function(dp) {
                          if(dp.state.val) {
                              obj = {};
                              obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                              obj.StartUhr = formatDate(new Date(), 'hh:mm'); 
                              obj.Programm = dp.common.states[dp.state.val];
                              StartVerbrauch = getState(idVerbrauch).val;
                          } else {
                              obj.Ende = formatDate(new Date(), 'MM.DD.YY hh:mm');
                              obj.EndeUhr = formatDate(new Date(), 'hh:mm');
                              obj.Verbrauch = getState(idVerbrauch).val - StartVerbrauch;
                              log(table);
                              table.push(obj);
                              if(table.length > 10) table.shift();
                              setState(idTable, JSON.stringify(table), true);
                              log(table);
                          }
                      });
                      
                      Chris76eC Offline
                      Chris76eC Offline
                      Chris76e
                      wrote on last edited by
                      #35

                      @paul53

                      Ja, das klappt auch. Danke

                      Jetzt habe ich noch versucht die Dauer zu berrechnen, bekomme auch einen Wert in ms. Wie kann ich das in hh:mm:ss umschreiben?

                      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';
                      const idVerbrauch = 'sonoff.0.Spuehlmaschine.ENERGY_Total';
                      
                      var table = [];
                      if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
                      var obj = {};
                      var StartVerbrauch = getState(idVerbrauch).val;
                      var startDate = new Date();
                      var endDate   = new Date();
                      
                      
                      on(idAktiv, function(dp) {
                          if(dp.state.val) {
                              obj = {};
                              obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                              obj.StartUhr = formatDate(new Date(), 'hh:mm'); 
                              obj.Programm = dp.common.states[dp.state.val];
                              StartVerbrauch = getState(idVerbrauch).val;
                              startDate = new Date();
                              
                          } else {
                              obj.Ende = formatDate(new Date(), 'MM.DD.YY hh:mm');
                              obj.EndeUhr = formatDate(new Date(), 'hh:mm');
                              obj.Verbrauch = getState(idVerbrauch).val - StartVerbrauch;
                              endDate   = new Date();
                              obj.Dauer = endDate - startDate, 'hh:mm:ss';
                              log(table);
                              table.push(obj);
                              if(table.length > 10) table.shift();
                              setState(idTable, JSON.stringify(table), true);
                              log(table);
                          }
                      });
                      
                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      795

                      Online

                      32.5k

                      Users

                      81.6k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe