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.
    • P
      Pat @fastfoot last edited by

      @fastfoot

      Also Lesen kann ich wenn ich was händisch eintrage kann ich auch die Zellen auslesen.

      Beim schreiben kommt der Fehler. Ich hätte einfach mal schauen sollen im log. In der Console stand nix. 🤦‍♂️

      javascript.0	2021-10-14 19:56:17.171	error	(8874) Error: EACCES: permission denied, open '/mnt/NAS/test.xlsx'
      javascript.0	2021-10-14 19:56:17.171	error	(8874) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
      

      Ich habe schonmal geschaut also lese und schreib Rechte sind vergeben das sollte passen.
      Aber irdendetwas verhindert noch das schreiben.

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

        @pat wie wurde denn der Ordner konkret gemounted? Da fehlt die Schreibberechtigung

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

          @fastfoot
          da ich schon andere dateien raus lese wurde ich sagen das er richtig gemounted ist. Aber ich habe noch nie geschrieben.
          Berechtigung.png

          Das wird wieder eine lange suche

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

            @pat dann beantworte die Frage wie der Ordner gemounted wird!

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

              @pat
              Ich bin absolut Linux Laie.
              Aber gibt es nicht den 777 Befehl.
              Damit müsste doch alle Rechte dann da sein.

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

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

                @pat
                Ich bin absolut Linux Laie.
                Aber gibt es nicht den 777 Befehl.
                Damit müsste doch alle Rechte dann da sein.

                nein!

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

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

                  nein!

                  Ich sag es ja.
                  War ein Versuch.

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

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

                    @pat dann beantworte die Frage wie der Ordner gemounted wird!

                    im /etc/fstab dies

                    //192.168.0.10/Dokumente/IObroker /mnt/NAS cifs uid=1000,gid=1000,rw,user,credentials=/home/pat/.smbzugang,vers=2.0  0 0
                    

                    eingetragen und im /home/pat/.smbzugang die zugangsdaten

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

                      @fastfoot
                      sudo mount -t cifs -o user=xxx,password=xxx,file_mode=0777,dir_mode=0777 //192.168.243.100/1_Sound /mnt

                      Ich hatte das so realisiert.
                      Und da ist doch dieses 777 mit drin ?

                      Hatte ich hier aus dem Forum.

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

                        @bahnuhr
                        bin auch schon auf die Idee gekommen mit

                        /mnt/NAS$ chmod -v 777 test.xlsx
                        mode of 'test.xlsx' changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)
                        
                        

                        er führt es aus aber behält es nicht

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

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

                          bahnuhr P 2 Replies Last reply Reply Quote 1
                          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            857
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            45
                                            5100
                                            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