Open jerryneedell opened 5 years ago
I realize the response was big - 8308 bytes -- is there a limit?
hmm -- I changed "feeds" to "groups" and it works fine.
In this case there seem to be 2 responses one of 8308 byte then one of 5030 bytes and it is happy parsing the second one
SPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 8308 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 4308 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 308 bytes available
Reading 308 bytes from ESP socket with status 4
ESPSocket: 5030 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 1030 bytes available
Reading 1030 bytes from ESP socket with status 4
ESPSocket: 0 bytes available
[{'updated_at': '2019-01-28T17:51:10.944124Z', FULL RESPONSE deleted to save space'}]
OK
Good question. I didn’t even realize there was a limit before you found this. I think ideally it should attempt to grab it in chunks and assemble it if that’s possible.
i'm not sure there is a limit, but it looked suspicious.
the socket/requests code should do it all for you - in chunks o' 4K - we've downloaded 250KB bitmaps so that works for sure :)
so any idea what failed?
sorry no :/ i haven't run this demo yet - perhaps in requests
or esp32spi
have it dump the socket buffer?
OK - no problem -- I misunderstood :-) Will keep looking into it.
np - its a mystery - and maybe i have a bug too...not sure :D also json parser may not be so great ;)
I can take a closer look this evening. I don’t have my computer with me at the moment.
Ah yeah, ok. I think @ladyada is correct about the JSON parser. This looks like the error message is syntax error in JSON
, which means that it probably wan't valid JSON (this can be verified by running it through a JSON parser online). Some JSON parsers can still parse imperfect JSON, but I'm guessing ujson (the library used) is meant to be small so doesn't have really any margin of error. The thing is, there's not much we can really do in this library. Perhaps write out own parser that handles imperfect json in CP? If you want to take a look at the source of ujson, you can see it at https://github.com/adafruit/circuitpython/blob/master/extmod/modujson.c
As a follow-up after looking at the code, it doesn't appear to handle single quotes, or capitalized True, False, Null, etc.
Just noticed this in the comments which I formatted a little better.
"The JSON specification is at http://www.ietf.org/rfc/rfc4627.txt The parser here will parse any valid JSON and return the correct corresponding Python object. It allows through a superset of JSON, since it treats commas and colons as "whitespace", and doesn't care if brackets/braces are correctly paired. It will raise a ValueError if the input is outside its specs."
So yeah, it probably was outside its specs.
FYI - an update -- I have been running the "cheerlights" demo for a long time (>24 hours) but I notice that it had stopped updating so I connected to the REPL and saw that it was connecting but reporting JSON syntax errors! I had not seen these with this demo before. However, rebooting the system made the problem go away - it connected and is updating normally again. That makes no sense to me... I hope to have some time to dig into this this weekend. Something fishy is going on....
the socket/requests code should do it all for you - in chunks o' 4K - we've downloaded 250KB bitmaps so that works for sure :)
did you use this esp32 firmware? https://cdn-learn.adafruit.com/assets/assets/000/071/843/original/NINA_W102_Feb_17_2018.bin?1550892535
yep thats what we use
yep thats what we use
ok, did you test how fast is it? i test it about 160KB/s ,but not very stable.
yes its not stable compared to a USB wifi adapter, its meant for simple microcontrollers!
yes its not stable compared to a USB wifi adapter, its meant for simple microcontrollers!
ok, how fast can it work stable.
there's no speed relation, it is a completely different system of using the internet. really, we recommend using a USB wifi adapter if you are on linux
there's no speed relation, it is a completely different system of using the internet. really, we recommend using a USB wifi adapter if you are on linux
ok...
@jerryneedell is this resolvedish?
I think so -- At least I have not seen it in a long time -- Closing...
oops -- closed too soon -- this issue is still present
Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 4.0.1-5-g63b253c33 on 2019-05-24; Adafruit PyPortal with samd51j20
>>> import aio_test
ESP32 SPI webclient test
Get data...Connection status
Conn status: 0
Connection status
Conn status: 0
Connect to AP b'Needell Airport' b'REDACTED'
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 3
Connection status
Conn status: 3
*** Get host by name
*** Get socket
Allocated socket #0
*** Socket connect mode 2
*** Open socket
Writing: b'GET /api/v2/jerryn/feeds HTTP/1.0\r\n'
Writing: b'Host: io.adafruit.com\r\n'
Writing: b'User-Agent: Adafruit CircuitPython\r\n'
Writing: b'X-AIO-KEY'
Writing: b': '
Writing: b'REDACTED'
Writing: b'\r\n'
Writing: b'\r\n'
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 15421 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 11421 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 7421 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 3421 bytes available
Reading 3421 bytes from ESP socket with status 4
ESPSocket: 0 bytes available
Failed to get data, retrying
syntax error in JSON
Reset ESP32
Get data...Connection status
Conn status: 0
Connection status
here is the test code
import time
import board
import busio
from digitalio import DigitalInOut
from adafruit_esp32spi import adafruit_esp32spi
from adafruit_esp32spi import adafruit_esp32spi_wifimanager
print("ESP32 SPI webclient test")
# Get wifi details and more from a settings.py file
try:
from secrets import secrets
except ImportError:
print("WiFi settings are kept in secrets.py, please add them there!")
raise
esp32_cs = DigitalInOut(board.ESP_CS)
esp32_ready = DigitalInOut(board.ESP_BUSY)
esp32_reset = DigitalInOut(board.ESP_RESET)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, None)
esp._debug=True
while True:
try:
print("Get data...", end='')
response = wifi.get(
"https://io.adafruit.com/api/v2/"+secrets['aio_username']+"/feeds",
headers={"X-AIO-KEY":secrets['aio_key']})
print(response.json())
response.close()
print("OK")
except (ValueError, RuntimeError) as e:
print("Failed to get data, retrying\n", e)
wifi.reset()
continue
response = None
time.sleep(15)
as before - replacing "feeds" with "groups" works OK.
retested after merging #44 and it still fails as above.
also noticed that while using "groups" usually works, it does occasionally fail as well.
what do you see when you print the text out before json parsing?
I'm not sure what you are looking for... what do you want me to print out?
response.text
or somethin :)
OK -- added print(response.text) before print(response.json()) it ends with
[],"feed_status_changes":[{"created_at":"2019-04-19T20:12:10Z","from_status":"online","to_status":"offline
clearly truncated full output
Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 4.0.1-5-g63b253c33 on 2019-05-24; Adafruit PyPortal with samd51j20
>>> import aio_test
ESP32 SPI webclient test
Get data...Connection status
Conn status: 0
Connection status
Conn status: 0
Connect to AP b'Needell Airport' b'browndog'
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Failed to connect, retrying
('No such ssid', b'Needell Airport')
Connection status
Conn status: 1
Connect to AP b'Needell Airport' b'browndog'
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 1
Connection status
Conn status: 3
Connection status
Conn status: 3
*** Get host by name
*** Get socket
Allocated socket #0
*** Socket connect mode 2
*** Open socket
Writing: b'GET /api/v2/jerryn/feeds HTTP/1.0\r\n'
Writing: b'Host: io.adafruit.com\r\n'
Writing: b'User-Agent: Adafruit CircuitPython\r\n'
Writing: b'X-AIO-KEY'
Writing: b': '
Writing: b'94cce1f27dd2caac8da3ed48571946a147be82ee'
Writing: b'\r\n'
Writing: b'\r\n'
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 0 bytes available
ESPSocket: 8324 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 4324 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 324 bytes available
Reading 324 bytes from ESP socket with status 4
ESPSocket: 16384 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 12384 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 8384 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 4384 bytes available
Reading 4000 bytes from ESP socket with status 4
ESPSocket: 384 bytes available
Reading 384 bytes from ESP socket with status 4
ESPSocket: 1514 bytes available
Reading 1514 bytes from ESP socket with status 4
ESPSocket: 0 bytes available
*** Closing socket #0
[{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":648833,"name":"pitemperature","description":"temperature from pi3-1","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"71.04937841796875","created_at":"2017-02-19T17:34:52Z","updated_at":"2019-05-29T10:22:16Z","status_notify":true,"status_timeout":60,"status":"online","key":"pitemperature","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-13T00:32:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-13T00:28:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"},{"created_at":"2019-05-12T17:31:08Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-12T15:32:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"},{"created_at":"2019-05-03T14:18:20Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-03T14:12:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":648834,"name":"pihumidity","description":"humidity from pi3-1","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"41.863006591796875","created_at":"2017-02-19T17:35:12Z","updated_at":"2019-05-29T10:22:17Z","status_notify":true,"status_timeout":60,"status":"online","key":"pihumidity","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-13T00:32:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-13T00:28:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"},{"created_at":"2019-05-12T17:31:08Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-12T15:32:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"},{"created_at":"2019-05-03T14:18:20Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-03T14:12:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":648872,"name":"basementtemperature","description":"DHT22 in basement","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"57.940039062500006","created_at":"2017-02-19T21:19:33Z","updated_at":"2019-05-29T10:22:48Z","status_notify":true,"status_timeout":60,"status":"online","key":"basementtemperature","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-15T06:23:20Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-14T08:44:12Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"},{"created_at":"2019-05-06T23:00:21Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T19:48:10Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"},{"created_at":"2019-05-06T17:38:43Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T13:48:09Z","from_status":"online","to_status":"offline","email_sent":true,"email_sent_to":"jerryneedell@gmail.com"}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":648873,"name":"basementhumidity","description":"DHT22 in basement","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"60.3889575856284","created_at":"2017-02-19T21:19:54Z","updated_at":"2019-05-29T10:22:48Z","status_notify":false,"status_timeout":60,"status":"online","key":"basementhumidity","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-15T06:23:20Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-14T08:44:12Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T23:00:22Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T19:48:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T17:38:43Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T13:48:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":701136,"name":"eco2","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"881","created_at":"2017-08-12T20:54:38Z","updated_at":"2019-05-29T10:24:00Z","status_notify":false,"status_timeout":60,"status":"online","key":"eco2","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-12T17:32:11Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-12T15:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-02T09:36:10Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-01T17:56:11Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T16:55:06Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T13:52:11Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":717817,"name":"humidity","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"28.5","created_at":"2017-10-08T19:00:56Z","updated_at":"2019-02-27T21:48:09Z","status_notify":false,"status_timeout":60,"status":"offline","key":"humidity","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-02-27T21:48:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-02-27T20:02:11Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":744349,"name":"tvoc","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"275","created_at":"2017-12-27T11:14:38Z","updated_at":"2019-05-29T10:24:00Z","status_notify":false,"status_timeout":60,"status":"online","key":"tvoc","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-12T17:32:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-12T15:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-02T09:36:11Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-01T17:56:11Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T16:55:14Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T13:52:11Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":748434,"name":"Digital","description":"","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"0","created_at":"2018-01-07T13:22:33Z","updated_at":"2019-05-11T18:20:14Z","status_notify":false,"status_timeout":60,"status":"offline","key":"digital","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-11T18:20:14Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-11T17:16:36Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T15:00:21Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T13:58:25Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T12:52:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-06T11:50:07Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":753384,"name":"rfm69temperature","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"60","created_at":"2018-01-20T13:56:43Z","updated_at":"2019-05-29T10:17:30Z","status_notify":false,"status_timeout":60,"status":"online","key":"rfm69temperature","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-26T10:43:22Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-25T13:40:14Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-24T18:52:47Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-24T16:00:27Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-19T09:18:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-19T08:48:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":817882,"name":"freeheep","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"111168","created_at":"2018-06-07T10:00:54Z","updated_at":"2019-04-04T02:48:09Z","status_notify":false,"status_timeout":60,"status":"offline","key":"freeheep","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-04-04T02:48:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-04T01:44:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-03-13T13:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-03-13T12:29:08Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-01-29T03:48:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-01-29T02:44:45Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":824642,"name":"rfm69humidity","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"58","created_at":"2018-06-20T17:54:20Z","updated_at":"2019-05-29T10:17:30Z","status_notify":false,"status_timeout":60,"status":"online","key":"rfm69humidity","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-26T10:43:22Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-25T13:40:14Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-24T18:52:47Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-24T16:00:27Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-19T09:18:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-19T08:48:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":830701,"name":"hose","description":"button to tun on/off hose","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"OFF","created_at":"2018-07-01T14:48:38Z","updated_at":"2018-11-20T00:19:58Z","status_notify":false,"status_timeout":60,"status":"offline","key":"hose","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":841736,"name":"Counter","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"224","created_at":"2018-07-16T19:38:14Z","updated_at":"2018-12-26T15:42:26Z","status_notify":false,"status_timeout":60,"status":"offline","key":"counter","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[{"id":187,"feed_id":841736,"expire_at":null,"token":"a8FMM57fzfbXJusFhmiFiWt5E6E8","enabled":true,"active":true,"use_count":363,"data_rate_limit":null,"feed_key":"counter","hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/a8FMM57fzfbXJusFhmiFiWt5E6E8","raw_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/a8FMM57fzfbXJusFhmiFiWt5E6E8/raw","notify_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/a8FMM57fzfbXJusFhmiFiWt5E6E8/notify"}],"feed_status_changes":[]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":877499,"name":"test","description":null,"license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"8765","created_at":"2018-09-19T20:38:18Z","updated_at":"2019-04-04T02:48:09Z","status_notify":false,"status_timeout":60,"status":"offline","key":"test","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[{"id":163,"feed_id":877499,"expire_at":null,"token":"3o7zCNByWr8zsy1VcwSP53qUZxqY","enabled":true,"active":true,"use_count":3353,"data_rate_limit":null,"feed_key":"test","hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/3o7zCNByWr8zsy1VcwSP53qUZxqY","raw_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/3o7zCNByWr8zsy1VcwSP53qUZxqY/raw","notify_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/3o7zCNByWr8zsy1VcwSP53qUZxqY/notify"}],"feed_status_changes":[{"created_at":"2019-04-04T02:48:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-04T01:44:12Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-03-17T02:32:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-03-17T01:28:22Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-03-15T20:32:11Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-03-15T19:17:35Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":897244,"name":"ttntemperature","description":"","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"67.4638671875","created_at":"2018-10-23T11:13:23Z","updated_at":"2019-05-29T10:22:14Z","status_notify":false,"status_timeout":60,"status":"online","key":"ttntemperature","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-05-10T14:50:23Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-10T14:00:21Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-10T12:48:57Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-09T09:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-07T13:33:45Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-07T07:20:14Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":897326,"name":"ttnhumidity","description":"","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"42.2119140625","created_at":"2018-10-23T13:46:49Z","updated_at":"2019-05-29T10:22:14Z","status_notify":false,"status_timeout":60,"status":"online","key":"ttnhumidity","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[{"id":756,"feed_id":897326,"expire_at":null,"token":"qDQJJjY2J5dKk8sLtu2RawgKpt8L","enabled":true,"active":true,"use_count":null,"data_rate_limit":null,"feed_key":"ttnhumidity","hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/qDQJJjY2J5dKk8sLtu2RawgKpt8L","raw_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/qDQJJjY2J5dKk8sLtu2RawgKpt8L/raw","notify_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/qDQJJjY2J5dKk8sLtu2RawgKpt8L/notify"}],"feed_status_changes":[{"created_at":"2019-05-10T14:50:23Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-10T14:00:21Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-10T12:48:57Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-09T09:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-07T13:33:39Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-07T07:20:14Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":955056,"name":"argon_temperature","description":"temperature from particle Argon","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"70.4053","created_at":"2018-12-29T21:35:55Z","updated_at":"2019-05-29T10:23:02Z","status_notify":false,"status_timeout":60,"status":"online","key":"argon-temperature","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[{"id":221,"feed_id":955056,"expire_at":null,"token":"cpnHhNy5XjP6okCXhdY2HBm2qqC6","enabled":true,"active":true,"use_count":21932,"data_rate_limit":null,"feed_key":"argon-temperature","hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/cpnHhNy5XjP6okCXhdY2HBm2qqC6","raw_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/cpnHhNy5XjP6okCXhdY2HBm2qqC6/raw","notify_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/cpnHhNy5XjP6okCXhdY2HBm2qqC6/notify"}],"feed_status_changes":[{"created_at":"2019-05-10T20:21:33Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-10T13:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-03T10:49:11Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-03T07:48:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T16:55:19Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T16:28:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":955057,"name":"argon_humidity","description":"humidity from particle argon","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"46.5607","created_at":"2018-12-29T21:36:24Z","updated_at":"2019-05-29T10:23:21Z","status_notify":false,"status_timeout":60,"status":"online","key":"argon-humidity","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[{"id":220,"feed_id":955057,"expire_at":null,"token":"P3Uz35jg6dqL5CKrAgFSWDoYppUt","enabled":true,"active":true,"use_count":21819,"data_rate_limit":null,"feed_key":"argon-humidity","hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/P3Uz35jg6dqL5CKrAgFSWDoYppUt","raw_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/P3Uz35jg6dqL5CKrAgFSWDoYppUt/raw","notify_hook_url":"https://io.adafruit.com/api/v2/webhooks/feed/P3Uz35jg6dqL5CKrAgFSWDoYppUt/notify"}],"feed_status_changes":[{"created_at":"2019-05-10T20:21:54Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-10T13:32:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-03T10:49:32Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-05-03T07:48:10Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T16:55:39Z","from_status":"offline","to_status":"online","email_sent":null,"email_sent_to":null},{"created_at":"2019-04-20T16:28:09Z","from_status":"online","to_status":"offline","email_sent":null,"email_sent_to":null}]},{"username":"jerryn","owner":{"id":20772,"username":"jerryn"},"id":977746,"name":"rfm69vbat","description":"battery monitor for rfm69","license":null,"history":true,"enabled":true,"visibility":"private","unit_type":null,"unit_symbol":null,"last_value":"0","created_at":"2019-01-28T17:51:10Z","updated_at":"2019-04-19T20:12:10Z","status_notify":false,"status_timeout":4320,"status":"offline","key":"rfm69vbat","group":{"id":110425,"key":"default","name":"Default","user_id":20772},"groups":[{"id":110425,"key":"default","name":"Default","user_id":20772}],"feed_webhook_receivers":[],"feed_status_changes":[{"created_at":"2019-04-19T20:12:10Z","from_status":"online","to_status":"offline
Failed to get data, retrying
syntax error in JSON
Reset ESP32
Get data...Connection status
Conn status: 0
Connection status
yeah looks like its incomplete - dunno why tho
@jerryneedell Have you made any progress on this?
@ladyada it might be related to this: https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/issues/184
I was trying to test @brentru adafruit_io library and started getting jason errors when trying to use his "get_all_feeds" function -- I then tried the same "get" just using esp32spi (via wifimanager) and get the same error so there seems to be an underlying issue in esp32spi
here is the test case
here is the log -- with some repeated lines removed