Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. English
    3. Visualization
    4. getting started with visualisations

    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

    getting started with visualisations

    This topic has been deleted. Only users with topic management privileges can see it.
    • Bluefox
      Bluefox @Taragorm last edited by Bluefox

      @Taragorm I do it like this.

      My folder structure is like this one:

      /opt/iobroker
              iobroker.my-new-adapter
              node_modules
                     ...
                     iobroker.js-controle
                     iobroker.xxxx
                     ...
      

      Then I install my new adapter by writing npm i iobroker.my-new-adapter in /opt/iobroker.
      As result the npm creates a sym-link to my developer folder:

      /opt/iobroker
              iobroker.my-new-adapter
              node_modules
                     ...
                     iobroker.js-controle
                     iobroker.my-new-adapter (symlink)
                     iobroker.xxxx
                     ...
      

      after that I develop my adapter as usual in /opt/iobroker/iobroker.my-new-adapter even as a git repo.

      after every change I write iobroker r vis && iobroker u vis This should work 100%.

      Additionally I can write iobroker visdebug my-new-adapter and if I see the output
      Disable cache I restart the iobroker (only for the first time).

      After that I can directly modify the file /opt/iobroker/iobroker-data/files/vis/widgets/my-new-adapter.html and after every browser refresh it will be loaded anew from disk. So you can fast see your changes.

      But, the changes in /opt/iobroker/iobroker-data/files/vis/widgets/my-new-adapter.html must be copied to /opt/iobroker/iobroker.my-new-adapter/widgets/ manually and you may not call iobroker u vis till you do that, else they will be overwritten

      T 1 Reply Last reply Reply Quote 0
      • T
        Taragorm last edited by

        Thanks - that's exactly what I needed to know

        1 Reply Last reply Reply Quote 0
        • T
          Taragorm last edited by

          Hmm.

          The module is iobroker.vis-taragorm

          iobroker@iobrokerdev /o/iobroker> iobroker visdebug vis-taragorm
          
          /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupVisDebug.js:64
                      if (!adapterDir) throw 'Adapter not found. Tried: ' + adapterNames2Try.join(', ');
                                       ^
          Adapter not found. Tried: vis-vis-taragorm, vis-taragorm
          iobroker@iobrokerdev /o/iobroker> 
          
          

          however, vis-taragorm.html does exist in widgets, and there is an instance installed ok. I can't see my widget in the list though.

          Possiby unrelated, I should also note that I got some errors installing (and many warnings, but I didn't include those):

          unix_dgram.target.mk:101: recipe for target 'Release/obj.target/unix_dgram/src/unix_dgram.o' failed
          make: *** [Release/obj.target/unix_dgram/src/unix_dgram.o] Error 1
          make: Leaving directory '/opt/iobroker/node_modules/unix-dgram/build'
          gyp ERR! build error 
          gyp ERR! stack Error: `make` failed with exit code: 2
          gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
          gyp ERR! stack     at ChildProcess.emit (events.js:197:13)
          gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
          gyp ERR! System Linux 4.9.0-8-amd64
          gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
          gyp ERR! cwd /opt/iobroker/node_modules/unix-dgram
          gyp ERR! node -v v11.10.1
          gyp ERR! node-gyp -v v3.8.0
          gyp ERR! not ok 
          npm WARN optional SKIPPING OPTIONAL DEPENDENCY: unix-dgram@0.2.3 (node_modules/unix-dgram):
          npm WARN optional SKIPPING OPTIONAL DEPENDENCY: unix-dgram@0.2.3 install: `node-gyp rebuild`
          npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
          
          

          The last message implies this isn't fatal, but I'm new to NodeJS...

          The dev env is Debian Stretch

          iobroker@iobrokerdev ~/projects> uname -a
          Linux iobrokerdev 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
          
          
          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            Участник @Taragorm написал в getting started with visualisations:

            /opt/iobroker/node_modules/iobroker.js-controller/

            It would be easier, if I can see the repo on github.
            Do you have file /opt/iobroker/node_modules/iobroker.vis-taragorm/widgets/taragorm.html ?

            T 1 Reply Last reply Reply Quote 0
            • Bluefox
              Bluefox last edited by

              BTW, you can deliver in your adapter https://github.com/Taragorm/ioBroker.evohome the widgets too. It is even better.

              1 Reply Last reply Reply Quote 0
              • T
                Taragorm last edited by

                Thanks for the quick response!

                The repo is up at: https://github.com/Taragorm/ioBroker.vis-taragorm

                It's mostly template right now.

                This is intended for some generic visualisations (and to practice in) so I didn't include it in the evohome repo. I'll add some specific visualisations there once I know what I'm doing.

                1 Reply Last reply Reply Quote 0
                • T
                  Taragorm @Bluefox last edited by

                  @Bluefox

                  iobroker@iobrokerdev ~/projects> ls -l /opt/iobroker/node_modules/iobroker.vis-taragorm/widgets
                  total 12
                  drwxrwxrwx+ 4 iobroker iobroker 4096 Mar  2 10:26 vis-taragorm/
                  -rw-r--r--+ 1 iobroker iobroker 6521 Mar  2 11:47 vis-taragorm.html
                  
                  

                  Seems to be there...

                  Bluefox 1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox @Taragorm last edited by

                    @Taragorm No matter. With iobroker r vis && iobroker u vis it should work.
                    Not Fast, but work.

                    Just tried to execute (windows):
                    2797695c-1307-4c36-a736-32d4f35862c9-image.png
                    and cannot see any errors

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      Taragorm last edited by

                      Something broken with my install, maybe?

                      I added a bit of logging to the empty catch block (line 24 here):

                          this.enableDebug = function (widgetset) {
                              console.log( "widgetset=" + widgetset );
                      
                              if (widgetset) {
                                  // Try to find out the adapter directory out of a list of options
                                  var adapterDir;
                                  var adapterNames2Try = ['vis-' + widgetset, widgetset];
                                  if (adapterNames2Try[0] === adapterNames2Try[1]) adapterNames2Try.splice(1, 1);
                                  for (var i = 0; i < adapterNames2Try.length; i++) {
                                      try {
                                          var adapterDir2Try = tools.getAdapterDir(adapterNames2Try[i]);
                                          // Query the entry
                                          var stats = fs.lstatSync(adapterDir2Try);
                      
                                          console.log(stats.toString() );
                      
                                          // Is it a directory?
                                          if (stats.isDirectory()) {
                                              //found it!
                                              adapterDir = adapterDir2Try;
                                              break;
                                          }
                                      } catch (e) {
                                          console.error(e);
                                      }
                                  }
                      
                                  if (!adapterDir) throw 'Adapter not found. Tried: ' + adapterNames2Try.join(', ');
                              }
                      
                      

                      and got this:

                      obroker@iobrokerdev /o/iobroker> iobroker visdebug vis-taragorm
                      widgetset=vis-taragorm
                      TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be one of type string, Buffer, or URL. Received type object
                          at Object.lstatSync (fs.js:857:3)
                          at VisDebug.enableDebug (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupVisDebug.js:52:36)
                          at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:2464:30
                          at Object.connected (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:3145:70)
                          at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:87:68)
                          at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
                          at Socket.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:138:10)
                          at Socket.onconnect (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:335:8)
                          at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:232:12)
                          at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                      [object Object]
                      
                      /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupVisDebug.js:67
                                  if (!adapterDir) throw 'Adapter not found. Tried: ' + adapterNames2Try.join(', ');
                                                   ^
                      Adapter not found. Tried: vis-vis-taragorm, vis-taragorm
                      
                      
                      • T
                      Bluefox 1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox @Taragorm last edited by

                        @Taragorm Can it be, that you have js-controller 1.4.2? Please update to 1.5.7

                        1 Reply Last reply Reply Quote 0
                        • T
                          Taragorm last edited by

                          Certainly looks to be 1.4.2

                          iobroker@iobrokerdev /o/iobroker> npm outdated
                          Package                 Current  Wanted  Latest  Location
                          iobroker.js-controller    1.4.2   1.4.2   1.5.7  iobroker.inst
                          yargs                     7.1.0   7.1.0  13.2.2  iobroker.inst
                          
                          

                          main iobroker package calls for "stable", rather than a particular rev - do I just alter the depend there and npm update - or is there a "proper" way to do it?

                          Bluefox 1 Reply Last reply Reply Quote 0
                          • Bluefox
                            Bluefox @Taragorm last edited by

                            @Taragorm via npm is ok. Just stop iob before update

                            1 Reply Last reply Reply Quote 0
                            • T
                              Taragorm last edited by

                              Update

                              Reloaded iobroker from scratch, just to be sure
                              Updated iob.js-controller to 1.5.7

                              iobroker@iobrokerdev /o/iobroker> npm list iobroker.js-controller
                              iobroker.inst@2.0.2 /opt/iobroker
                              └── iobroker.js-controller@1.5.7 
                              

                              Same error on iob visdebug

                              Also

                              Lots of warnings caused by this:

                              iobroker.inst@2.0.2 /opt/iobroker
                              └─┬ iobroker.js-controller@1.5.7
                                └─┬ winston-syslog@1.2.6
                                  └── UNMET OPTIONAL DEPENDENCY unix-dgram@~0.2.1
                              
                              

                              Is there any way to suppress it? I hate clutter in the logfiles!

                              Also2

                              I can't see my widget in the vis builder. There's no obvious error in the log tho.

                              1 Reply Last reply Reply Quote 0
                              • T
                                Taragorm last edited by

                                done a bit more digging into the visdebug error, and it seems like the project folder isn't being recognised as a directory:

                                Trying:/opt/iobroker/iobroker.vis-taragorm
                                Got stats:{"dev":2049,"mode":41471,"nlink":1,"uid":1001,"gid":1001,"rdev":0,"blksize":4096,"ino":792374,"size":24,"blocks":0,"atimeMs":1552471012718.894,"mtimeMs":1552471012714.892,"ctimeMs":1552471012714.892,"birthtimeMs":1552471012714.892,"atime":"2019-03-13T09:56:52.719Z","mtime":"2019-03-13T09:56:52.715Z","ctime":"2019-03-13T09:56:52.715Z","birthtime":"2019-03-13T09:56:52.715Z"}  isDir=false
                                
                                

                                trace code:

                                                    console.log("Trying:" + process.cwd() + "/" + adapterNames2Try[i]);
                                                    var adapterDir2Try = tools.getAdapterDir(adapterNames2Try[i]);
                                                    // Query the entry
                                                    var stats = fs.lstatSync(adapterDir2Try);
                                                    console.log("Got stats:" + JSON.stringify(stats) + "  isDir=" + stats.isDirectory());
                                

                                But it surely is a dir:

                                iobroker@iobrokerdev /o/iobroker> ls -l
                                total 248
                                -rw-rwxr--+   1 iobroker iobroker   1474 Mar 13 09:40 CHANGELOG_INSTALLER_LINUX.md*
                                drwxrwxr-x+   3 iobroker iobroker   4096 Mar 13 09:40 install/
                                -rwxrwxrwx+   1 iobroker iobroker    169 Mar 13 09:41 INSTALLER_INFO.txt*
                                lrwxrwxrwx    1 iobroker iobroker     22 Mar 13 09:41 iob -> /opt/iobroker/iobroker*
                                -rwxrwxr-x+   1 iobroker iobroker    209 Mar 13 09:41 iobroker*
                                drwxrwxrwx+   4 iobroker iobroker   4096 Mar 13 09:42 iobroker-data/
                                drwxrwxrwx+   8 iobroker iobroker   4096 Mar 13 09:59 iobroker.vis-taragorm/
                                -rw-rwxrw-+   1 iobroker iobroker     92 Mar 13 09:41 killall.sh*
                                drwxrwxr-x+   2 iobroker iobroker   4096 Mar 13 09:40 lib/
                                -rw-rwxr--+   1 iobroker iobroker   1137 Mar 13 09:40 LICENSE*
                                drwxrwxrwx+   2 iobroker iobroker   4096 Mar 13 09:41 log/
                                drwxrwxr-x+ 451 iobroker iobroker  20480 Mar 13 09:56 node_modules/
                                -rw-rwxrw-+   1 iobroker iobroker    658 Mar 13 09:56 package.json*
                                -rw-rwxrw-+   1 iobroker iobroker 166878 Mar 13 09:41 package-lock.json*
                                -rw-rwxr--+   1 iobroker iobroker   6101 Mar 13 09:40 README.md*
                                -rw-rw-rw-+   1 iobroker iobroker   5868 Mar 13 09:51 reinstall.js
                                -rw-rwxrw-+   1 iobroker iobroker    709 Mar 13 09:41 reinstall.sh*
                                
                                

                                it's as if fs is misbehaving?

                                Bluefox 1 Reply Last reply Reply Quote 0
                                • Bluefox
                                  Bluefox @Taragorm last edited by Bluefox

                                  @Taragorm is the normal iobroker upload vis does not work?

                                  You can force all the steps manually.

                                  1. Copy your widgets files into /opt/iobroker/node_modules/iobroker.vis/www/widgets directory.
                                  2. Change /opt/iobroker/node_modules/iobroker.vis/www/js/config.js
                                  3. Change /opt/iobroker/node_modules/iobroker.vis/www/cache.manifest (just add/change some char to change the hash)
                                  4. iobroker u vis
                                  5. To be sure clear the browser cache
                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    Taragorm last edited by

                                    fyi, in enableDebug I think:

                                    var stats = fs.lstatSync(adapterDir2Try);

                                    maybe should be
                                    var stats = fs.statSync(adapterDir2Try);

                                    As diagnostics suggest we're finding the link, and lstatSync() returns the link itself, rather than the target of the link.

                                    Changing it, lets things go a bit further, but it still fails somewhat messily:

                                    Trying:/opt/iobroker/iobroker.vis-taragorm
                                    Got stats:{"dev":2049,"mode":16895,"nlink":8,"uid":1001,"gid":1001,"rdev":0,"blksize":4096,"ino":791105,"size":4096,"blocks":8,"atimeMs":1552471286715.824,"mtimeMs":1552471172270.63,"ctimeMs":1552471172270.63,"birthtimeMs":1552471172270.63,"atime":"2019-03-13T10:01:26.716Z","mtime":"2019-03-13T09:59:32.271Z","ctime":"2019-03-13T09:59:32.271Z","birthtime":"2019-03-13T09:59:32.271Z"}  isDir=true isLink=false
                                    Upload "/opt/iobroker/node_modules/iobroker.vis/www/index.html.original"
                                    fs.js:119
                                        throw err;
                                        ^
                                    
                                    Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/../../../iobroker.vis/www/index.html.original'
                                        at Object.openSync (fs.js:448:3)
                                        at Object.readFileSync (fs.js:348:35)
                                        at VisDebug.enableDebug (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupVisDebug.js:91:23)
                                        at _objects (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:2460:30)
                                        at Object.connected (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:3133:17)
                                        at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:87:68)
                                        at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                                        at Socket.emit (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:136:10)
                                        at Socket.onconnect (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:328:8)
                                        at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:224:12)
                                    
                                    

                                    For now, I'm going to switch my development environment to Windows, as that seems to be working for you.

                                    Bluefox 1 Reply Last reply Reply Quote 0
                                    • Bluefox
                                      Bluefox @Taragorm last edited by Bluefox

                                      @Taragorm It is very well, that you want to get the visbebug runnnig, but
                                      I don't understand, why you ignore my other suggestions:

                                      • https://forum.iobroker.net/topic/19929/getting-started-with-visualisations/15
                                      • https://forum.iobroker.net/topic/19929/getting-started-with-visualisations/8

                                      The problem with non existing index.html.original is fixed only on github.

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        Taragorm @Bluefox last edited by

                                        @Bluefox I

                                        @Bluefox said in getting started with visualisations:

                                        @Taragorm No matter. With iobroker r vis && iobroker u vis it should work.
                                        Not Fast, but work.

                                        Just tried to execute (windows):
                                        2797695c-1307-4c36-a736-32d4f35862c9-image.png
                                        and cannot see any errors

                                        I tried this; I don't get any errors, but I don't get a visualisation in the toolbox either.

                                        That's why I trying to enable debug.

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          Taragorm @Bluefox last edited by

                                          @Bluefox said in getting started with visualisations:

                                          @Taragorm I do it like this.

                                          My folder structure is like this one:

                                          /opt/iobroker
                                                  iobroker.my-new-adapter
                                                  node_modules
                                                         ...
                                                         iobroker.js-controle
                                                         iobroker.xxxx
                                                         ...
                                          

                                          Then I install my new adapter by writing npm i iobroker.my-new-adapter in /opt/iobroker.
                                          As result the npm creates a sym-link to my developer folder:

                                          /opt/iobroker
                                                  iobroker.my-new-adapter
                                                  node_modules
                                                         ...
                                                         iobroker.js-controle
                                                         iobroker.my-new-adapter (symlink)
                                                         iobroker.xxxx
                                                         ...
                                          

                                          after that I develop my adapter as usual in /opt/iobroker/iobroker.my-new-adapter even as a git repo.

                                          after every change I write iobroker r vis && iobroker u vis This should work 100%.

                                          Additionally I can write iobroker visdebug my-new-adapter and if I see the output
                                          Disable cache I restart the iobroker (only for the first time).

                                          After that I can directly modify the file /opt/iobroker/iobroker-data/files/vis/widgets/my-new-adapter.html and after every browser refresh it will be loaded anew from disk. So you can fast see your changes.

                                          But, the changes in /opt/iobroker/iobroker-data/files/vis/widgets/my-new-adapter.html must be copied to /opt/iobroker/iobroker.my-new-adapter/widgets/ manually and you may not call iobroker u vis till you do that, else they will be overwritten

                                          ...and I have also set my environment up like this.

                                          1 Reply Last reply Reply Quote 0
                                          • Bluefox
                                            Bluefox last edited by

                                            Please set here the names without vis-
                                            1946c1e7-29c2-4a4a-b13d-2f7d13e26c22-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            763
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            vis
                                            4
                                            43
                                            4884
                                            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