Syncing RTC To Network Time
-
@abilio Great, amazing feature.
-
@abilio Apparently this is not yet implemented in 1.6.1.b1 ?
'1.6.1.b1' >>> os.uname() (sysname='LoPy', nodename='LoPy', release='1.6.1.b1', version='v1.8.6-450-g31ef5170 on 2017-02-15', machine='LoPy with ESP32', lorawan='1.0.0') >>> import machine >>> rtc = machine.RTC() >>> rtc.ntp_sync("pool.ntp.org") Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'RTC' object has no attribute 'ntp_sync' >>> >>> import time >>> time.timezone(3600) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'timezone' -
@rdixey, you are totally right and I must personally apologize for it. We forgot to merge it with master just to realize it after making the release (yeah, it happened twice :( ) . I will work so is included in the next firmware release.
-
@abilio These new rtc.ntp_sync() & time.timezone() functions work nicely with the 1.6.4.b1 update. They are very convenient!
I think there is a typo on the Utime doc page though. The first function listed there is utime.mktime([secs]), is this intended to be utime.gmtime()?
Thanks for the good work on this :)
-
@rdixey said in Syncing RTC To Network Time:
mktime
It is standard in many languages - google for it ;-)
-
@rdixey said in Syncing RTC To Network Time:
@abilio These new rtc.ntp_sync() & time.timezone() functions work nicely with the 1.6.4.b1 update. They are very convenient!
I think there is a typo on the Utime doc page though. The first function listed there is utime.mktime([secs]), is this intended to be utime.gmtime()?
Thanks for the good work on this :)
Its not working for me :-(
Can you post a working example?
Thanks!
-
@santorcuato I used it as a function in the boot.py of my LoPy. I had to set a delay to allow for the round trip to pool.ntp.org or else the function completed before ntp_sync and RTC remained = Unix Epoch . When I ping pool.ntp.org from my LAN the longest round trip was 630ms so I set sleep at 750ms. Less than that was too short.
def setRTCLocalTime(): rtc = machine.RTC() rtc.ntp_sync("pool.ntp.org") utime.sleep_ms(750) print('\nRTC Set from NTP to UTC:', rtc.now()) utime.timezone(-18000) print('Adjusted from UTC to EST timezone', utime.localtime(), '\n')Connecting to a LoPy... Connected >>> PYB: soft reboot RTC Set from NTP to UTC: (2017, 2, 26, 13, 18, 54, 225113, None) Adjusted from UTC to EST timezone (2017, 2, 26, 8, 18, 54, 6, 57) -
@livius Excuse Me :) I already know what mktime() is. And I don't need anyone to give me instructions on using google to find info. I was pointing out a typo in the doc's.
https://docs.pycom.io/pycom_esp32/library/utime.html
mktime is the first function in the list and is described as 'Convert a time expressed in seconds since the Epoch.' I believe this is an error and should be gmtime().
mktime is listed again as the third functon and described correctly.
gmtime() is not in the list at all.
-
@rdixey said in Syncing RTC To Network Time:
instructions
Without explanation that function is twice in doc - this was my first hint ;-)
-
@rdixey Ok, it seems interesting. Will try!
Thanks
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login