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. Daten jede Stunde in JSON schreiben

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Daten jede Stunde in JSON schreiben

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 338 Aufrufe 2 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,

    möchte bestimmte Daten zur jeden volle Stunde in ein JSON schreiben um sie später darstellen zukönnen, ähnlich wie auf Awekas.

    ist das so okay, oder gibt es da eine besser Lösung?

    // Reference the state objects for temperature, air pressure, and wind speed
    var tempState = "javascript.0.Wetterstation.Aussentemperatur";
    var pressureState = "javascript.0.Wetterstation.Druck_absolut";
    var windState = "javascript.0.Wetterstation.Wind";
    var weatherStatState = "0_userdata.0.JSON.WetterStatistikJedeStunde";
    
    // Define a function to collect data and write to the weather statistics state
    function collectData() {
        // Get the current date and time
        var date = new Date();
        var dateString = date.toLocaleDateString();
        var timeString = date.toLocaleTimeString();
        
        // Get the values of temperature, air pressure, and wind speed
        var temp = getState(tempState).val;
        var pressure = getState(pressureState).val;
        var wind = getState(windState).val;
        
        // Get the current value of the weather statistics state
        var currentData = getState(weatherStatState).val || '[]';
        
        // Convert the current data to an array
        currentData = JSON.parse(currentData);
        
        // Add the new data to the existing data
        currentData.push({
            date: dateString,
            time: timeString,
            temperature: temp,
            airPressure: pressure,
            windSpeed: wind
        });
        
        // Write the updated data to the weather statistics state
        setState(weatherStatState, JSON.stringify(currentData));
    }
    
    // Schedule the collectData function to run every hour
    schedule("0 * * * *", collectData);
    
    
    

    JSON

    {
        "date": "11.2.2023",
        "time": "06:00:00",
        "temperature": 5.72,
        "airPressure": 1028.82,
        "windSpeed": 1.44
      },
      {
        "date": "11.2.2023",
        "time": "07:00:00",
        "temperature": 5.61,
        "airPressure": 1028.61,
        "windSpeed": 0
      },
      {
        "date": "11.2.2023",
        "time": "08:00:00",
        "temperature": 5.61,
        "airPressure": 1028.72,
        "windSpeed": 1.44
      },
      {
        "date": "11.2.2023",
        "time": "09:00:00",
        "temperature": 5.88,
        "airPressure": 1029.33,
        "windSpeed": 0
      },
      {
        "date": "11.2.2023",
        "time": "10:00:00",
        "temperature": 6.22,
        "airPressure": 1029.73,
        "windSpeed": 0.32
      },
      {
        "date": "11.2.2023",
        "time": "11:00:00",
        "temperature": 6.5,
        "airPressure": 1030.24,
        "windSpeed": 1.12
      }
    ]
    

    Awekas

    Screenshot 2023-02-11 111949.png

    A 1 Antwort Letzte Antwort
    0
    • Chris76eC Chris76e

      Hi,

      möchte bestimmte Daten zur jeden volle Stunde in ein JSON schreiben um sie später darstellen zukönnen, ähnlich wie auf Awekas.

      ist das so okay, oder gibt es da eine besser Lösung?

      // Reference the state objects for temperature, air pressure, and wind speed
      var tempState = "javascript.0.Wetterstation.Aussentemperatur";
      var pressureState = "javascript.0.Wetterstation.Druck_absolut";
      var windState = "javascript.0.Wetterstation.Wind";
      var weatherStatState = "0_userdata.0.JSON.WetterStatistikJedeStunde";
      
      // Define a function to collect data and write to the weather statistics state
      function collectData() {
          // Get the current date and time
          var date = new Date();
          var dateString = date.toLocaleDateString();
          var timeString = date.toLocaleTimeString();
          
          // Get the values of temperature, air pressure, and wind speed
          var temp = getState(tempState).val;
          var pressure = getState(pressureState).val;
          var wind = getState(windState).val;
          
          // Get the current value of the weather statistics state
          var currentData = getState(weatherStatState).val || '[]';
          
          // Convert the current data to an array
          currentData = JSON.parse(currentData);
          
          // Add the new data to the existing data
          currentData.push({
              date: dateString,
              time: timeString,
              temperature: temp,
              airPressure: pressure,
              windSpeed: wind
          });
          
          // Write the updated data to the weather statistics state
          setState(weatherStatState, JSON.stringify(currentData));
      }
      
      // Schedule the collectData function to run every hour
      schedule("0 * * * *", collectData);
      
      
      

      JSON

      {
          "date": "11.2.2023",
          "time": "06:00:00",
          "temperature": 5.72,
          "airPressure": 1028.82,
          "windSpeed": 1.44
        },
        {
          "date": "11.2.2023",
          "time": "07:00:00",
          "temperature": 5.61,
          "airPressure": 1028.61,
          "windSpeed": 0
        },
        {
          "date": "11.2.2023",
          "time": "08:00:00",
          "temperature": 5.61,
          "airPressure": 1028.72,
          "windSpeed": 1.44
        },
        {
          "date": "11.2.2023",
          "time": "09:00:00",
          "temperature": 5.88,
          "airPressure": 1029.33,
          "windSpeed": 0
        },
        {
          "date": "11.2.2023",
          "time": "10:00:00",
          "temperature": 6.22,
          "airPressure": 1029.73,
          "windSpeed": 0.32
        },
        {
          "date": "11.2.2023",
          "time": "11:00:00",
          "temperature": 6.5,
          "airPressure": 1030.24,
          "windSpeed": 1.12
        }
      ]
      

      Awekas

      Screenshot 2023-02-11 111949.png

      A Offline
      A Offline
      Ahnungsbefreit
      schrieb am zuletzt editiert von
      #2

      @chris76e schau mal hier, da habe ich eine Vorlage für solche Aufgaben gepostet. Dabei wird nicht per CRON per getriggert, sondern auf jede Aktualisierung des JSON.

      https://forum.iobroker.net/topic/62779/vorlage-script-json-datenpunkte-mit-sync?_=1676114744352

      Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

      Chris76eC 1 Antwort Letzte Antwort
      0
      • A Ahnungsbefreit

        @chris76e schau mal hier, da habe ich eine Vorlage für solche Aufgaben gepostet. Dabei wird nicht per CRON per getriggert, sondern auf jede Aktualisierung des JSON.

        https://forum.iobroker.net/topic/62779/vorlage-script-json-datenpunkte-mit-sync?_=1676114744352

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

        @ahnungsbefreit

        wenn ich dein script richtig verstehe, ist es doch was anderes. Ich möchte aus verschiedene DP stündlich ein JSON erstellen damit ich in meiner VIS eine Tabelle darstellen kann und diese nach Datum filtern.

        A 1 Antwort Letzte Antwort
        0
        • Chris76eC Chris76e

          @ahnungsbefreit

          wenn ich dein script richtig verstehe, ist es doch was anderes. Ich möchte aus verschiedene DP stündlich ein JSON erstellen damit ich in meiner VIS eine Tabelle darstellen kann und diese nach Datum filtern.

          A Offline
          A Offline
          Ahnungsbefreit
          schrieb am zuletzt editiert von
          #4

          @chris76e sorry, falsch verstanden. Das kommt davon, wenn man schnell am Handy liest und dabei mit der Enkelin spielt 🙄

          Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

          1 Antwort Letzte Antwort
          1
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          791

          Online

          32.6k

          Benutzer

          82.1k

          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