Hi,
Hi,
i just downloaded/installed Adafruit_IO Python (3.7.5 on Win 10) library to give it a first try on Adafruit IO platform.
used the example 'data.py', added user and key and ran it. I came across the date issue
Traceback (most recent call last):
File "data.py", line 39, in
So it say, date is in the future. Given the fact that I live in EU (Belgium) and platform is most likely in US, I can understand this date issue but what should be used to overcome this? UTC time? Or is there another way around?
BTW: in the random_data.py there user and key from Brent are still there. :-(
Adafruit_IO.errors.RequestError: Adafruit IO request failed: 422 Unprocessable Entity - request failed - Record invalid. Failed to save data to mengrie/feeds/temperature. data created_at may not be in the future
@MarcEngrie - Please check if your computer's system date-time is set to an accurate date-time.
Hi Brent,
yes my computer has the right time and is sync via ntp with time.windows.com (see attachment)

@MarcEngrie There may be a small amount of drift between your server time and our server time. We allow no drift on created_at.
I'm going to create a patch for this issue, but you may want to try changing the data.py example from
data_list = [Data(value=50, created_at=today), Data(value=33, created_at=yesterday)]
to
data_list = [Data(value=50), Data(value=33)]
Indeed, that is working. Nut also this is working data_list = [Data(value=50), Data(value=33, created_at=yesterday)] The problem is for sure related to the 'today'-value. using today = datetime.datetime.now().isoformat() print(today) give me the exact current local date and time. Eg: 2020-06-03T18:49:36.103297 So, I change that line to today = datetime.datetime.utcnow().isoformat() print(today) an that give me a date/time 2 hours earlier Eg: 2020-06-03T16:53:47.841466 But also that fails with the same error. So there is a bit more than a drift that causes the problem. Just an idea, and not knowing how the code looks, but maybe all timestamps in Adafruit IO should be in UTC timezone to overcome these issues? Or timezone should be sent aswell to Adafruit IO so you can adjust based on timezone received and timezone of cloudserver?
Just to help you out finding the right solution, I did the following now = datetime.datetime.utcnow() - timedelta(hours=4) today = now.isoformat() print(today) This will work now = datetime.datetime.utcnow() - timedelta(hours=3) today = now.isoformat() print(today) This will fail. Of course in non-utc timezone (CEST = CET summertime = UTC +2), this works as well now = datetime.datetime.now() - timedelta(hours=6) today = now.isoformat() print(today) while (of course) this fails now = datetime.datetime.now() - timedelta(hours=5) today = now.isoformat() print(today) (so cloudserver is based in East-Canada?)
Unable to replicate, closing.