On disconnection Pi throws unhandled error and stops working:
Need proper handling of connection and disconnection;
Need to retain local info (e.g. in logs) on connection events (disconn/conn)
It would be nice to have logs uploaded to the server
Server:
Need tracking of when devices connected/disconnected/reconnected
Server:
Need to change Hibernate so the Database is not dropped, and values are kept; It should also
--- Pi on disconnection gives up: ---
Traceback (most recent call last):
File "app.py", line 111, in <module>
putStatusAndSettings() # Update every so often about the reads.
File "app.py", line 92, in putStatusAndSettings
hs.putStatusREST(status)
File "/home/pi/git/ihome/pi/server/ServerSubscriber.py", line 49, in putStatus REST
r = requests.put(server.getName() + "/status/%d" % (self.device), json=data)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 124, in pu t
return request('put', url, data=data, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 56, in req uest
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 487, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.0.12', por t=8080): Max retries exceeded with url: /status/0 (Caused by NewConnectionError( '<requests.packages.urllib3.connection.HTTPConnection object at 0x1c6e8d0>: Fail ed to establish a new connection: [Errno 110] Connection timed out',))
On startup when server is unavailable:
04/13/2017 06:40:25 AM [GpioPin]: gpioOutputMode needs to be properly implemented
04/13/2017 06:40:25 AM [GpioPin]: gpioInputMode needs to be properly implemented
04/13/2017 06:40:25 AM [GpioPin]: gpioOuputHigh needs to be properly implemented
04/13/2017 06:40:25 AM [GpioPin]: gpioOuputLow needs to be properly implemented
04/13/2017 06:40:25 AM [GpioPin]: gpioInput needs to be properly implemented
04/13/2017 06:40:25 AM [RPiDummy.GPIO]: GPIO module imported
04/13/2017 06:40:25 AM [RPiDummy.GPIO]: setmode(BCM) called
04/13/2017 06:40:25 AM [app]: running
Traceback (most recent call last):
File "C:\git\ihome\pi\app.py", line 99, in <module>
hs = ServerSubscriber(device=0)
File "C:\git\ihome\pi\server\ServerSubscriber.py", line 18, in __init__
self.getSettingsAndNotifyREST()
File "C:\git\ihome\pi\server\ServerSubscriber.py", line 33, in getSettingsAndNotifyREST
r = requests.get(server.getName() + "/settings/%d" % (self.device))
File "C:\git\ihome\pi\server\__init__.py", line 20, in getName
status = requests.get(x).status_code
File "C:\Python27\lib\site-packages\requests\api.py", line 70, in get
return request('get', url, params=params, **kwargs)
File "C:\Python27\lib\site-packages\requests\api.py", line 56, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "C:\Python27\lib\site-packages\requests\adapters.py", line 487, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: / (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x00000000033AF7B8>: Failed to establish a new connection: [Errno 10061] No connection could be made because the target machine actively refused it',))
Pi:
Server:
--- Pi on disconnection gives up: ---
On startup when server is unavailable: