Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. eCharts mit Telegram-Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    eCharts mit Telegram-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      qwerty1896 last edited by Homoran

      Hallo!

      Ich habe gestern mein Raspberry geupdatet (Node.js: v16.18.0; NPM: 8.19.2). Bis dahin gab es keine Probleme, dass ich mir ECharts (1.0.12) mit dem Telgram-Adapter (1.14.1) habe zustellen lassen.

      Jetzt gibt es folgenden Hinweis bzw. Fehler:

      19:10:00.139	error	javascript.0 (2462) script.js.common.Mini-PV_Anlage.Telegramm_Menue: Cannot find required modules: looks like it is not possible to generate charts on your Hardware/OS
      

      Reine Textinformationen werden zugestellt.

      Woran kann es liegen? Was muss ich abändern?
      Es geht in diese Richtung:
      Externer Link Github: https://github.com/ioBroker/ioBroker.echarts/issues/99

      Merexor created this issue in ioBroker/ioBroker.echarts

      closed not possible to generate charts on your Hardware/OS #99

      Q 1 Reply Last reply Reply Quote 0
      • Q
        qwerty1896 @qwerty1896 last edited by

        Ich habe jetzt folgende Befehlte ausgeführt...

        cd /opt/iobroker/node_modules/canvas
        npm install
        

        Die eCharts werden wieder angezeigt, aber:

        pi@raspberrypi:/opt/iobroker/node_modules/canvas $ npm install
        npm WARN deprecated har-validator@5.1.5: this library is no longer supported
        npm WARN deprecated circular-json@0.3.3: CircularJSON is in maintenance only, fl                                               atted is its successor.
        npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older v                                               ersions may use Math.random() in certain circumstances, which is known to be pro                                               blematic.  See https://v8.dev/blog/math-random for details.
        npm WARN deprecated request@2.88.2: request has been deprecated, see https://git                                               hub.com/request/request/issues/3142
        npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer suppor                                               ted. Please update to mkdirp 1.x. (Note that the API surface has changed to use                                                Promises in 1.x.)
        
        > canvas@2.9.3 install
        > node-pre-gyp install --fallback-to-build --update-binary
        
        node-pre-gyp info it worked if it ends with ok
        node-pre-gyp info using node-pre-gyp@1.0.10
        node-pre-gyp info using node@16.18.0 | linux | arm
        node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.9.3/canvas-v2.9.3-node-v93-linux-glibc-arm.tar.gz
        node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.9.3/canvas-v2.9.3-node-v93-linux-glibc-arm.tar.gz
        node-pre-gyp WARN Pre-built binaries not installable for canvas@2.9.3 and node@16.18.0 (node-v93 ABI, glibc) (falling back to source compile with node-gyp)
        node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.9.3/canvas-v2.9.3-node-v93-linux-glibc-arm.tar.gz
        gyp info it worked if it ends with ok
        gyp info using node-gyp@9.1.0
        gyp info using node@16.18.0 | linux | arm
        gyp info ok
        gyp info it worked if it ends with ok
        gyp info using node-gyp@9.1.0
        gyp info using node@16.18.0 | linux | arm
        gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3"
        gyp http GET https://nodejs.org/download/release/v16.18.0/node-v16.18.0-headers.tar.gz
        gyp http 200 https://nodejs.org/download/release/v16.18.0/node-v16.18.0-headers.tar.gz
        gyp http GET https://nodejs.org/download/release/v16.18.0/SHASUMS256.txt
        gyp http 200 https://nodejs.org/download/release/v16.18.0/SHASUMS256.txt
        gyp info spawn /usr/bin/python3
        gyp info spawn args [
        gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
        gyp info spawn args   'binding.gyp',
        gyp info spawn args   '-f',
        gyp info spawn args   'make',
        gyp info spawn args   '-I',
        gyp info spawn args   '/opt/iobroker/node_modules/canvas/build/config.gypi',
        gyp info spawn args   '-I',
        gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
        gyp info spawn args   '-I',
        gyp info spawn args   '/home/pi/.cache/node-gyp/16.18.0/include/node/common.gypi',
        gyp info spawn args   '-Dlibrary=shared_library',
        gyp info spawn args   '-Dvisibility=default',
        gyp info spawn args   '-Dnode_root_dir=/home/pi/.cache/node-gyp/16.18.0',
        gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
        gyp info spawn args   '-Dnode_lib_file=/home/pi/.cache/node-gyp/16.18.0/<(target_arch)/node.lib',
        gyp info spawn args   '-Dmodule_root_dir=/opt/iobroker/node_modules/canvas',
        gyp info spawn args   '-Dnode_engine=v8',
        gyp info spawn args   '--depth=.',
        gyp info spawn args   '--no-parallel',
        gyp info spawn args   '--generator-output',
        gyp info spawn args   'build',
        gyp info spawn args   '-Goutput_dir=.'
        gyp info spawn args ]
        gyp info ok
        gyp info it worked if it ends with ok
        gyp info using node-gyp@9.1.0
        gyp info using node@16.18.0 | linux | arm
        gyp info spawn make
        gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
        make: Verzeichnis „/opt/iobroker/node_modules/canvas/build“ wird betreten
          SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node
          COPY Release/canvas-postbuild.node
          CXX(target) Release/obj.target/canvas/src/backend/Backend.o
          CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o
          CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o
          CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o
          CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o
        ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’:
        ../src/bmp/BMPParser.cc:186:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
          186 |   E(ptr - data > imgdOffset, "image data overlaps with another structure");
              |     ~~~~~~~~~~~^~~~~~~~~~~~
        ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’
           10 | #define E(cond, msg) if(cond) return setErr(msg)
              |                         ^~~~
        ../src/bmp/BMPParser.cc:201:27: warning: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
          201 |   E(ptr - data + imgdSize > len, "not enough image data");
              |     ~~~~~~~~~~~~~~~~~~~~~~^~~~~
        ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’
           10 | #define E(cond, msg) if(cond) return setErr(msg)
              |                         ^~~~
          CXX(target) Release/obj.target/canvas/src/Backends.o
          CXX(target) Release/obj.target/canvas/src/Canvas.o
        In file included from ../src/Canvas.cc:21:
        ../src/Util.h: In function ‘void SetProtoAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::FunctionTemplate>)’:
        ../src/Util.h:27:2: warning: ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)’ is deprecated [-Wdeprecated-declarations]
           27 |  );
              |  ^
        In file included from ../src/backend/Backend.h:6,
                         from ../src/Canvas.h:5,
                         from ../src/Canvas.cc:3:
        ../node_modules/nan/nan.h:2512:28: note: declared here
         2512 | NAN_DEPRECATED inline void SetAccessor(
              |                            ^~~~~~~~~~~
          CXX(target) Release/obj.target/canvas/src/CanvasGradient.o
          CXX(target) Release/obj.target/canvas/src/CanvasPattern.o
          CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o
        In file included from ../src/CanvasRenderingContext2d.cc:19:
        ../src/Util.h: In function ‘void SetProtoAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::FunctionTemplate>)’:
        ../src/Util.h:27:2: warning: ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)’ is deprecated [-Wdeprecated-declarations]
           27 |  );
              |  ^
        In file included from ../src/backend/Backend.h:6,
                         from ../src/Canvas.h:5,
                         from ../src/CanvasRenderingContext2d.h:6,
                         from ../src/CanvasRenderingContext2d.cc:3:
        ../node_modules/nan/nan.h:2512:28: note: declared here
         2512 | NAN_DEPRECATED inline void SetAccessor(
              |                            ^~~~~~~~~~~
          CXX(target) Release/obj.target/canvas/src/closure.o
          CXX(target) Release/obj.target/canvas/src/color.o
          CXX(target) Release/obj.target/canvas/src/Image.o
        In file included from ../src/Image.cc:11:
        ../src/Util.h: In function ‘void SetProtoAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::FunctionTemplate>)’:
        ../src/Util.h:27:2: warning: ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)’ is deprecated [-Wdeprecated-declarations]
           27 |  );
              |  ^
        In file included from ../src/Image.h:8,
                         from ../src/Image.cc:3:
        ../node_modules/nan/nan.h:2512:28: note: declared here
         2512 | NAN_DEPRECATED inline void SetAccessor(
              |                            ^~~~~~~~~~~
          CXX(target) Release/obj.target/canvas/src/ImageData.o
        In file included from ../src/ImageData.cc:5:
        ../src/Util.h: In function ‘void SetProtoAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::FunctionTemplate>)’:
        ../src/Util.h:27:2: warning: ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)’ is deprecated [-Wdeprecated-declarations]
           27 |  );
              |  ^
        In file included from ../src/ImageData.h:5,
                         from ../src/ImageData.cc:3:
        ../node_modules/nan/nan.h:2512:28: note: declared here
         2512 | NAN_DEPRECATED inline void SetAccessor(
              |                            ^~~~~~~~~~~
          CXX(target) Release/obj.target/canvas/src/init.o
          CXX(target) Release/obj.target/canvas/src/register_font.o
          SOLINK_MODULE(target) Release/obj.target/canvas.node
          COPY Release/canvas.node
        make: Verzeichnis „/opt/iobroker/node_modules/canvas/build“ wird verlassen
        gyp info ok
        node-pre-gyp info ok
        
        added 466 packages, and audited 467 packages in 2m
        
        54 packages are looking for funding
          run `npm fund` for details
        
        4 vulnerabilities (1 moderate, 2 high, 1 critical)
        
        To address all issues (including breaking changes), run:
          npm audit fix --force
        
        Run `npm audit` for details.
        
        

        Wem sagt das was?

        Q 1 Reply Last reply Reply Quote 0
        • Q
          qwerty1896 @qwerty1896 last edited by qwerty1896

          @qwerty1896

          Meine Ursprungsfrage muss sich geklärt haben.

          Ich habe aktuell das Problem, das eCharts nicht mehr auf Telegram angezeigt werden.

          Ich nutze aktuell:
          node.js: v20.18.2
          NPM: 10.8.2
          eCharts: 1.9.2
          Telegram: 3.9.0

          Im Protokoll erscheint:
          echarts.0
          2025-01-26 12:44:29.880 error Cannot find required modules: Error: The module '/opt/iobroker/node_modules/canvas/build/Release/canvas.node'was compiled against a different Node.js version usingNODE_MODULE_VERSION 108. This version of Node.js requiresNODE_MODULE_VERSION 115. Please try re-compiling or re-installingthe module (for instance, using npm rebuild or npm install).
          javascript.0
          2025-01-26 12:44:29.890 error script.js.common.Skriptname.Telegramm_Menue: Cannot find required modules: looks like it is not possible to generate charts on your Hardware/OS

          Wie gehe ich jetzt am besten vor? npm rebuild?

          Danke.

          BananaJoe 2 Replies Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @qwerty1896 last edited by BananaJoe

            @qwerty1896 per SSH auf dem ioBroker System anmelden,
            zum Benutzer "iobroker" wechseln:

            sudo -u iobroker /usr/bin/bash
            

            in das Verzeichnis von iobroker wechseln:

            cd /opt/iobroker/
            

            Und dann schauen was mit canvas los ist:

            npm ls canvas
            

            Bei mir (was nicht heißt das es exakt so aussehen muss, ich habe da auch mal rumgedoktert):

            iobroker.inst@2.0.3 /opt/iobroker
            └─┬ iobroker.echarts@2.0.4
              ├── canvas@3.0.1
              └─┬ jsdom@26.0.0
                └── canvas@3.0.1 deduped
            

            In der Vergangenheit hatte bei mir ein

            cd /opt/iobroker/node_modules/canvas/
            npm rebuild
            

            oder - müsste das gleiche bewirken

            npm rebuild canvas --update-binary
            

            wobei der Schalter --update-binary dafür sorgt das auf jeden Fall neu installiert wird

            Ich habe das ganze aus der History des ioBrokers-Benutzers entnommen. Ich hatte damals canvas mehrmals installiert und es was nicht dedup

            Ich hatte das hier im Forum hier: https://forum.iobroker.net/post/818437 und hier: https://forum.iobroker.net/post/987008 schon mal diskutiert.
            Die obigen Befehle stammen vom letztem Upgrade von nodeJS auf 20

            1 Reply Last reply Reply Quote 0
            • BananaJoe
              BananaJoe Most Active @qwerty1896 last edited by

              @qwerty1896 Nachtrag: Ich sehe gerade das du bei eCharts noch auf der 1.9.2 unterwegs bin, ich auf der 2.0.4
              Das sollte aber wohl keinen unterschied machen, bis vor kurzen war ich auch noch auf der 1.9.2 unterwegs.
              Ich lasse mir auch tägliche Diagramme per Telegram schicken, beim letzten mal musste ich wie zuvor beschrieben das Rebuild machen (nach dem Upgrade von nodeJS 18 auf 20)

              Q 1 Reply Last reply Reply Quote 0
              • Q
                qwerty1896 @BananaJoe last edited by qwerty1896

                @bananajoe

                Vielen Dank. Ich schaue mir das mal an.

                
                iobroker.inst@3.0.0 /opt/iobroker
                ├─┬ iobroker.echarts@1.9.2
                │ ├── canvas@2.11.2
                │ └─┬ jsdom@25.0.0
                │   └── canvas@2.11.2 deduped
                └─┬ iobroker.energiefluss@3.6.2
                  └── canvas@2.11.2 deduped
                
                iobroker@raspberrypi:/opt/iobroker/node_modules/canvas $ npm rebuild
                rebuilt dependencies successfully
                
                

                Telegram-Grafiken werden wieder angezeigt. Ein Rebuild war ausreichend/hilfreich.

                Merci.

                Ich nehme "nur" die Versionen, die mir "offiziell" zum Update auch angeboten werden. Danach war der Adapter up-to-date.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                694
                Online

                31.7k
                Users

                79.7k
                Topics

                1.3m
                Posts

                2
                6
                316
                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