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.
    • 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
                                • Bluefox
                                  Bluefox last edited by

                                  And you may not change class.
                                  a29115fc-9bf9-47e9-b033-cba03ec1fd78-image.png

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

                                    thanks, will do

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

                                      It's showing in the toolbox now - many thanks!

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

                                        Much progress, but another small issue.

                                        My visualisation shows values ok in the edit dialog.

                                        In the normal view, it shows the "undefined" value... unless the value is used by a different widget.

                                        This suggests I've done something wrong in binding, but as far as I can see, I've done pretty much what the template does.

                                        Have I missed something out? It feels like whatever code that populates vis.states[] hasn't been invoked correctly. (i.e. the view seems to be unaware of the points I'm asking for).

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

                                          ps: Changed the repo to: https://github.com/Taragorm/ioBroker.vistaragorm

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

                                            @Taragorm It can be, that I forgot to describe, that all ObjectID Variables Names must start with "oid..." or end with "...oid" or "...oidN" (N is any number from 0 to 99)

                                            Please use following files, that work:
                                            vistaragorm.js
                                            vistaragorm.html

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            601
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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