Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Werte aus Smartmeter Adapter in Excel exportieren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Werte aus Smartmeter Adapter in Excel exportieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active @fastfoot last edited by

      @fastfoot
      @Pat

      Und dann hatte ich noch diesen Text im Web gefunden:

      Befehl in konsole:
      sudo mount -t cifs -o user=xxx,password=xxx,file_mode=0777,dir_mode=0777 //192.168.243.100/1_Sound /mnt

      Das gemountete Verzeichnis steht bei Verwendung des mount-Befehls nur bis zu einem Neustart des Rechners
      zur Verfügung. Damit die Windows-Freigabe automatisch beim Start des Systems eingebunden werden kann,
      ist ein Eintrag in der Datei /etc/fstab notwendig. In dieser Datei sind alle Dateisysteme, welche vom
      System gemountet werden sollen, eingetragen.

      WINDOWS-FREIGABE ÜBER "FSTAB" EINHÄNGEN
      Bei der Datei fstab (file system table) handelt es sich um eine normale ASCII-Datei. Der Eintrag kann
      mit einem entsprechenden Editor vorgenommen werden.

      nano /etc/fstab

      //192.168.243.100/1_Sound /mnt cifs user=xxx,password=xxx,file_mode=0777,dir_mode=0777

      Um zu prüfen, ob der Eintrag korrekt ist und das mounten klappt, muss der Rechner nicht neu gestartet
      werden. Mit dem Kommando mount und der Option -a werden alle in der fstab eingetragenen Dateisysteme
      gemountet. Damit das Ergebnis des Vorgangs auf dem Bildschirm erscheint, kann zusätzlich die Option v
      verwendet werden.

      mount -av

      Für das "Aushängen" der Quelle steht der Befehl umount zur Verfügung.

      umount /mnt

      mfg
      Dieter

      1 Reply Last reply Reply Quote 0
      • P
        Pat @fastfoot last edited by

        @fastfoot said in Werte aus Smartmeter Adapter in Excel exportieren:

        @pat füge mal noch ,file_mode=0777,dir_mode=0777 ein, rw reicht da nicht

        jap das wars

        bahnuhr 1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @Pat last edited by

          @fastfoot

          Und warum schreibt du vorne 777 ist es nicht ?
          Komisch.

          F 1 Reply Last reply Reply Quote 0
          • F
            fastfoot @bahnuhr last edited by

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

            @fastfoot

            Und warum schreibt du vorne 777 ist es nicht ?
            Komisch.

            weil mit der 777 Befehl doch sicherlich chmod 777 gemeint war, zumal da noch nicht klar war wie das gemounted wird. file_mode und dir_mode wiederum sind keine Befehle 🙂

            Du darfst aber jetzt das absolut vor absolut Linux Laie entfernen 😉

            frana120500 1 Reply Last reply Reply Quote 0
            • frana120500
              frana120500 @fastfoot last edited by

              Mir ist das in der Tat zu kompliziert, da ich zu wenig Kenntnisse habe.

              Ich scheitere schon daran, dass ich nicht weiß, wie ich einen lokalen Pfad auf meinem Rechner mounten kann.

              Ich gehe jetzt den Weg anders herum und lasse aus Excel heraus den Wert über den Simple API Adapter per getPlainValue abfragen. Funktioniert prima

              1 Reply Last reply Reply Quote 0
              • F
                franzda @Pat last edited by

                @pat Hallo es ist zwar schon eine Weile her aber trotzden eine Frage zu eurem Thema

                Ich habe mit sudo npm -i exceljs installiert

                Trotzdem bekomme ich die Fehlermeldung (s.u.)
                Was muss ich noch machen damit ich in iobroker javascript excel benutzen kann.

                Wollte einfach testen: schon bei der script eingabe wird 'exceljs" unterstrichen.

                var Excel = require('exceljs');
                
                const wb = new Excel.Workbook();
                const ws = wb.addWorksheet('My Sheet');
                
                ws.addRows([
                    [1, 2, 3, 4, 5],
                    [6, 7, 8, 9, 10],
                    [11, 12, 13, 14, 15],
                    [16, 17, 18, 19, 20]]
                );
                
                
                javascript.0
                2022-11-17 11:39:15.051	error	at require (node:internal/modules/cjs/helpers:103:18)
                
                javascript.0
                2022-11-17 11:39:15.050	error	at Module.require (node:internal/modules/cjs/loader:1057:19)
                
                javascript.0
                2022-11-17 11:39:15.050	error	script.js.common.iobroker1.test.excel1: Error: Cannot find module 'exceljs'
                
                P 1 Reply Last reply Reply Quote 0
                • P
                  Pat @franzda last edited by

                  @franzda
                  js_ex.jpg

                  Hast du in deiner Javascriptinstanz exceljs eingefügt ??

                  bahnuhr 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @Pat last edited by

                    @pat

                    Das hab ich @franzda in seinem anderen thread schon gezeigt.
                    Dort auch bisher keine Rückinfo.

                    @franzda
                    Bitte keine Doppelthreads

                    H 1 Reply Last reply Reply Quote 2
                    • H
                      huhie @bahnuhr last edited by

                      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

                      OliverIO bahnuhr 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @huhie last edited by 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 1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active @huhie last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • F
                            fastfoot @bahnuhr last edited by

                            @bahnuhr wie kann man sich denn downvoter ansehen?

                            bahnuhr 1 Reply Last reply Reply Quote 0
                            • bahnuhr
                              bahnuhr Forum Testing Most Active @fastfoot last edited by

                              @fastfoot

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

                              F DJMarc75 2 Replies Last reply Reply Quote 2
                              • F
                                fastfoot @bahnuhr last edited by

                                @bahnuhr Danke! Darauf wäre ich nie gekommen

                                1 Reply Last reply Reply Quote 0
                                • DJMarc75
                                  DJMarc75 @bahnuhr last edited by

                                  @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 🤡 😀

                                  bahnuhr 1 Reply Last reply Reply Quote 2
                                  • bahnuhr
                                    bahnuhr Forum Testing Most Active @DJMarc75 last edited by

                                    @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 🤡 😀

                                    Ha, ist ja nen ding.
                                    Hab ich ja immer unnötig geklickt 😉

                                    1 Reply Last reply Reply Quote 2
                                    • H
                                      huhie last edited by

                                      @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?

                                      Homoran DJMarc75 2 Replies Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @huhie last edited by

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

                                        Kann ich das rückgängig machen?

                                        ja!
                                        noch mal down

                                        1 Reply Last reply Reply Quote 0
                                        • DJMarc75
                                          DJMarc75 @huhie last edited by

                                          @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 !

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            huhie @OliverIO last edited by

                                            @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?

                                            OliverIO 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            586
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            45
                                            5096
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo