Bug with unipi extensions / only Adress 0 work!



  • Neuron L403 S/N: 02
    xS10 S/N: 85
    xS10 S/N: 86

    unipian (new)

    I have tested various adresses. Only one Extension works on adress 0 !

    evok.conf

    #!!! Do not use '#' for comments !!!
    
    [MAIN]                                                                  ; !!! ALL MAIN SECTION OPTIONS ARE MANDATORY !!!
    config_version = 2.5                                    ; Configuration file version, DO NOT CHANGE!
    use_schema_verification = False                 ; Enabling this will deny any requests that do not match the JSON Schema; NOTE THAT THIS RESULTS IN A SIGNIFICANT INCREASE IN LATENCY AND SHOULD NOT BE USED EXCEPT FOR TE$
    log_level = ERROR                                       ; Minimum severity of messages to be logged; one of INFO, DEBUG, WARNING, ERROR, CRITICAL
    log_file = /var/log/evok.log                    ; Log file to use; will be cleared on boot
    port = 8080                                                             ; !!! Internal API port - only change if you are certain you know what you are doing; FOR OUR WEB INTERFACE THE PORT SHOULD BE CHANGED IN "/etc/ev$
    webhook_enabled = False                                 ; Enables webhook notification - see e.g. https://sendgrid.com/blog/whats-webhook/
    webhook_address = http://127.0.0.1:80   ; Put your server endpoint address here (e.g. http://123.123.123.123:/wh )
    webhook_device_mask = ["input","wd"]    ; List of device types to notify on (written as a JSON list) - adding AI will generate a large amount of messages!
    webhook_complex_events = False                  ; EVOK will send POST requests with the same data as WebSocket, rather than an empty GET request
    wifi_control_enabled = False                    ; !!! REQUIRES THE UNIPIAP WIFI CONTROLLER TO BE INSTALLED !!! Will allow evok to control the internal Neuron wifi
    soap_server_enabled = False                             ; Enables the simple SOAP server; use only if you need the functionality
    soap_server_port = 8081                                 ; !!! IF SOAP SERVER IS ENABLED, THIS PORT NEEDS TO BE UNIQUE (i.e. different from the port setting above) !!!
    
    [NEURON_1]
    global_id = 1                                                   ; Mandatory, REQUIRED TO BE UNIQUE
    allow_register_access = False                   ; Optional, False default
    scan_frequency = 10                                             ; Optional, 10 default, scanning frequency in [Hz]
    scan_enabled = True                             ; Optional, True default
    
    
    [EXTENSION_1]
    global_id = 2
    device_name = xS10
    modbus_uart_port = /dev/extcomm/0/0
    neuron_uart_circuit = 1_01
    ;allow_register_access = True
    address = 0
    scan_frequency = 1
    scan_enabled = True
    
    [EXTENSION_2]
    global_id = 3
    device_name = xS10
    modbus_uart_port = /dev/extcomm/0/0
    neuron_uart_circuit = 1_01
    ;allow_register_access = True
    address = 15
    scan_frequency = 1
    scan_enabled = True
    

    RX LED flashes on both
    TX LED flashes only on Adress 0 !!

    RUN: on Adress 0 fast flashes
    on Adress 15 slow blinking

    logfile

      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 9 - read error
    2019-05-05 13:44:44,156 - evok - ERROR - No cached value of register 1026 on unit 15 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1069, in run
        yielded = self.gen.send(value)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 625, in parse_definition
        self.parse_feature(m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 601, in parse_feature
        self.parse_feature_di(max_count, m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 467, in parse_feature_di
        regpolarity=m_feature['polar_reg'], legacy_mode=self.legacy_mode)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 1464, in __init__
        curr_ds = self.arm.neuron.modbus_cache_map.get_register(1, self.regmode, unit=self.arm.modbus_address)[0]
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 15 - read error
    2019-05-05 13:44:47,154 - evok - ERROR - No cached value of register 1026 on unit 14 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1069, in run
        yielded = self.gen.send(value)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 625, in parse_definition
        self.parse_feature(m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 601, in parse_feature
        self.parse_feature_di(max_count, m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 467, in parse_feature_di
        regpolarity=m_feature['polar_reg'], legacy_mode=self.legacy_mode)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 1464, in __init__
        curr_ds = self.arm.neuron.modbus_cache_map.get_register(1, self.regmode, unit=self.arm.modbus_address)[0]
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 14 - read error
    2019-05-05 13:47:06,184 - evok - ERROR - No cached value of register 1026 on unit 15 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1069, in run
        yielded = self.gen.send(value)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 625, in parse_definition
        self.parse_feature(m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 601, in parse_feature
        self.parse_feature_di(max_count, m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 467, in parse_feature_di
        regpolarity=m_feature['polar_reg'], legacy_mode=self.legacy_mode)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 1464, in __init__
        curr_ds = self.arm.neuron.modbus_cache_map.get_register(1, self.regmode, unit=self.arm.modbus_address)[0]
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 15 - read error
    2019-05-05 13:47:09,172 - evok - ERROR - No cached value of register 1026 on unit 14 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1069, in run
        yielded = self.gen.send(value)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 625, in parse_definition
        self.parse_feature(m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 601, in parse_feature
        self.parse_feature_di(max_count, m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 467, in parse_feature_di
        regpolarity=m_feature['polar_reg'], legacy_mode=self.legacy_mode)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 1464, in __init__
        curr_ds = self.arm.neuron.modbus_cache_map.get_register(1, self.regmode, unit=self.arm.modbus_address)[0]
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 14 - read error
    2019-05-05 13:50:03,202 - evok - ERROR - No cached value of register 1026 on unit 14 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1069, in run
        yielded = self.gen.send(value)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 625, in parse_definition
        self.parse_feature(m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 601, in parse_feature
        self.parse_feature_di(max_count, m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 467, in parse_feature_di
        regpolarity=m_feature['polar_reg'], legacy_mode=self.legacy_mode)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 1464, in __init__
        curr_ds = self.arm.neuron.modbus_cache_map.get_register(1, self.regmode, unit=self.arm.modbus_address)[0]
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 14 - read error
    2019-05-05 13:50:06,190 - evok - ERROR - No cached value of register 1026 on unit 15 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1069, in run
        yielded = self.gen.send(value)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 625, in parse_definition
        self.parse_feature(m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 601, in parse_feature
        self.parse_feature_di(max_count, m_feature, board_id)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 467, in parse_feature_di
        regpolarity=m_feature['polar_reg'], legacy_mode=self.legacy_mode)
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 1464, in __init__
        curr_ds = self.arm.neuron.modbus_cache_map.get_register(1, self.regmode, unit=self.arm.modbus_address)[0]
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 61, in get_register
        raise Exception('No cached value of register %d on unit %d - read error' % (counter, unit))
    Exception: No cached value of register 1026 on unit 15 - read error
    2019-05-05 13:53:57,200 - evok - ERROR - No cached value of register 1026 on unit 15 - read error
    Traceback (most recent call last):
      File "/opt/evok/lib/python2.7/site-packages/evok/neuron.py", line 343, in readboards
        yield board.parse_definition(self.hw_dict, 1)
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
        value = future.result()
      File "/opt/evok/local/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
        raise_exc_info(self._exc_info)
      File "/opt/evok/local/lib/p
    


  • i fond the problem. the party setting was false!


  • administrators

    Hello @burnscm,
    moreover, the Modbus doesn't allow to have address 0 and you cannot set the address 0 via our DIP switches. When the DIP switches are in "0" position, the extension uses the address which is stored in the NVRAM, which, by default, is 15.

    Best regards,
    Martin