Hodiny reálného času (clock)
Zařízení STICKER udržuje přesný čas pomocí vnitřních hodin reálného času (RTC). Přesný čas je potřeba k časovému označení záznamů historie senzorů, událostí vyvolaných pravidly alarmů a stavových zpráv sítě.
Firmware v2.0.0
Ve firmwaru STICKER v2.0.0 přichází síťový čas z kteréhokoli rádia (LoRaWAN nebo P2P) a hodiny přijmou jen čas mezi 1. 1. 2024 a 1. 1. 2099.
Mechanismy synchronizace času
Hodiny RTC lze synchronizovat třemi nezávislými způsoby:
-
Síťový čas:
- Když se naváže spojení a zařízení od startu ještě nemá síťový čas (připojení k LoRaWAN, připojení v P2P nebo start s uloženým spárováním P2P), vyžádá si čas automaticky: v LoRaWAN standardním příkazem MAC
DeviceTimeReq, v P2P žádostí o čas na hub. - Žádost se přibalí k nejbližšímu běžnému uplinku, takže nestojí žádnou zprávu navíc.
- Po prvním síťovém čase se zařízení zhruba jednou týdně synchronizuje znovu a opravuje tak odchylku hodin při dlouhodobém nasazení v terénu.
- Když se naváže spojení a zařízení od startu ještě nemá síťový čas (připojení k LoRaWAN, připojení v P2P nebo start s uloženým spárováním P2P), vyžádá si čas automaticky: v LoRaWAN standardním příkazem MAC
-
Lokální synchronizace přes šifrované NFC:
- Při konfiguraci v aplikaci HARDWARIO Manager může telefon přes NFC automaticky nastavit hodiny RTC zařízení STICKER podle svého systémového času.
-
Příkazy shellu a vzdálené příkazy:
- Čas lze zjistit nebo ručně nastavit vývojářskými příkazy shellu, případně na dálku příkazem
clock_syncna fPort 85 přes rádio nebo NFC. clock_syncbez času požádá zařízení, aby si obstaralo síťový čas. Jakmile čas dorazí, zařízení odešle uplink Info s pořadovým číslem požadavku, takže hostitel odpověď spáruje se svým požadavkem.clock_syncs časem (přes NFC čas telefonu) nastaví hodiny RTC hned a odpoví výslednou zprávou Info.
- Čas lze zjistit nebo ručně nastavit vývojářskými příkazy shellu, případně na dálku příkazem
Čas mimo přijímané okno (1. 1. 2024 až 1. 1. 2099) zařízení odmítne, ať přijde odkudkoli.
Vývojářské příkazy shellu (clock)
Vývojářskými příkazy shellu hodiny RTC přímo zobrazíte a nastavíte (otevření konzole popisuje stránka Nastavení firmwaru):
| Příkaz | Popis |
|---|---|
clock get | Přečte a vypíše aktuální čas v UTC a unixovou časovou značku. |
clock set <unix> | Ručně nastaví hodiny RTC unixovou časovou značkou (sekundy od 1. 1. 1970). Přijímaný rozsah: od 1. 1. 2024 (1704067200) do 1. 1. 2099 (4070908800), tato hodnota už se nepřijme. |
clock sync | Vyžádá si síťový čas: v LoRaWAN DeviceTimeReq, v P2P žádostí na hub. Žádost odejde s nejbližším uplinkem a hodiny RTC se nastaví, jakmile dorazí odpověď. |