No handlers could be found for logger "websocket"
-
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.
-
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.
-
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
-
Liegt mein Problem eventuell bei dem Python websocket / JSON module (import websocket - import json)
-
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
-
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
-
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.
-
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...