M203 clean evok install not working



  • Hi,

    I bought an M203, and flashed the official UniPian Neuron OS image available here
    Trying to access the web interface showed an empty list of inputs and outputs, nothing was working:

    alt text

    So I tried an apt-get dist-upgrade followed by a manual installation of latest evok 2.0 as per instructions available here

    Rebooted, I get the same result.

    Here is the log I get when launching evok manually as instructed in the debug section of the documentation:

    pi@M203-sn100:/etc $ sudo python /opt/evok/evok.py
    [I 180106 15:58:02 config:66] eprom: UniPi Neuron M203 version: 1.0 serial: 0x64
    [I 180106 15:58:02 evok:1640] Starting using config file /etc/evok.conf
    [I 180106 15:58:02 config:78] YAML Definition loaded: CUSTOM MODBUS DEVICE.yaml, type: 3, definition count 0
    [I 180106 15:58:02 config:78] YAML Definition loaded: S10x.yaml, type: 3, definition count 1
    [I 180106 15:58:02 config:78] YAML Definition loaded: M30x.yaml, type: 3, definition count 2
    [I 180106 15:58:02 config:78] YAML Definition loaded: M20x.yaml, type: 3, definition count 3
    [I 180106 15:58:03 config:78] YAML Definition loaded: L20x.yaml, type: 3, definition count 4
    [I 180106 15:58:03 config:78] YAML Definition loaded: M50x.yaml, type: 3, definition count 5
    [I 180106 15:58:03 config:78] YAML Definition loaded: xS30.yaml, type: 3, definition count 6
    [I 180106 15:58:03 config:78] YAML Definition loaded: L51x.yaml, type: 3, definition count 7
    [I 180106 15:58:03 config:78] YAML Definition loaded: L40x.yaml, type: 3, definition count 8
    [I 180106 15:58:04 config:78] YAML Definition loaded: xS40.yaml, type: 3, definition count 9
    [I 180106 15:58:04 config:78] YAML Definition loaded: M40x.yaml, type: 3, definition count 10
    [I 180106 15:58:04 config:78] YAML Definition loaded: L30x.yaml, type: 3, definition count 11
    [I 180106 15:58:04 config:78] YAML Definition loaded: L50x.yaml, type: 3, definition count 12
    [I 180106 15:58:04 config:78] YAML Definition loaded: M10x.yaml, type: 3, definition count 13
    [I 180106 15:58:05 config:78] YAML Definition loaded: xS50.yaml, type: 3, definition count 14
    [I 180106 15:58:05 config:78] YAML Definition loaded: DALI.yaml, type: 3, definition count 15
    [I 180106 15:58:05 config:78] YAML Definition loaded: xS10.yaml, type: 3, definition count 16
    [I 180106 15:58:05 config:78] YAML Definition loaded: evok-alias.yaml, type: 2, definition count 0
    [I 180106 15:58:05 evok:1704] HTTP server listening on port: 8080
    [I 180106 15:58:05 modbusclient_tornado:125] SPI client started
    [I 180106 15:58:05 neuron:173] Reading SPI boards
    [I 180106 15:58:05 neuron:188] No board on SPI 1
    [I 180106 15:58:05 neuron:188] No board on SPI 2
    [D 180106 15:58:05 owclient:376] Entering 1wire loop
    [I 180106 15:58:05 neuron:188] No board on SPI 3
    [E 180106 15:58:05 config:358] Invalid device circuit number 1_01
    Traceback (most recent call last):
    File "/opt/evok/config.py", line 353, in add_aliases
    dev_obj = Devices.by_int(dev_pointer["dev_type"], dev_pointer["circuit"])
    File "/opt/evok/devices.py", line 67, in by_int
    raise Exception('Invalid device circuit number %s' % str(circuit))
    Exception: Invalid device circuit number 1_01
    [E 180106 15:58:05 config:358] Invalid device circuit number 1_02
    Traceback (most recent call last):
    File "/opt/evok/config.py", line 353, in add_aliases
    dev_obj = Devices.by_int(dev_pointer["dev_type"], dev_pointer["circuit"])
    File "/opt/evok/devices.py", line 67, in by_int
    raise Exception('Invalid device circuit number %s' % str(circuit))
    Exception: Invalid device circuit number 1_02
    [E 180106 15:58:05 neuron:227] 'NoneType' object has no attribute 'do_scan'
    Traceback (most recent call last):
    File "/opt/evok/neuron.py", line 225, in scan_boards
    yield self.modbus_cache_map.do_scan()
    AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 180106 15:58:06 neuron:227] 'NoneType' object has no attribute 'do_scan'
    Traceback (most recent call last):
    File "/opt/evok/neuron.py", line 225, in scan_boards
    yield self.modbus_cache_map.do_scan()
    AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 180106 15:58:06 neuron:227] 'NoneType' object has no attribute 'do_scan'
    Traceback (most recent call last):
    File "/opt/evok/neuron.py", line 225, in scan_boards
    yield self.modbus_cache_map.do_scan()
    AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 180106 15:58:07 neuron:227] 'NoneType' object has no attribute 'do_scan'
    Traceback (most recent call last):
    File "/opt/evok/neuron.py", line 225, in scan_boards
    yield self.modbus_cache_map.do_scan()
    AttributeError: 'NoneType' object has no attribute 'do_scan'
    [I 180106 15:58:07 web:2063] 101 GET /ws (::1) 6.00ms
    [D 180106 15:58:07 evok:169] New WebSocket client connected
    [I 180106 15:58:07 web:2063] 304 GET /rest/all (::1) 6.26ms
    [E 180106 15:58:07 neuron:227] 'NoneType' object has no attribute 'do_scan'
    Traceback (most recent call last):
    File "/opt/evok/neuron.py", line 225, in scan_boards
    yield self.modbus_cache_map.do_scan()
    AttributeError: 'NoneType' object has no attribute 'do_scan'
    ^C[I 180106 15:58:07 evok:1779] Shutting down

    Is there something wrong with my hardware? It seems to me the RPI can not communicate with the internal plc boards.
    Or is it a configuration mistake? What could I possibly have done wrong?

    I'll be very grateful to anyone who could shed some light.
    Thanks!

    Rob



  • Quick update:

    I repeated the Evok installation as per the instructions above on a clean vanilla raspbian stretch image taken from the official raspberry pi repo (not the UniPi customized one) and everything works fine.

    Thus - there seems to be some misconfiguration in the official UniPi image, at least when used with M203: beware.

    Rob