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. Werte aus Smartmeter Adapter in Excel exportieren

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

Werte aus Smartmeter Adapter in Excel exportieren

Geplant Angeheftet Gesperrt Verschoben JavaScript
45 Beiträge 9 Kommentatoren 6.6k Aufrufe 13 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.
  • H huhie

    Hey ho Zusammen,

    ich brauche euche geballte Ladung Wissen. Da ich mich mit diesem Skript echt schwer tue und nicht weiter komme... :(

    ich bin auf diesen Thread gestossen und habe mich daran versucht. Mein BKW läuft nun einwandfrei
    und ich würde gerade die Daten des Stromverbrauchs tgl. morgens, sagen wir um 8 Uhr, in eine Excel Tabelle schreiben wollen. Also Stromverbrauch und Stromeinspeisung.

    Ich nutze den iobroke auf einer synology.

    Der Ordner zu den Daten von iobroker liegt im Ordner nas/docker/iobroker/data

    Der Ordner in dem die datei liegt, welche geschrieben werden soll liegt im Ordner nas/oeffentlich/finanzen

    Wie mounte ich das Verzeichnis bzw. wie muss das Skript dann aussehen?

    Das Log sagt aktuell schon:

    javascript.0 error at Script.runInContext (node:vm:135:12)
    javascript.0 error at script.js.1.stromzaehler_nach_excel:13:3
    javascript.0 error at script.js.1.stromzaehler_nach_excel:2:28
    javascript.0 error script.js.1.stromzaehler_nach_excel: TypeError: Cannot read properties of undefined (reading 'Workbook')
    javascript.0 error at Script.runInContext (node:vm:135:12)
    javascript.0 error at script.js.1.stromzaehler_nach_excel:13:3
    javascript.0 error at script.js.1.stromzaehler_nach_excel:1:17
    javascript.0 error at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:516:32)
    javascript.0 error at require (node:internal/modules/cjs/helpers:121:18)
    javascript.0 error at Module.require (node:internal/modules/cjs/loader:1143:19)
    javascript.0 error script.js.1.stromzaehler_nach_excel: Error: Cannot find module 'exceljs'

    Das Module exceljs steht aber unter der Instanz javascript.0

    2023-08-24 14_20_25-instances - iobroker und 9 weitere Seiten - Persönlich – Microsoft​ Edge.png

    Mein Skript sieht aktuell wie folgt aus:

    const ExcelJS = require('exceljs');
    var workbook = new ExcelJS.Workbook();
     
    workbook.xlsx.readFile('/iobroker-data/zaehlerstaende/test.xlsx').then(function() {
    var worksheet = workbook.getWorksheet('test');
     
    console.log (worksheet.getCell('A1').value);
    log (worksheet.getCell(1,3).value);
     
        worksheet.getCell('A3').value = 'Hallo Welt'; // einer Zelle einen Wert zuweisen
        workbook.xlsx.writeFile('/iobroker-data/zaehlerstaende/test.xlsx'); // Excel wird neu gespeichert
    });
    

    Ich würde mich freuen, wenn mir hier jemand bis zum finalen funktionieren des Skriptes helfen könnte.

    Wird der Eintrag in der Excel dann jeden Tag überschrieben, oder kann man auch sagen, das immer eine Zelle weiter beschrieben wird? So dass es quasi eine Liste wird?

    viele Grüße Huhie

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von OliverIO
    #34

    @huhie
    ich habe mir den thread aus der vergangenheit mal angeschaut.
    exceljs ist zwar sehr gut, aber für so einen zweck für leute mit beschränkten js kenntnissen halt schon nicht so einfach.

    wenn es um einfache fortschreibung geht, würde ich einfach in eine csv datei schreiben
    csv ist sehr simple aufgebaut (eine zeile mit den feld titel, danach immer zeilen mit den einzelnen datensätzen, bei der jedes feld mit einem trenner (komme, semicolon, tab, etc getrennt ist).
    diese dateien kann excel sehr gut einlesen, man kann sie auch einbinden, so das das excel von diesen dateien immer aktualisiert wird.

    dann kann man in excel mit den daten machen was man will.

    gehen wir davon aus, man hat bereits eine csv datei manuell erstellt, die wie folgt aussieht

    datum,wert1,wert2,wert3
    01.01.2023,3,2,1
    01.02.2023,4,3,2
    

    und da möchte man dann einen datensatz anfügen, dann kann der code ausschnitt so aussehen:

    const fs = require('fs');
    let filename = "werte.csv";
    let fields = [
      "01.03.2023",
      5,
      6,
      7
    ];
    fs.appendFileSync(filename, fields.join(",") + "\n");
    
    

    wenn du dennoch mit exceljs weiter machen willst, dann sieht deine konfiguration erst einmal richtig aus. schau mal in das generelle iobroker log, ob beim hinzufügen des exceljs moduls etwas schief gegangen ist. du kannst das auch wieder herauslöschen, speichern und wieder hinzufügen und dann speichern

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    H 1 Antwort Letzte Antwort
    0
    • H huhie

      Hey ho Zusammen,

      ich brauche euche geballte Ladung Wissen. Da ich mich mit diesem Skript echt schwer tue und nicht weiter komme... :(

      ich bin auf diesen Thread gestossen und habe mich daran versucht. Mein BKW läuft nun einwandfrei
      und ich würde gerade die Daten des Stromverbrauchs tgl. morgens, sagen wir um 8 Uhr, in eine Excel Tabelle schreiben wollen. Also Stromverbrauch und Stromeinspeisung.

      Ich nutze den iobroke auf einer synology.

      Der Ordner zu den Daten von iobroker liegt im Ordner nas/docker/iobroker/data

      Der Ordner in dem die datei liegt, welche geschrieben werden soll liegt im Ordner nas/oeffentlich/finanzen

      Wie mounte ich das Verzeichnis bzw. wie muss das Skript dann aussehen?

      Das Log sagt aktuell schon:

      javascript.0 error at Script.runInContext (node:vm:135:12)
      javascript.0 error at script.js.1.stromzaehler_nach_excel:13:3
      javascript.0 error at script.js.1.stromzaehler_nach_excel:2:28
      javascript.0 error script.js.1.stromzaehler_nach_excel: TypeError: Cannot read properties of undefined (reading 'Workbook')
      javascript.0 error at Script.runInContext (node:vm:135:12)
      javascript.0 error at script.js.1.stromzaehler_nach_excel:13:3
      javascript.0 error at script.js.1.stromzaehler_nach_excel:1:17
      javascript.0 error at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:516:32)
      javascript.0 error at require (node:internal/modules/cjs/helpers:121:18)
      javascript.0 error at Module.require (node:internal/modules/cjs/loader:1143:19)
      javascript.0 error script.js.1.stromzaehler_nach_excel: Error: Cannot find module 'exceljs'

      Das Module exceljs steht aber unter der Instanz javascript.0

      2023-08-24 14_20_25-instances - iobroker und 9 weitere Seiten - Persönlich – Microsoft​ Edge.png

      Mein Skript sieht aktuell wie folgt aus:

      const ExcelJS = require('exceljs');
      var workbook = new ExcelJS.Workbook();
       
      workbook.xlsx.readFile('/iobroker-data/zaehlerstaende/test.xlsx').then(function() {
      var worksheet = workbook.getWorksheet('test');
       
      console.log (worksheet.getCell('A1').value);
      log (worksheet.getCell(1,3).value);
       
          worksheet.getCell('A3').value = 'Hallo Welt'; // einer Zelle einen Wert zuweisen
          workbook.xlsx.writeFile('/iobroker-data/zaehlerstaende/test.xlsx'); // Excel wird neu gespeichert
      });
      

      Ich würde mich freuen, wenn mir hier jemand bis zum finalen funktionieren des Skriptes helfen könnte.

      Wird der Eintrag in der Excel dann jeden Tag überschrieben, oder kann man auch sagen, das immer eine Zelle weiter beschrieben wird? So dass es quasi eine Liste wird?

      viele Grüße Huhie

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #35

      @huhie

      Da du mich einfach mal so negativ bewertest:

      cefda88a-3014-468c-b517-87021fc191ca-image.png

      erwartest du nicht wirklich eine Antwort von mir.


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      F 1 Antwort Letzte Antwort
      0
      • bahnuhrB bahnuhr

        @huhie

        Da du mich einfach mal so negativ bewertest:

        cefda88a-3014-468c-b517-87021fc191ca-image.png

        erwartest du nicht wirklich eine Antwort von mir.

        F Offline
        F Offline
        fastfoot
        schrieb am zuletzt editiert von
        #36

        @bahnuhr wie kann man sich denn downvoter ansehen?

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        bahnuhrB 1 Antwort Letzte Antwort
        0
        • F fastfoot

          @bahnuhr wie kann man sich denn downvoter ansehen?

          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #37

          @fastfoot

          doppelklick auf die Zahl.
          Dann siehst du wer up und down gevotet hat.


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          F DJMarc75D 2 Antworten Letzte Antwort
          2
          • bahnuhrB bahnuhr

            @fastfoot

            doppelklick auf die Zahl.
            Dann siehst du wer up und down gevotet hat.

            F Offline
            F Offline
            fastfoot
            schrieb am zuletzt editiert von
            #38

            @bahnuhr Danke! Darauf wäre ich nie gekommen

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            1 Antwort Letzte Antwort
            0
            • bahnuhrB bahnuhr

              @fastfoot

              doppelklick auf die Zahl.
              Dann siehst du wer up und down gevotet hat.

              DJMarc75D Offline
              DJMarc75D Offline
              DJMarc75
              schrieb am zuletzt editiert von
              #39

              @bahnuhr sagte in Werte aus Smartmeter Adapter in Excel exportieren:

              doppelklick auf die Zahl

              um nicht die Lebensdauer unnötig zu verkürzen reicht auch ein Einzelklick :clown_face: :grinning:

              Lehrling seit 1975 !!!
              Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
              https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

              bahnuhrB 1 Antwort Letzte Antwort
              2
              • DJMarc75D DJMarc75

                @bahnuhr sagte in Werte aus Smartmeter Adapter in Excel exportieren:

                doppelklick auf die Zahl

                um nicht die Lebensdauer unnötig zu verkürzen reicht auch ein Einzelklick :clown_face: :grinning:

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #40

                @djmarc75 sagte in Werte aus Smartmeter Adapter in Excel exportieren:

                @bahnuhr sagte in Werte aus Smartmeter Adapter in Excel exportieren:

                doppelklick auf die Zahl

                um nicht die Lebensdauer unnötig zu verkürzen reicht auch ein Einzelklick :clown_face: :grinning:

                Ha, ist ja nen ding.
                Hab ich ja immer unnötig geklickt ;-)


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                2
                • H Offline
                  H Offline
                  huhie
                  schrieb am zuletzt editiert von
                  #41

                  @bahnuhr

                  Ich denke da habe ich wohl mal glatt einen Bedienfehler gemacht. Wenn das mit den Pfeilen unterhalb des Threads ist, dann war das ganz klar ein Versehen.

                  Ich dachte damit komme ich zum nächsten Eintrag. Hatte mich schon gewundert, dass da nichts passiert...

                  Das das ein Vote darstellt war mir nicht bewusst und tut mir leid.

                  Kann ich das rückgängig machen?

                  HomoranH DJMarc75D 2 Antworten Letzte Antwort
                  0
                  • H huhie

                    @bahnuhr

                    Ich denke da habe ich wohl mal glatt einen Bedienfehler gemacht. Wenn das mit den Pfeilen unterhalb des Threads ist, dann war das ganz klar ein Versehen.

                    Ich dachte damit komme ich zum nächsten Eintrag. Hatte mich schon gewundert, dass da nichts passiert...

                    Das das ein Vote darstellt war mir nicht bewusst und tut mir leid.

                    Kann ich das rückgängig machen?

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #42

                    @huhie sagte in Werte aus Smartmeter Adapter in Excel exportieren:

                    Kann ich das rückgängig machen?

                    ja!
                    noch mal down

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • H huhie

                      @bahnuhr

                      Ich denke da habe ich wohl mal glatt einen Bedienfehler gemacht. Wenn das mit den Pfeilen unterhalb des Threads ist, dann war das ganz klar ein Versehen.

                      Ich dachte damit komme ich zum nächsten Eintrag. Hatte mich schon gewundert, dass da nichts passiert...

                      Das das ein Vote darstellt war mir nicht bewusst und tut mir leid.

                      Kann ich das rückgängig machen?

                      DJMarc75D Offline
                      DJMarc75D Offline
                      DJMarc75
                      schrieb am zuletzt editiert von
                      #43

                      @huhie sagte in Werte aus Smartmeter Adapter in Excel exportieren:

                      Kann ich das rückgängig machen?

                      ja, in dem Du nochmals auf den "down" klickst...
                      Und lies auch mal den Beitrag in meiner Signatur bitte. Das kann helfen !

                      Lehrling seit 1975 !!!
                      Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                      https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                      1 Antwort Letzte Antwort
                      0
                      • OliverIOO OliverIO

                        @huhie
                        ich habe mir den thread aus der vergangenheit mal angeschaut.
                        exceljs ist zwar sehr gut, aber für so einen zweck für leute mit beschränkten js kenntnissen halt schon nicht so einfach.

                        wenn es um einfache fortschreibung geht, würde ich einfach in eine csv datei schreiben
                        csv ist sehr simple aufgebaut (eine zeile mit den feld titel, danach immer zeilen mit den einzelnen datensätzen, bei der jedes feld mit einem trenner (komme, semicolon, tab, etc getrennt ist).
                        diese dateien kann excel sehr gut einlesen, man kann sie auch einbinden, so das das excel von diesen dateien immer aktualisiert wird.

                        dann kann man in excel mit den daten machen was man will.

                        gehen wir davon aus, man hat bereits eine csv datei manuell erstellt, die wie folgt aussieht

                        datum,wert1,wert2,wert3
                        01.01.2023,3,2,1
                        01.02.2023,4,3,2
                        

                        und da möchte man dann einen datensatz anfügen, dann kann der code ausschnitt so aussehen:

                        const fs = require('fs');
                        let filename = "werte.csv";
                        let fields = [
                          "01.03.2023",
                          5,
                          6,
                          7
                        ];
                        fs.appendFileSync(filename, fields.join(",") + "\n");
                        
                        

                        wenn du dennoch mit exceljs weiter machen willst, dann sieht deine konfiguration erst einmal richtig aus. schau mal in das generelle iobroker log, ob beim hinzufügen des exceljs moduls etwas schief gegangen ist. du kannst das auch wieder herauslöschen, speichern und wieder hinzufügen und dann speichern

                        H Offline
                        H Offline
                        huhie
                        schrieb am zuletzt editiert von
                        #44

                        @oliverio

                        Kommen wir mal zurück zum Thema.

                        Ich würde mich der csv Variante mal annehmen. Die Frage ist wo muss die Datei denn in den iobroker Dateien liegen, damit die gefüllt wird?

                        Kannst Du mir das sagen?

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • H huhie

                          @oliverio

                          Kommen wir mal zurück zum Thema.

                          Ich würde mich der csv Variante mal annehmen. Die Frage ist wo muss die Datei denn in den iobroker Dateien liegen, damit die gefüllt wird?

                          Kannst Du mir das sagen?

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #45

                          @huhie
                          Es ist relativ egal wo die Datei liegt, sofern der User iobroker dort schreiben darf.
                          Ich glaube, weiß es nicht genau, das die Angabe nur eines Dateinamens direkt in /opt/iobroker schreibt.
                          Besser wäre in /opt/iobroker/iobroker-data/files
                          Zu schreiben. Um sicher zu gehen einfach den Dateinamen direkt mit einem absoluten Pfad angeben.

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          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

                          763

                          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