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. [Gelöst] Script um JSON erzeugen funktioniert nicht

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Gelöst] Script um JSON erzeugen funktioniert nicht

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 355 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 Online
    Chris76eC Online
    Chris76e
    schrieb am zuletzt editiert von Chris76e
    #1

    Hi,

    versuche mit folgendem Script ein JSON zu erzeugen. Als trigger soll der DP "ecovacs-deebot.0.status.device" dienen.

    Wenn ich das script starte bekomme ich folgende Warnung angezeigt:

    16:53:42.813	info	javascript.0 (2842511) Start javascript script.js.common.JSON.Deebot
    16:53:42.828	warn	javascript.0 (2842511) at script.js.common.JSON.Deebot:9:4
    16:53:42.828	warn	javascript.0 (2842511) at script.js.common.JSON.Deebot:31:3
    16:53:42.828	info	javascript.0 (2842511) script.js.common.JSON.Deebot: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
    
    const idTable = '0_userdata.0.JSON.Deebot'; 
    const idRaum =  'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName';
    const idDatumEnde ='ecovacs-deebot.0.map.lastCleanedSpotArea.dateTime';
    const idFlaeche = 'ecovacs-deebot.0.cleaninglog.current.cleanedArea';
    const idDauer = 'ecovacs-deebot.0.map.lastCleanedSpotArea.totalTime';
    const idAktiv = 'ecovacs-deebot.0.status.device';
    
    var table = [];
    if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
    var obj = {};
    var startDate = 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');
    
        } else {
            obj.Ende = idDatumEnde;
            obj.Dauer = idDauer;
            obj.Flaeche = idFlaeche;
            obj.Raum = idRaum;
            log(table);
            table.push(obj);
            if(table.length > 50) table.shift();
            setState(idTable, JSON.stringify(table), true);
            log(table);
        }
    }); 
    

    Kann mir hier jemand auf die sprünge helfen?

    Danke

    paul53P 1 Antwort Letzte Antwort
    0
    • Chris76eC Chris76e

      Hi,

      versuche mit folgendem Script ein JSON zu erzeugen. Als trigger soll der DP "ecovacs-deebot.0.status.device" dienen.

      Wenn ich das script starte bekomme ich folgende Warnung angezeigt:

      16:53:42.813	info	javascript.0 (2842511) Start javascript script.js.common.JSON.Deebot
      16:53:42.828	warn	javascript.0 (2842511) at script.js.common.JSON.Deebot:9:4
      16:53:42.828	warn	javascript.0 (2842511) at script.js.common.JSON.Deebot:31:3
      16:53:42.828	info	javascript.0 (2842511) script.js.common.JSON.Deebot: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      
      const idTable = '0_userdata.0.JSON.Deebot'; 
      const idRaum =  'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName';
      const idDatumEnde ='ecovacs-deebot.0.map.lastCleanedSpotArea.dateTime';
      const idFlaeche = 'ecovacs-deebot.0.cleaninglog.current.cleanedArea';
      const idDauer = 'ecovacs-deebot.0.map.lastCleanedSpotArea.totalTime';
      const idAktiv = 'ecovacs-deebot.0.status.device';
      
      var table = [];
      if(getState(idTable).val) table = JSON.parse(getState(idTable).val);
      var obj = {};
      var startDate = 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');
      
          } else {
              obj.Ende = idDatumEnde;
              obj.Dauer = idDauer;
              obj.Flaeche = idFlaeche;
              obj.Raum = idRaum;
              log(table);
              table.push(obj);
              if(table.length > 50) table.shift();
              setState(idTable, JSON.stringify(table), true);
              log(table);
          }
      }); 
      

      Kann mir hier jemand auf die sprünge helfen?

      Danke

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

      @chris76e
      Im Tab "Protokolle" stehen mehr Informationen zur Warnung.
      Welchen Wert enthält "0_userdata.0.JSON.Deebot"?

      Außerdem Zeilen 20 bis 23:

              obj.Ende = getState(idDatumEnde).val;
              obj.Dauer = getState(idDauer).val;
              obj.Flaeche = getState(idFlaeche).val;
              obj.Raum = getState(idRaum).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 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @chris76e
        Im Tab "Protokolle" stehen mehr Informationen zur Warnung.
        Welchen Wert enthält "0_userdata.0.JSON.Deebot"?

        Außerdem Zeilen 20 bis 23:

                obj.Ende = getState(idDatumEnde).val;
                obj.Dauer = getState(idDauer).val;
                obj.Flaeche = getState(idFlaeche).val;
                obj.Raum = getState(idRaum).val;
        
        Chris76eC Online
        Chris76eC Online
        Chris76e
        schrieb am zuletzt editiert von
        #3

        @paul53

        "0_userdata.0.JSON.Deebot" da stand "null" drin, habe jetzt [] reingeschrieben, keine Warnung mehr.

        Habe auch das andere geändert, aber es wird nichts geschrieben.

        der DP "ecovacs-deebot.0.status.device" kann die werte "charging", "cleaning" und "returing" annehmen. Vermute da wird nochwas faul sein. Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....

        paul53P 1 Antwort Letzte Antwort
        0
        • Chris76eC Chris76e

          @paul53

          "0_userdata.0.JSON.Deebot" da stand "null" drin, habe jetzt [] reingeschrieben, keine Warnung mehr.

          Habe auch das andere geändert, aber es wird nichts geschrieben.

          der DP "ecovacs-deebot.0.status.device" kann die werte "charging", "cleaning" und "returing" annehmen. Vermute da wird nochwas faul sein. Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....

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

          @chris76e sagte: Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....

              if(dp.state.val == 'cleaning') {
                  obj = {};
                  obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                  obj.StartUhr = formatDate(new Date(), 'hh:mm');
              } else if(dp.state.val == 'charging') {
          

          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: Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....

                if(dp.state.val == 'cleaning') {
                    obj = {};
                    obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm');
                    obj.StartUhr = formatDate(new Date(), 'hh:mm');
                } else if(dp.state.val == 'charging') {
            
            Chris76eC Online
            Chris76eC Online
            Chris76e
            schrieb am zuletzt editiert von
            #5

            @paul53

            Danke, funktioniert jetzt :+1: :+1: :+1: :grinning:

            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

            668

            Online

            32.6k

            Benutzer

            82.3k

            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