Code Monkey home page Code Monkey logo

Comments (6)

brentru avatar brentru commented on June 27, 2024

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.

from adafruit_io_python.

MarcEngrie avatar MarcEngrie commented on June 27, 2024

Hi Brent,
yes my computer has the right time and is sync via ntp with time.windows.com (see attachment)
Annotation 2020-05-26 162320

from adafruit_io_python.

brentru avatar brentru commented on June 27, 2024

@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)]

from adafruit_io_python.

MarcEngrie avatar MarcEngrie commented on June 27, 2024

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?

from adafruit_io_python.

MarcEngrie avatar MarcEngrie commented on June 27, 2024

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?)

from adafruit_io_python.

brentru avatar brentru commented on June 27, 2024

Unable to replicate, closing.

from adafruit_io_python.

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.