RentalsLocksTimes are Eastern (the locks' local time). The code is added to every lock at the selected address.
Paste the API access token for this app (the one generated on the VPS). It's stored only on this device.
Every lock U-tec reports, with the address it is assigned to (● assigned · ○ not assigned · ✕ in the config but no longer reported by U-tec). Edit to add a property, assign a new lock, rename one or change the main lock — saved to the server, in effect immediately. To swap a lock: add the new one in the U-tec app, then here set the old one to "not used" and assign the new one.
A code is created on every lock at the address. "Pushed to U-tec" means the cloud accepted it; each lock confirms on its own — watch its bubble turn green (Side Door can take up to a minute). Tap a row for full details per lock. Del removes the code from all locks at the address.
Sync → appears in a row's popup on every lock that has the code, whenever the locks disagree (a lock lacks the code, or name/dates differ). Tap it on the lock whose values are right: the code is created on the locks that lack it and updated on the ones that differ. After a lock swap, that is how the new lock gets each current guest.
Change in a Temporary user's popup edits check-in and check-out; Done saves the new stay to every lock at the address that has the code. Name and code cannot be changed: remove the code and create a new one instead.
U-tec does not deliver queued changes when a lock reconnects. The server checks every lock every 5 minutes and re-sends anything still pending to locks that are online (at most once per 15 minutes per record). Re-sync now in a row's popup does it immediately.
Status, per door: state line (online, lock locked/unlocked/jammed, door closed/open on locks with a sensor), then the lock battery as U-tec's 1–5 level (1 red, 2 yellow), then one line per Ring camera at that door with its battery percent (low = red).
Ring cameras (battery and online on Status) come from Ring's private API through the unofficial ring-client-api library — the one behind Homebridge and Home Assistant. Ring can change it without notice; if that happens the Status page shows "Ring: …" and the locks are unaffected. To connect: on the server run npx -p ring-client-api ring-auth-cli, sign in with your Ring email, password and 2FA code, put the printed token in .env as RING_REFRESH_TOKEN and restart. Ring rotates the token on use; the server saves each new one in data/ring-token.json. Then assign cameras under Edit: to an address, and optionally to one of its locks — the camera then shows inside that door's block on Status.
Notifications are push messages to this phone about batteries: a lock gets an info at level 2 and a warning at level 1, repeated daily while it stays there; a Ring camera gets an info at 20% and a warning at 10%, repeated daily or on every further 1% drop; one "back to" message when a battery has been replaced. Enable per phone (the app must be opened from the Home Screen). For quiet hours use the phone's Sleep Focus.
Swipe left or right to move between Status, Users and Add.