evok not working



  • Hello, I have UNIPI 1.x version. I have installed fresh OS Stretch, installed last released verion of Evok 2.0.3a as in description on GitHub. There were issue with Tornado, I was not able to run it. Then I made again new fresh install of Rasbian and install Evok 2.0.3. It gives me this error when run it manually:

    sudo python /opt/evok/evok.py
    Traceback (most recent call last):
    File "/opt/evok/evok.py", line 37, in <module>
    import config
    File "/opt/evok/config.py", line 5, in <module>
    import neuron
    File "/opt/evok/neuron.py", line 12, in <module>
    from modbusclient_tornado import ModbusClientProtocol, StartClient
    File "/opt/evok/modbusclient_tornado.py", line 14, in <module>
    from tornado.concurrent import TracebackFuture
    ImportError: cannot import name TracebackFuture.

    During installation I have noticed this error:

    modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.9.80-v7+/modules.dep.bin'
    modprobe: FATAL: Module i2c-dev not found in directory /lib/modules/4.9.80-v7+
    Hit:1 http://archive.raspberrypi.org/debian stretch InRelease
    Get:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB]
    Get:3 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages [11.7 MB]

    Then I have uninstalled Evok 2.0.3 (btw. command in documentation on GitHub doesnt work as the script missed permissions to run. I was able to run in only under sudo su and add permission. Can you also fix it in documentation?)

    As a last one I have installed master version as in documentation on https://evok-4.api-docs.io/1.04/ and it works. But I am missing some functionality as use Alias for devices.

    Does it means that https://evok-4.api-docs.io/1.04/ is domunetation for 1.04 version?

    Can you some how fix messy documentation and help me to install newer version of Evok?


  • administrators

    The error is from using Tornado 5.0 (EVOK 2.0.3 rather than 2.0.3a); but I have personally tested the installation procedure on Github yesterday, and it installs Tornado 4. Is it possible that you may have misread somehow?

    Installation process for the 2.0 EVOK version
    In order to install EVOK on Neuron you will need an SD card with a standard Raspbian Jessie or Raspbian Stretch image. It is also necessary to enable SSH on the image by creating an empty file named "ssh" in the boot partition of your SD card (the partition should be visible on all systems which support FAT16, which includes Windows, Linux and OSX among others).
    
    To install EVOK itself first connect to your Neuron using SSH (there is a large number of clients you can use, for windows we recommend using PUTTY). The default username for Raspbian is "pi" and the default password is "raspberry". After you connect to your Neuron execute the following commands:
    
    sudo su
    wget https://github.com/UniPiTechnology/evok/archive/v2.0.3a.zip
    unzip v2.0.3a.zip
    cd evok-2.0.3a
    bash install-evok.sh
    
    

    Further the uninstallation instructions explicitly call for using sudo, i.e. root privileges.

    Could you describe in more detail what issues with the alias functionality are you experiencing, perhaps in another topic?

    edit:
    I believe that the v2.0.3 release is listed above v2.0.3a on Github. This is due to unfortunate ordering which Github uses in its versioning system. Release v2.0.3 will indeed produce the error you are reporting. Please follow the installation instructions exactly to avoid similar mishaps in the future.

    edit2:
    I understand the problem with the unistallation script now. It appears that the execute flag gets cleared when using the bulk download from GitHub. I will fix this in the instructions by forcing explicit sudo su as with the installation script. It still remains the case that the instructions call for using v2.0.3a.



  • My installation flow attemts were

    1. OS Stretch -> NodeRed -> Evok v2.0.3a(with some Tornado error, that socket was occupied) -> I spend time to investigate what can be on port 80 or 8080, but I did not find it
    2. new OS Stretch -> Evok v2.0.3 (I thought it is higher than v2.0.3a) -> error as described above -> uninstall Evok v2.0.3 -> try install Evok Master as described in documentation on https://evok-4.api-docs.io/1.04/ (this worked) -> NodeRed

    Now everything is working but in this master version I am not able to set Alias as I have error (Operation failed with the following error: set() got an unexpected keyword argument 'alias')

    • How can I update Evok? Do I need to uninstall and install new version?
    • Is it possible to add information in the Evok Web which version is installed? Or is there any other way how to find it?

  • administrators

    1. occurs when EVOK is already running in the background, usually when the EVOK service is not stopped before running it manually.

    Are you able to set the alias via the web GUI? That uses the same method. Note that you have to follow some naming conventions (alias has to be in the form 'al_[custom string]', with no url-invalid characters)



  • There was some issue with my comment, so I have fixed.

    1. After installaition I have tried Web GUI and it was empty, I have tried to stop it and run it manually as described in documentation.

    NO, I cant change it in web GUI.


  • administrators

    Thank you for restoring your comment, we weren't able to do so ourselves.

    Could you mention which device are you trying to rename? Apologies for the trouble you are having.

    edit: I believe the issue may be with node-red here. Just to clarify - you are setting the alias via it? You should be able to set the alias via the JSON/HTTP API (as per documentation), but WebSocket API (which is used by node-red) does not support setting aliases, or indeed many other properties (as per documentation, though it is somewhat sparse regarding websocket).

    More specifically only this section of documentation pertains WebSocket: https://evok-4.api-docs.io/1.04/aggjmsqrwmypnmorz/websocket (aptly named websocket)

    You should be able to rename the device in node-red itself however



  • Hello, no I am using Evok Web GUI:

    0_1523010758752_Výstřižek.PNG

    Maybe it is because I am using now some master version and in newer it is fixed.

    How can I find out what version I am using? Is there any command?

    How can I upgrade to newer version?


  • administrators

    The master version should in fact be the newest, though it's possible it may have some teething issues which releases should not. I can confirm I have tested the latest release, but I will test the master version as well.

    You can see which version you have by using "git status" in the folder where you have checked out the Master branch. If the version is very old it may be best to make a new install with 2.0.3a instead.

    edit: The request should be sent to /rest/relay/1_01 instead of 1. The website you have looks almost entirely wrong - am I right to assume you have UniPi Neuron?

    This is what the website should look like now, note the "1.01" names for circuits. This is on the latest Master:
    0_1523016291180_alias_setting.png



  • In this case I am running this on UNIPI 1.1. But I have also Neuron and it works fine.

    I have not checked out git. I have used this instructions from https://evok-4.api-docs.io/1.04/ :

    sudo su
    wget https://github.com/UniPiTechnology/evok/archive/master.zip
    unzip master.zip
    cd evok-master
    bash install-evok.sh

  • administrators

    Ahh I was assuming you are using Neuron; with the UniPi 1.1 you need to rename the inputs and outputs in the "evok.conf" configuration file; using aliases with the UniPi 1.1 is not supported as the various subdevices are fundamentally different devices. Whereas for Neuron they are, well, subdevices, which are communicated with via Modbus handles. And it is these handles which are renamed with the alias.

    I can have a look if we can implement the aliases for UniPi 1.1 as well, but as of right now it's not possible. We should remove the alias-setting option for UniPi 1.1 from the web inteface.

    As for the instructions, they will indeed get you the latest Master version.