• Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    No handlers could be found for logger "websocket"

    Official EVOK API
    2
    8
    3210
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      seecosmea last edited by tomas_hora

      Good morning,

      since connecting a new sensor to the 1-Wire network, getting the following error message „No handlers could be found for logger "websocket"“ via LXT Terminal.

      I use the following python 2.7 program:

      #!/bin/bash
      
      import websocket
      import json
      
      url = "ws://127.0.0.1:88/ws"
      
      def on_message(ws, message):
         obj = json.loads(message)
         dev = obj['dev']
         circuit = obj['circuit']
         value = obj['value']
         print message
      
      def on_error(ws, error):
         print error
      
      def on_close(ws):
         print "Connection closed"
      
      #receiving messages
      ws = websocket.WebSocketApp(url, on_message = on_message, on_error = on_error, on_close = on_close)
      ws.run_forever()
      
      #sending messages
      ws = websocket.WebSocket()
      ws.connect(url)
      ws.send('{"cmd":"set","dev":"relay","circuit":"3","value":"1"}')
      ws.close()
      

      The EVOK log having following message:

      AttributeError: 'DS2438' object has no attribute 'sensor_dev'
      2018-01-14 08:55:54,139 - evok - ERROR - Error in config section 1WINPUT_23 - 'DS2438' object has no attribute 'sensor_dev'
      Traceback (most recent call last):
        File "/opt/evok/config.py", line 221, in create_devices
          sensor = (Devices.by_int(SENSOR, sensor)).sensor_dev
      AttributeError: 'DS2438' object has no attribute 'sensor_dev'
      

      I appriciate your assitance.

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

        Hi @seecosmea,
        Could you post your config file? It seems like your 1Wire-DI is connected to a simple DS2438 sensor.

        I don't immediately see what's exactly the issue aside from this, and it would help track it down.

        1 Reply Last reply Reply Quote 0
        • S
          seecosmea last edited by tomas_hora

          Good morining again,

          pls note that I do not have anymore messsages inside the EVOK log, pls find my modified config file below. But I still have the problem that I do not receive any JSON strings from my DS2438 sensors via above mention Python program in order to receive the infos via WS.

          I could get the JSON string only via wget but not via python ws - Here the string from my new CO2 Sensor:

          {"vad": "1.23", "vdd": "5", "circuit": "2656DC84000003B7", "time": 1515692607.33644, "temp": "4.82031", "interval": 15, "typ": "DS2438", "lost": false, "dev": "temp", "humidity": 39.25448718301667}
          

          Here my string from the new temp & humidity sensor:

          {"vad": "1.23", "vdd": "5", "circuit": "2656DC84000003B7", "time": 1515692607.33644, "temp": "4.82031", "interval": 15, "typ": "DS2438", "lost": false, "dev": "temp", "humidity": 39.25448718301667}
          
          #!!! Do not use '#' for comments !!!
          
          [MAIN]
          config_version = 2.4					
          use_experimental_api = False			; Currently in Alpha - known issues
          regenerate_api_docs = False				; Active only with the experimental API setting
          log_level = ERROR   					; 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/evok-nginx.conf" INSTEAD !!!
          ;modbus_port = 0
          ;modbus_address = *			
          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) !!!
          
          [OWBUS_1]
          owbus = --i2c=/dev/i2c-1:ALL     		; scanned bus (--i2c=/dev/i2c-1:ALL or localhost:2122 or 'u' for USB dongle)
          interval = 3          					; [s] default sensor reading
          scan_interval = 300    					; [s] how often is made searching
          
          ;[SENSOR_1]	     						; onewire thermometer
          ;bus = 1		     					; link to OWBUS_X
          ;address = 28527B930500001F
          ;type = DS18B20
          ;interval = 1
          
          [I2CBUS_1]
          busid = 1     							;[integer] id of bus /dev/i2c-X
          
          ;[EPROM_1]								;EPROM device will not be used anymore, eprom should be handled by kernel module
          ;i2cbus = 1
          ;address = 0x50
          ;size = 256
          
          [MCP_1]
          i2cbus = 1								; link to I2CBUS_X
          address = 0x20							; i2c address
          
          [RELAY_1]
          mcp = 1									; link to MCP_X
          pin = 7
          
          [RELAY_2]
          mcp = 1									; link to MCP_X
          pin = 6
          
          [RELAY_3]
          mcp = 1
          pin = 5
          
          [RELAY_4]
          mcp = 1
          pin = 4
          
          [RELAY_5]
          mcp = 1
          pin = 3
          
          [RELAY_6]
          mcp = 1
          pin = 2
          
          [RELAY_7]
          mcp = 1
          pin = 1
          
          [RELAY_8]
          mcp = 1
          pin = 0
          
          ;[AICHIP_1]
          ;i2cbus =1
          ;address = 0x68
          
          ;[AI_1]
          ;chip=1
          ;channel=0
          ;bits=18
          ;gain=1
          ;;correction = 5.558737622
          ;;correction = 5.564920867
          ;corr_rom = 1
          ;corr_addr = 0xf0
          ;interval=2
          
          ;[AI_2]
          ;chip=1
          ;channel=1
          ;bits=18
          ;gain=1
          ;;correction = 5.558737622
          ;;correction = 5.564920867
          ;corr_rom = 1
          ;corr_addr = 0xf4
          ;interval=1
          
          [GPIOBUS_1]
          
          [AO_1]
          gpiobus = 1
          frequency = 100
          
          [DI_1]
          gpiobus = 1
          pin=4
          debounce = 0
          ;Enable counting on rising/falling edge or disable it
          ;By default(or parameter not present) this function is disabled
          ;Can be turned on on all on-board digital inputs (not inputs on 1Wire or other extensions)
          ;counter_mode = rising
          ;counter_mode = falling
          ;counter_mode = disabled
          
          [DI_2]
          gpiobus = 1
          pin=17
          debounce = 0
          
          [DI_3]
          gpiobus = 1
          pin=27
          debounce = 0
          
          [DI_4]
          gpiobus = 1
          pin=23
          debounce = 0
          
          [DI_5]
          gpiobus = 1
          pin=22
          debounce = 0
          
          [DI_6]
          gpiobus = 1
          pin=24
          debounce = 0
          
          [DI_7]
          gpiobus = 1
          pin=11
          debounce = 0
          
          [DI_8]
          gpiobus = 1
          pin=7
          debounce = 0
          
          [DI_9]
          gpiobus = 1
          pin=8
          debounce = 0
          
          [DI_10]
          gpiobus = 1
          pin=9
          debounce = 0
          
          [DI_11]
          gpiobus = 1
          pin=25
          debounce = 0
          
          [DI_12]
          gpiobus = 1
          pin=10
          debounce = 0
          
          ;[DI_13]
          ;gpiobus = 1
          ;pin=31
          ;debounce = 0
          
          ;[DI_14]
          ;gpiobus = 1
          ;pin=30
          ;debounce = 0
          
          ;
          ;Example of 8xRelay extension module addon (EMO-R8) on address 0x21
          ;
          ;[MCP_2]
          ;i2cbus = 1
          ;address = 0x21
          
          ;[RELAY_9]
          ;mcp = 2
          ;pin = 7
          
          ;[RELAY_10]
          ;mcp = 2
          ;pin = 6
          
          ;[RELAY_11]
          ;mcp = 2
          ;pin = 5
          
          ;[RELAY_12]
          ;mcp = 2
          ;pin = 4
          
          ;[RELAY_13]
          ;mcp = 2
          ;pin = 3
          
          ;[RELAY_14]
          ;mcp = 2
          ;pin = 2
          
          ;[RELAY_15]
          ;mcp = 2
          ;pin = 1
          
          ;[RELAY_16]
          ;mcp = 2
          ;pin = 0
          
          ;
          ;Example of Analog Output extension module EMO-Ao4/12
          ;
          ;[PCA9685_1]
          ;i2cbus = 1
          ;address = 0x40
          ;frequency = 400
          ;
          ;[AO_2]
          ;pca = 1
          ;channel = 0
          ;
          ;[AO_3]
          ;pca = 1
          ;channel = 1
          ;
          ;[AO_4]
          ;pca = 1
          ;channel = 2
          ;
          ;[AO_5]
          ;pca = 1
          ;channel = 3
          
          
          ;Example of 1W-4R/4DI extension module, 1W-8R is almost the same just replace inputs with relays
          ;
          ; - First map a new 1Wire sensor with appropriate address, type, and interval
          ; - Can use both SENSOR or 1WDEVICE syntax
          ; - Reading interval is crucial to achieve expected performance, default interval is 15s
          ;
          
          [1WDEVICE_2]
          bus = 1
          address = 3AFF60340000009E 
          type = DS2413
          interval = 1
          
          [1WRELAY_10]
          sensor = 2
          pin = 0
          
          [1WINPUT_20]
          sensor = 2
          pin = 1
          
          [1WDEVICE_3]
          bus = 1
          address = 3A4D6B3400000087
          type = DS2413
          interval = 1
          
          [1WRELAY_11]
          sensor = 3
          pin = 0
          
          [1WINPUT_21]
          sensor = 3
          pin = 1
          
          [1WDEVICE_4]
          bus = 1
          address = 3AC3323400000018
          type = DS2413
          interval = 1
          
          [1WRELAY_12]
          sensor = 4
          pin = 0
          
          [1WINPUT_22]
          sensor = 4
          pin = 1
          
          [1WDEVICE_5]
          bus = 1
          address = 2656DC84000003B7
          type = DS2438
          interval = 1
          
          [1WINPUT_23]
          sensor = 5
          
          [1WDEVICE_6]
          bus = 1
          address = 265ADC84000003CA
          type = DS2438
          interval = 1
          
          [1WINPUT_23]
          sensor = 6
          
          
          ;[1WRELAY_11]
          ;sensor = 2
          ;pin = 1
          ;
          ;[1WRELAY_12]
          ;sensor = 2
          ;pin = 2
          ;
          ;[1WRELAY_13]
          ;sensor = 2
          ;pin = 3
          ;
          ;[1WINPUT_20]
          ;sensor = 2
          ;pin = 4
          ;
          ;[1WINPUT_21]
          ;sensor = 2
          ;pin = 5
          ;
          ;[1WINPUT_22]
          ;sensor = 2
          ;pin = 6
          ;
          ;[1WINPUT_23]
          ;sensor = 2
          ;pin = 7
          
          1 Reply Last reply Reply Quote 0
          • S
            seecosmea last edited by

            Liegt mein Problem eventuell bei dem Python websocket / JSON module (import websocket - import json)

            1 Reply Last reply Reply Quote 0
            • S
              seecosmea last edited by

              Good morning, could it be that the problem is related to the Python websocket / JSON module (import websocket - import json). I do receive still the error message : No handlers could be found for logger "websocket" if I start the program in LXTerminal: sudo python /home/pi/py4.py

              I receive after starting the DS18B20 temperature strings but not any JSON strings from DS2438 via the python program above. I would like to receive the JSON strings in my Gambas main program from that python script. Could you pls be so kind to assist....

              tks in advance

              1 Reply Last reply Reply Quote 0
              • S
                seecosmea last edited by

                Good morning again,

                could you pls be so kind to let me know if I could expect any answer at all, I do have sill the sam problem that I receive the DS18B20 temperature strings but not any JSON strings from DS2438 via the python program above.

                I checked the UniPi forum every moring with the hope to get new hints on present subject but nothing at all. I guess that my problem is not your area of responsibility ?

                tks in advance

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

                  The error "No handlers could be found for logger "websocket"" is from your client library, it means you haven't registered an output logger (appropriately enough).

                  I am not sure what's causing the issue with the DS2438. Do you get any 1wire messages at all? Or indeed any other.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    seecosmea @TomasKnot last edited by

                    Good day,

                    I do receive all JSON stings from my DS18B20 temperatur sensors and from my DS2413 (Wire Dual Channel Addressable Switch) but I do not receive any strings from DS2438 at moment. I could get the JSON string via the wget method or via http://127.0.0.1:88/rest/all.

                    Do you have any idea on how I could get the strings via the above mentioned python program via Websocket; I actually do not understand why I do not receive the DS2438 strings...

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