Git Product home page Git Product logo

Comments (28)

jasonacox avatar jasonacox commented on July 18, 2024 1

Since you are using the Powerwall-Dashbaord setup, that is telegraf. The Dashboard setup uses docker-compose which create a private network inside docker to manage the communication between the containers. The setup is defined in the compose (powerwall.yml) setup.

Telegraf's job is to poll for data and store it in InfluxDB for use by Grafana. What happens is this:

telegraf --(polls)--> pypowerwall --(polls)--> Powerwall Gateway

Pypowerwall doesn't proactively poll the Powerwall, it waits for a request. That is why you see "processing a request from" in the log. You will likely see other traffic too. You can directly hit pypowerwall via your browser or other means, and that is exactly what we do for the Power Flow Animation built in to the proxy (e.g. http://localhost:8675/example.html).

If you want to test the patch to improve the exception errors you are seeing you can update powerwall.yml to use this:

jasonacox/pypowerwall:0.8.3t53-beta

and restart

./compose-dash.sh up -d

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024 1

{"pypowerwall": "0.8.3 Proxy t53", "gets": 13664, "errors": 0

But changed to beta2 so we're all looking at the same thing.

from pypowerwall.

jasonacox avatar jasonacox commented on July 18, 2024 1

Ok, another try... I saw where I was missing the empty payload. It will still log an error because this could be indicative of a bigger problem (unable to communicate with the Powerwall), but should not be a exception trace.

jasonacox/pypowerwall:0.8.3t54-beta

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024 1

2024-04-13 22:46:25 04/13/2024 10:46:25 PM [pypowerwall.local.pypowerwall_local] [ERROR] 503 Service Unavailable at https://192.168.1.6/api/solar_powerwall - Activating 5 minute API cooldown

I like it!

from pypowerwall.

jasonacox avatar jasonacox commented on July 18, 2024

Thanks @jgleigh - I do appreciate these. For some reason, I don't get these but suspect it is due to having my Powerwall hardwired into my network. This is likely caused by something like a network communication error that results in a malformed payload that is missing that key. I'm going to start adding dictionary getters to these elements to help reduce the noise in the logs. However, I will have it continue to log a notice otherwise you won't know that these calls are failing, a possible indication of a weak network link.

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

Mine is hardwired too. These errors don't seem to cause any issues though which is good.

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

Are these coming from an external source? I noticed the IP address isn't inside my network.

Exception occurred during processing of request from ('172.18.0.6', 42768)
Exception occurred during processing of request from ('172.18.0.6', 59624)
Exception occurred during processing of request from ('172.18.0.6', 36076)
Exception occurred during processing of request from ('172.18.0.6', 40034)

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

Might be something inside the Docker instance, since 172.18.x.x is a private IP address. Very strange.

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

No change with 0.8.3 :(

2024-04-13 11:16:11 ----------------------------------------
2024-04-13 11:16:11 Exception occurred during processing of request from ('172.18.0.6', 41366)
2024-04-13 11:16:11 Traceback (most recent call last):
2024-04-13 11:16:11   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-13 11:16:11     self.finish_request(request, client_address)
2024-04-13 11:16:11   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-13 11:16:11     self.RequestHandlerClass(request, client_address, self)
2024-04-13 11:16:11   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-13 11:16:11     self.handle()
2024-04-13 11:16:11   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-13 11:16:11     self.handle_one_request()
2024-04-13 11:16:11   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-13 11:16:11     method()
2024-04-13 11:16:11   File "/app/server.py", line 321, in do_GET
2024-04-13 11:16:11     fcv["grid_status"] = pw.grid_status(type="numeric")
2024-04-13 11:16:11   File "/app/pypowerwall/__init__.py", line 616, in grid_status
2024-04-13 11:16:11     grid_status = payload.get('grid_status')
2024-04-13 11:16:11 AttributeError: 'NoneType' object has no attribute 'get'
2024-04-13 11:16:11 ----------------------------------------

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

A quick Google search found similar issues with other Python scripts and people aren't sure why they happen intermittently.

from pypowerwall.

jasonacox avatar jasonacox commented on July 18, 2024

Hi @jgleigh - can you check http://localhost:8675/stats to make sure it show 0.8.3 as the version? If not, use this container:

jasonacox/pypowerwall:0.8.3t53-beta2

from pypowerwall.

spoonwzd avatar spoonwzd commented on July 18, 2024
04/15/2024 06:33:42 AM [proxy] [INFO] Control Command: Set Reserve to 15
04/15/2024 08:00:04 AM [proxy] [INFO] Control Command: Set Reserve to 5
 CANCEL

Mine shows 'CANCEL' after setting the reserve this morning.

Seems to be working fine regardless.

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

Seeing this a lot more now. Not sure what's going on. Also seeing periodic data dropouts of 2min each.

2024-04-18 15:16:07 04/18/2024 03:16:07 PM [proxy] [ERROR] Socket broken sending API response to client [doGET]: [Errno 32] Broken pipe

Running for period: [2024-04-18 00:00:00-07:00] - [2024-04-18 23:59:59-07:00] (23:59:59s)

Searching InfluxDB for data gaps (power usage)
* None found

Searching InfluxDB for data gaps (grid status)
* Found data gap: [2024-04-18 04:15:00-07:00] - [2024-04-18 04:17:00-07:00] (0:02:00s)
* Found data gap: [2024-04-18 11:00:00-07:00] - [2024-04-18 11:02:00-07:00] (0:02:00s)
* Found data gap: [2024-04-18 13:15:00-07:00] - [2024-04-18 13:17:00-07:00] (0:02:00s)

Retrieving backup event history
* Creating grid status data: [2024-04-18 04:16:00-07:00] - [2024-04-18 04:16:59-07:00] (0:00:59s)
* Creating grid status data: [2024-04-18 11:01:00-07:00] - [2024-04-18 11:01:59-07:00] (0:00:59s)
* Creating grid status data: [2024-04-18 13:16:00-07:00] - [2024-04-18 13:16:59-07:00] (0:00:59s)

from pypowerwall.

jasonacox avatar jasonacox commented on July 18, 2024

2024-04-18 15:16:07 04/18/2024 03:16:07 PM [proxy] [ERROR] Socket broken sending API response to client [doGET]: [Errno 32] Broken pipe

This is an indication of a network connection breaking. It is actually on the "client" side (e.g. web browser, telegraf, etc) and is could be due to a timeout of that client waiting for a response from the Powerwall (via the Proxy).

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

Seeing a lot more errors lately. Anything else I can look at to see what is going on here?

Running for period: [2024-04-01 00:00:00-07:00] - [2024-04-23 23:59:59-07:00] (22 days, 23:59:59s)

Searching InfluxDB for data gaps (power usage)
* Found data gap: [2024-04-19 20:31:00-07:00] - [2024-04-19 20:38:00-07:00] (0:07:00s)
* Found data gap: [2024-04-20 04:16:00-07:00] - [2024-04-20 04:34:00-07:00] (0:18:00s)
* Found data gap: [2024-04-20 17:02:00-07:00] - [2024-04-20 17:10:00-07:00] (0:08:00s)
* Found data gap: [2024-04-21 17:17:00-07:00] - [2024-04-21 17:24:00-07:00] (0:07:00s)

Searching InfluxDB for data gaps (grid status)
* Found data gap: [2024-04-19 01:30:00-07:00] - [2024-04-19 01:33:00-07:00] (0:03:00s)
* Found data gap: [2024-04-19 18:15:00-07:00] - [2024-04-19 18:17:00-07:00] (0:02:00s)
* Found data gap: [2024-04-19 20:31:00-07:00] - [2024-04-19 20:38:00-07:00] (0:07:00s)
* Found data gap: [2024-04-20 04:16:00-07:00] - [2024-04-20 04:34:00-07:00] (0:18:00s)
* Found data gap: [2024-04-20 11:32:00-07:00] - [2024-04-20 11:37:00-07:00] (0:05:00s)
* Found data gap: [2024-04-20 17:02:00-07:00] - [2024-04-20 17:10:00-07:00] (0:08:00s)
* Found data gap: [2024-04-21 17:17:00-07:00] - [2024-04-21 17:24:00-07:00] (0:07:00s)

Retrieving data for gap: [2024-04-19 20:32:00-07:00] - [2024-04-19 20:37:59-07:00] (0:05:59s)
* Loading daily history: [2024-04-19] (America/Phoenix)
Retrieving data for gap: [2024-04-20 04:17:00-07:00] - [2024-04-20 04:33:59-07:00] (0:16:59s)
* Loading daily history: [2024-04-20] (America/Phoenix)
Retrieving data for gap: [2024-04-20 17:03:00-07:00] - [2024-04-20 17:09:59-07:00] (0:06:59s)
Retrieving data for gap: [2024-04-21 17:18:00-07:00] - [2024-04-21 17:23:59-07:00] (0:05:59s)
* Loading daily history: [2024-04-21] (America/Phoenix)

Retrieving backup event history
* Creating grid status data: [2024-04-19 01:31:00-07:00] - [2024-04-19 01:32:59-07:00] (0:01:59s)
* Creating grid status data: [2024-04-19 18:16:00-07:00] - [2024-04-19 18:16:59-07:00] (0:00:59s)
* Creating grid status data: [2024-04-19 20:32:00-07:00] - [2024-04-19 20:37:59-07:00] (0:05:59s)
* Creating grid status data: [2024-04-20 04:17:00-07:00] - [2024-04-20 04:33:59-07:00] (0:16:59s)
* Creating grid status data: [2024-04-20 11:33:00-07:00] - [2024-04-20 11:36:59-07:00] (0:03:59s)
* Creating grid status data: [2024-04-20 17:03:00-07:00] - [2024-04-20 17:09:59-07:00] (0:06:59s)
* Creating grid status data: [2024-04-21 17:18:00-07:00] - [2024-04-21 17:23:59-07:00] (0:05:59s)

Writing to InfluxDB
Updating InfluxDB
Done.
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 Exception occurred during processing of request from ('172.18.0.4', 50070)
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:45     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:45     return self._find_no_duplicates(name)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:45     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:45 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:45 
2024-04-21 17:24:45 During handling of the above exception, another exception occurred:
2024-04-21 17:24:45 
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:45     self.finish_request(request, client_address)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:45     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:45     self.handle()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:45     self.handle_one_request()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:45     method()
2024-04-21 17:24:45   File "/app/server.py", line 293, in do_GET
2024-04-21 17:24:45     alerts = pw.alerts()
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 484, in alerts
2024-04-21 17:24:45     data: dict = self.poll('/api/solar_powerwall') or {}
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:45     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:45     self._get_session()
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:45     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:45 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 Exception occurred during processing of request from ('172.18.0.4', 50084)
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:45     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:45     return self._find_no_duplicates(name)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:45     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:45 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:45 
2024-04-21 17:24:45 During handling of the above exception, another exception occurred:
2024-04-21 17:24:45 
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:45     self.finish_request(request, client_address)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:45     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:45     self.handle()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:45     self.handle_one_request()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:45     method()
2024-04-21 17:24:45   File "/app/server.py", line 343, in do_GET
2024-04-21 17:24:45     d = pw.system_status() or {}
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 650, in system_status
2024-04-21 17:24:45     payload: dict = self.poll('/api/system_status')
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:45     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:45     self._get_session()
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:45     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:45 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 Exception occurred during processing of request from ('172.18.0.4', 50086)
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:45     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:45     return self._find_no_duplicates(name)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:45     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:45 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:45 
2024-04-21 17:24:45 During handling of the above exception, another exception occurred:
2024-04-21 17:24:45 
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:45     self.finish_request(request, client_address)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:45     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:45     self.handle()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:45     self.handle_one_request()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:45     method()
2024-04-21 17:24:45   File "/app/server.py", line 252, in do_GET
2024-04-21 17:24:45     message: str = pw.strings(jsonformat=True) or json.dumps({})
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 333, in strings
2024-04-21 17:24:45     payload: dict = self.poll('/api/solar_powerwall') or {}
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:45     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:45     self._get_session()
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:45     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:45 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:45 Exception occurred during processing of request from ('172.18.0.4', 50050)
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:45     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:45     return self._find_no_duplicates(name)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:45     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:45 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:45 
2024-04-21 17:24:45 During handling of the above exception, another exception occurred:
2024-04-21 17:24:45 
2024-04-21 17:24:45 Traceback (most recent call last):
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:45     self.finish_request(request, client_address)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:45     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:45     self.handle()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:45     self.handle_one_request()
2024-04-21 17:24:45   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:45     method()
2024-04-21 17:24:45   File "/app/server.py", line 226, in do_GET
2024-04-21 17:24:45     message: str = pw.poll('/api/meters/aggregates', jsonformat=True)
2024-04-21 17:24:45   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:45     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:45     self._get_session()
2024-04-21 17:24:45   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:45     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:45 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:45 ----------------------------------------
2024-04-21 17:24:46 ----------------------------------------
2024-04-21 17:24:46 Exception occurred during processing of request from ('172.18.0.4', 50092)
2024-04-21 17:24:46 Traceback (most recent call last):
2024-04-21 17:24:46   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:46     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:46     return self._find_no_duplicates(name)
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:46     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:46 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:46 
2024-04-21 17:24:46 During handling of the above exception, another exception occurred:
2024-04-21 17:24:46 
2024-04-21 17:24:46 Traceback (most recent call last):
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:46     self.finish_request(request, client_address)
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:46     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:46     self.handle()
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:46     self.handle_one_request()
2024-04-21 17:24:46   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:46     method()
2024-04-21 17:24:46   File "/app/server.py", line 305, in do_GET
2024-04-21 17:24:46     d = pw.system_status() or {}
2024-04-21 17:24:46   File "/app/pypowerwall/__init__.py", line 650, in system_status
2024-04-21 17:24:46     payload: dict = self.poll('/api/system_status')
2024-04-21 17:24:46   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:46     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:46   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:46     self._get_session()
2024-04-21 17:24:46   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:46     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:46 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:46 ----------------------------------------
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 Exception occurred during processing of request from ('172.18.0.4', 37662)
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:50     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:50     return self._find_no_duplicates(name)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:50     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:50 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:50     self.finish_request(request, client_address)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:50     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:50     self.handle()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:50     self.handle_one_request()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:50     method()
2024-04-21 17:24:50   File "/app/server.py", line 252, in do_GET
2024-04-21 17:24:50     message: str = pw.strings(jsonformat=True) or json.dumps({})
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 333, in strings
2024-04-21 17:24:50     payload: dict = self.poll('/api/solar_powerwall') or {}
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:50     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:50     self._get_session()
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:50     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:50 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 Exception occurred during processing of request from ('172.18.0.4', 37692)
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:50     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:50     return self._find_no_duplicates(name)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:50     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:50 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:50     self.finish_request(request, client_address)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:50     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:50     self.handle()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:50     self.handle_one_request()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:50     method()
2024-04-21 17:24:50   File "/app/server.py", line 305, in do_GET
2024-04-21 17:24:50     d = pw.system_status() or {}
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 650, in system_status
2024-04-21 17:24:50     payload: dict = self.poll('/api/system_status')
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:50     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:50     self._get_session()
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:50     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:50 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 Exception occurred during processing of request from ('172.18.0.4', 37676)
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:50     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:50     return self._find_no_duplicates(name)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:50     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:50 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:50     self.finish_request(request, client_address)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:50     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:50     self.handle()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:50     self.handle_one_request()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:50     method()
2024-04-21 17:24:50   File "/app/server.py", line 229, in do_GET
2024-04-21 17:24:50     message: str = pw.poll('/api/system_status/soe', jsonformat=True)
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:50     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:50     self._get_session()
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:50     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:50 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 Exception occurred during processing of request from ('172.18.0.4', 37686)
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:50     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:50     return self._find_no_duplicates(name)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:50     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:50 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:50     self.finish_request(request, client_address)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:50     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:50     self.handle()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:50     self.handle_one_request()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:50     method()
2024-04-21 17:24:50   File "/app/server.py", line 343, in do_GET
2024-04-21 17:24:50     d = pw.system_status() or {}
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 650, in system_status
2024-04-21 17:24:50     payload: dict = self.poll('/api/system_status')
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:50     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:50     self._get_session()
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:50     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:50 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 Exception occurred during processing of request from ('172.18.0.4', 37664)
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 91, in _get_session
2024-04-21 17:24:50     self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in __getitem__
2024-04-21 17:24:50     return self._find_no_duplicates(name)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
2024-04-21 17:24:50     raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
2024-04-21 17:24:50 KeyError: "name='AuthCookie', domain=None, path=None"
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:50     self.finish_request(request, client_address)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:50     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:50     self.handle()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:50     self.handle_one_request()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:50     method()
2024-04-21 17:24:50   File "/app/server.py", line 226, in do_GET
2024-04-21 17:24:50     message: str = pw.poll('/api/meters/aggregates', jsonformat=True)
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:50     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:50     self._get_session()
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 100, in _get_session
2024-04-21 17:24:50     raise LoginError("Invalid Powerwall Login")
2024-04-21 17:24:50 pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 ----------------------------------------
2024-04-21 17:24:50 Exception occurred during processing of request from ('172.18.0.4', 50038)
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 537, in _make_request
2024-04-21 17:24:50     response = conn.getresponse()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 466, in getresponse
2024-04-21 17:24:50     httplib_response = super().getresponse()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/client.py", line 1375, in getresponse
2024-04-21 17:24:50     response.begin()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/client.py", line 318, in begin
2024-04-21 17:24:50     version, status, reason = self._read_status()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/client.py", line 279, in _read_status
2024-04-21 17:24:50     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socket.py", line 705, in readinto
2024-04-21 17:24:50     return self._sock.recv_into(b)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/ssl.py", line 1307, in recv_into
2024-04-21 17:24:50     return self.read(nbytes, buffer)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/ssl.py", line 1163, in read
2024-04-21 17:24:50     return self._sslobj.read(len, buffer)
2024-04-21 17:24:50 TimeoutError: The read operation timed out
2024-04-21 17:24:50 
2024-04-21 17:24:50 The above exception was the direct cause of the following exception:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
2024-04-21 17:24:50     resp = conn.urlopen(
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 847, in urlopen
2024-04-21 17:24:50     retries = retries.increment(
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 470, in increment
2024-04-21 17:24:50     raise reraise(type(error), error, _stacktrace)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/util/util.py", line 39, in reraise
2024-04-21 17:24:50     raise value
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 793, in urlopen
2024-04-21 17:24:50     response = self._make_request(
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 539, in _make_request
2024-04-21 17:24:50     self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 370, in _raise_timeout
2024-04-21 17:24:50     raise ReadTimeoutError(
2024-04-21 17:24:50 urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='192.168.1.6', port=443): Read timed out. (read timeout=5)
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 78, in _get_session
2024-04-21 17:24:50     r = self.session.post(url, data=pload, verify=False, timeout=self.timeout)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 637, in post
2024-04-21 17:24:50     return self.request("POST", url, data=data, json=json, **kwargs)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
2024-04-21 17:24:50     resp = self.send(prep, **send_kwargs)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
2024-04-21 17:24:50     r = adapter.send(request, **kwargs)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 532, in send
2024-04-21 17:24:50     raise ReadTimeout(e, request=request)
2024-04-21 17:24:50 requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='192.168.1.6', port=443): Read timed out. (read timeout=5)
2024-04-21 17:24:50 
2024-04-21 17:24:50 During handling of the above exception, another exception occurred:
2024-04-21 17:24:50 
2024-04-21 17:24:50 Traceback (most recent call last):
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 683, in process_request_thread
2024-04-21 17:24:50     self.finish_request(request, client_address)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 360, in finish_request
2024-04-21 17:24:50     self.RequestHandlerClass(request, client_address, self)
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/socketserver.py", line 747, in __init__
2024-04-21 17:24:50     self.handle()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 433, in handle
2024-04-21 17:24:50     self.handle_one_request()
2024-04-21 17:24:50   File "/usr/local/lib/python3.10/http/server.py", line 421, in handle_one_request
2024-04-21 17:24:50     method()
2024-04-21 17:24:50   File "/app/server.py", line 229, in do_GET
2024-04-21 17:24:50     message: str = pw.poll('/api/system_status/soe', jsonformat=True)
2024-04-21 17:24:50   File "/app/pypowerwall/__init__.py", line 202, in poll
2024-04-21 17:24:50     payload = self.client.poll(api, force, recursive, raw)
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 182, in poll
2024-04-21 17:24:50     self._get_session()
2024-04-21 17:24:50   File "/app/pypowerwall/local/pypowerwall_local.py", line 83, in _get_session
2024-04-21 17:24:50     raise ConnectionError(err)
2024-04-21 17:24:50 ConnectionError: Unable to connect to Powerwall at https://192.168.1.6: HTTPSConnectionPool(host='192.168.1.6', port=443): Read timed out. (read timeout=5)
2024-04-21 17:24:50 ----------------------------------------

from pypowerwall.

jgleigh avatar jgleigh commented on July 18, 2024

Just noticed something...looks like my Gateway rebooted at 17:18 on 4/21. Not sure why. I'm going to keep an eye on that to see if my Gateway is starting to act up.

{
"din": "1232100-00-E--TG121188000GLX",
"start_time": "2024-04-21 17:18:53 +0800",
"up_time_seconds": "38h32m37.752494324s",
"is_new": false,
"version": "24.4.0 0fe780c9",
"git_hash": "0fe780c991e052023349431b3c539429d1db036c",
"commission_count": 0,
"device_type": "teg",
"teg_type": "unknown",
"sync_type": "v2.1",
"cellular_disabled": false,
"can_reboot": true
}

from pypowerwall.

spoonwzd avatar spoonwzd commented on July 18, 2024

I was gonna say, my console looked the same when I was doing some core maintenance at the weekend that affected connectivity. Read timed out. (read timeout=5) is the clue.

from pypowerwall.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.