evok not working
-
Oh! It may have to do with security settings perhaps? The website uses websocket listening as a primary means of communicating with EVOK; I'm not sure if IE 11 has support for them, though I believe it should.E: It looks like IE 11 cannot parse lambdas or dynamically register websockets, at least in the manner in which we do so. Microsoft Edge though does appear to work. It's not an easy problem to fix, but we'll have a look.
Glad you managed to solve the problem anyhow.
-
EVOK GH Master should now work with IE 11, as of the latest GitHub commit (b73e5cc)
-
Hi guys,
I would like to tag along on this one
- little sidenote: this is probably a different problem than the problem mentioned earlier in this thread...
in this case the board is actually not found on SPI at all, so no browser or socket problem i guess *
if i start out with image UniPian-Neuron-OS-2018-03-09.img all works fine out of the box
Evok fine everything fine
But when i just apt-get update / apt-get upgrade things get broken
Does anybody know where i need to look for this?
My guess is that its a kernel thing... it breaks after i reboot, not before taht
under here i have both "good" and "broken" log blurbs
thanks and greetz from holland
all is fine:
root@S103-sn488:/boot# uname -a
Linux S103-sn488 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linuxroot@S103-sn488:/home/pi# dmesg | grep neuronspi
[ 6.246724] neuronspi: loading out-of-tree module taints kernel.
[ 6.257603] neuronspi: probe of spi0.3 failed with error -5
[ 6.270814] neuronspi: probe of spi0.2 failed with error -5root@S103-sn488:/boot# python /opt/evok/evok.py
[I 180321 08:09:18 config:63] eprom: UniPi Neuron S103 version: 1.0 serial: 0x1e8
[I 180321 08:09:18 evok:1628] Starting using config file /etc/evok.conf
[I 180321 08:09:18 config:75] YAML Definition loaded: L20x.yaml, type: 3, definition count 0
[I 180321 08:09:18 config:75] YAML Definition loaded: M30x.yaml, type: 3, definition count 1
[I 180321 08:09:18 config:75] YAML Definition loaded: L50x.yaml, type: 3, definition count 2
[I 180321 08:09:18 config:75] YAML Definition loaded: S10x.yaml, type: 3, definition count 3
[I 180321 08:09:18 config:75] YAML Definition loaded: xS40.yaml, type: 3, definition count 4
[I 180321 08:09:19 config:75] YAML Definition loaded: M10x.yaml, type: 3, definition count 5
[I 180321 08:09:19 config:75] YAML Definition loaded: L30x.yaml, type: 3, definition count 6
[I 180321 08:09:19 config:75] YAML Definition loaded: M50x.yaml, type: 3, definition count 7
[I 180321 08:09:19 config:75] YAML Definition loaded: L51x.yaml, type: 3, definition count 8
[I 180321 08:09:20 config:75] YAML Definition loaded: xS30.yaml, type: 3, definition count 9
[I 180321 08:09:20 config:75] YAML Definition loaded: M40x.yaml, type: 3, definition count 10
[I 180321 08:09:20 config:75] YAML Definition loaded: M20x.yaml, type: 3, definition count 11
[I 180321 08:09:20 config:75] YAML Definition loaded: CUSTOM MODBUS DEVICE.yaml, type: 3, definition count 12
[I 180321 08:09:20 config:75] YAML Definition loaded: L40x.yaml, type: 3, definition count 13
[I 180321 08:09:20 config:75] YAML Definition loaded: xS10.yaml, type: 3, definition count 14
[I 180321 08:09:20 config:75] YAML Definition loaded: xS50.yaml, type: 3, definition count 15
[I 180321 08:09:20 config:75] YAML Definition loaded: evok-alias.yaml, type: 2, definition count 0
[I 180321 08:09:20 evok:1692] HTTP server listening on port: 8080
[I 180321 08:09:20 modbusclient_tornado:122] SPI client started
[I 180321 08:09:20 neuron:157] Reading SPI boards
[D 180321 08:09:20 owclient:377] Entering 1wire loop
[I 180321 08:09:20 neuron:172] No board on SPI 2
[I 180321 08:09:20 neuron:172] No board on SPI 3
[I 180321 08:09:21 web:2063] 101 GET /ws (::1) 7.53ms
[D 180321 08:09:21 evok:158] New WebSocket client connected
[I 180321 08:09:21 web:2063] 304 GET /rest/all (::1) 9.60ms
things got broken:
root@S103-sn488:/home/pi# uname -a
Linux S103-sn488 4.9.80-v7+ #1098 SMP Fri Mar 9 19:11:42 GMT 2018 armv7l GNU/Linuxroot@S103-sn488:/home/pi# dmesg | grep neuronspi
root@S103-sn488:/home/pi#
nothingroot@S103-sn488:/home/pi# python /opt/evok/evok.py
[I 180321 08:24:14 config:63] eprom: UniPi Neuron S103 version: 1.0 serial: 0x1e8
[I 180321 08:24:14 evok:1628] Starting using config file /etc/evok.conf
[I 180321 08:24:14 config:75] YAML Definition loaded: L20x.yaml, type: 3, definition count 0
[I 180321 08:24:14 config:75] YAML Definition loaded: M30x.yaml, type: 3, definition count 1
[I 180321 08:24:15 config:75] YAML Definition loaded: L50x.yaml, type: 3, definition count 2
[I 180321 08:24:15 config:75] YAML Definition loaded: S10x.yaml, type: 3, definition count 3
[I 180321 08:24:15 config:75] YAML Definition loaded: xS40.yaml, type: 3, definition count 4
[I 180321 08:24:15 config:75] YAML Definition loaded: M10x.yaml, type: 3, definition count 5
[I 180321 08:24:15 config:75] YAML Definition loaded: L30x.yaml, type: 3, definition count 6
[I 180321 08:24:15 config:75] YAML Definition loaded: M50x.yaml, type: 3, definition count 7
[I 180321 08:24:16 config:75] YAML Definition loaded: L51x.yaml, type: 3, definition count 8
[I 180321 08:24:16 config:75] YAML Definition loaded: xS30.yaml, type: 3, definition count 9
[I 180321 08:24:16 config:75] YAML Definition loaded: M40x.yaml, type: 3, definition count 10
[I 180321 08:24:16 config:75] YAML Definition loaded: M20x.yaml, type: 3, definition count 11
[I 180321 08:24:16 config:75] YAML Definition loaded: CUSTOM MODBUS DEVICE.yaml, type: 3, definition count 12
[I 180321 08:24:16 config:75] YAML Definition loaded: L40x.yaml, type: 3, definition count 13
[I 180321 08:24:17 config:75] YAML Definition loaded: xS10.yaml, type: 3, definition count 14
[I 180321 08:24:17 config:75] YAML Definition loaded: xS50.yaml, type: 3, definition count 15
[I 180321 08:24:17 config:75] YAML Definition loaded: evok-alias.yaml, type: 2, definition count 0
[I 180321 08:24:17 evok:1692] HTTP server listening on port: 8080
[I 180321 08:24:17 modbusclient_tornado:122] SPI client started
[I 180321 08:24:17 neuron:157] Reading SPI boards
[I 180321 08:24:17 neuron:172] No board on SPI 1
[I 180321 08:24:17 neuron:172] No board on SPI 2
[D 180321 08:24:17 owclient:377] Entering 1wire loop
[I 180321 08:24:17 neuron:172] No board on SPI 3
[I 180321 08:24:17 web:2063] 101 GET /ws (127.0.0.1) 3.58ms
[D 180321 08:24:17 evok:158] New WebSocket client connected
[I 180321 08:24:17 web:2063] 304 GET /rest/all (127.0.0.1) 4.17ms
[E 180321 08:24:17 neuron:211] 'NoneType' object has no attribute 'do_scan'
Traceback (most recent call last):
File "/opt/evok/neuron.py", line 209, in scan_boards
yield self.modbus_cache_map.do_scan()
AttributeError: 'NoneType' object has no attribute 'do_scan' - little sidenote: this is probably a different problem than the problem mentioned earlier in this thread...
-
Hi @tonytee!
Apt-get upgrade can be dangerous; you can upgrade almost all packages, but there are some caveats: raspberry-pi-bootloader, kernel packages and Tornado should not be updated. This is because our drivers can only link to a specific version of the kernel (as, indeed, is the case for all binary-distributed Linux drivers).We'll think about adding a debian package which would lock the kernel and Tornado version to the ones we use, so that apt-get upgrade will not break them.
In any case we do an apt-get upgrade (sans the aforementioned packages) at the same time as the image is created.
-
Hi Tomas,
Thanks for the suggestions... i'll keep an eye on the git issues ticket, do you want to keep this one alive here too?
Do I understand correctly that it's just a question of pinning the packages you mention too keep my running (remote)neurons safe for now?
i'm so happy I did the upgrade on my desk first, instead of doing it on the remote sites already
i have to say that normally i do apt-get update/upgrade on a regular basis on most of our systems without giving it much thought, so it's good to know that in this case it's a bit more dangerous :/
i'll get back to you after i tried an upgrade with pinned packages...
cheers, tony
-
I looked into your package pinning suggestion.
apt-mark hold raspberrypi-bootloader
apt-mark hold python-tornado
apt-mark hold raspberrypi-kernelbefore an upgrade at least prevents things getting broken
so at least there's a temporary prevention scheme
-
Glad to hear it works for now. We'll try to do this via dependencies ourselves in the next image.
It's unfortunate that this issue is difficult to solve correctly, which is to say allowing minor kernel updates to occur. (major changes necessitate a driver rewrite in any case) One option would be distributing the source code with automatic compilation scripts, which is somewhat common in commercial linux software; but it would still be quite a bit of effort on our part, not to mention the number of packages that would be required as dependencies.
And as for Tornado the recently released version 5 removes support for Python 2.7 for certain features, which means that we would need to rewrite EVOK entirely to Python 3. This is something we plan to do in any case, but it will be a somewhat significant undertaking, as the languages are not quite compatible.
-
Hi,
I have a very similar issue. I have a Neuron L203, and I booted up with the image UniPi-Mervis-OS-2017-08-28_v1.3.
All the RUN leds are flashing slowly, and the evok web page shows no input or output at all.
The neuron spi module is loaded:
[ 2.277416] NEURONSPI: Neuronspi Probe Started [ 2.282165] NEURONSPI: Probe detected Neuron v5.4 on CS 3, Uart count: 0 - reg1000: 504, reg1001: 100e, reg1002: 0, reg1003: 810, reg1004: 310 [ 2.283600] NEURONSPI: Neuronspi Probe Started [ 2.286029] NEURONSPI: Probe detected Neuron v5.4 on CS 2, Uart count: 0 - reg1000: 504, reg1001: 100e, reg1002: 0, reg1003: 810, reg1004: 310 [ 2.287174] NEURONSPI: Neuronspi Probe Started [ 2.290640] NEURONSPI: Probe detected Neuron v5.4 on CS 1, Uart count: 1 - reg1000: 504, reg1001: 404, reg1002: 311, reg1003: 10, reg1004: 10 [ 2.293017] NEURONSPI: Added UART port 0
I've already power cycled the device several times, so the firmware upgrade should have happened.
What should I check?
Thanks,
Csaba -
From the dmesg output It does look like the FW update happened.
Could you try it in Google Chrome? We recently had some compatibility issues with IE/Edge, which should be fixed in the GitHub master branch, but the fixes are not yet distributed on our images.
Otherwise everything on the dmesg output looks fine.
-
Thanks for the hint, but as I use primarily Linux I tried it with Firefox first, but now I also checked it with Chrome:
The result is the same :(
-
Wait - which image are you using? There should be three tabs on the panel. Two tabs were only present in the legacy EVOK 1.1 version, which does not support the Neuron module.
If you haven't could you try this with our latest image?
This is what the website looks like in the latest version if EVOK cannot connect: (note the spinning wheels on the right)
-
It is the UniPi-Mervis-OS-2017-08-28_v1.3, as this is the last non-beta Mervis image :)
However I also realized that this evok is quite out-dated and the used evok-neuron.cfg doesn't contain any HW related configuration, so I think this image is simple broken.
I managed to install a newer evok version by hand and that seems working, and I also managed to use modbus TCP to reach the inputs and outputs.So, everything seems fine, but this image looks too old.
Thanks for your support :D
-
Ahh - That is the Mervis IDE image! - It only has a very, very old version of EVOK installed - which is used solely as a Modbus server, which is necessary for the UniPi 1.1 to work with Mervis. Depending on whether you need Mervis or not, you may wish to use the Open Source image instead.
The reason why Mervis doesn't include EVOK by default is that Mervis works by continually monitoring and reconfiguring the device according to its internal rules, which means that external control of the devices is not possible with it without danger of potential conflicts!
Including it would also raise security concerns if EVOK is left unsecured (some users may not be aware of its existence), as Mervis follows industrial standards for process automation which include certain guarantees, guarantees which could be broken with full EVOK active.
Of course you can still do so, but you have to take it into account in your Mervis programs. Which is why it's left as an option for expert users who can do it manually.
e: expanded my answer slightly
-
@tomas_knot Thanks, a lot it makes sense. I'll then definitely move to the opensource image, as my main platform will be the modbus over TCP or RS485, I just wanted to also try the Mervis, but then I will use a different SD card for that.
-
Nothing wrong at all with trying out the Mervis IDE! It includes its own web interface, as well as an optional cloud database, and is compliant with the IEC standard 61131.
In fact it is built from the ground up to specifically be standard compliant, which unfortunately means that it is not possible to connect to it via a simple API. It does support a number of protocols though, some of which (Modbus and perhaps SSCP) can be used to communicate with the Mervis runtime from external applications.
-
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?
-
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
- 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
- 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?
-
- 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.
- 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.