Skip to content
nxtinno

Prípadová štúdia

Loxone integračná platforma pre správu vstupu

Návrh a vývoj integračnej platformy, ktorá prenáša rezervácie a obsadenosť izieb do vstupného systému Loxone: porovnáva želaný stav so skutočným, pracuje s odolnými úlohami a monitoringom a prístupy odoberá bezpečne.

  • TypeScript
  • Express
  • Redis
  • BullMQ
  • Loxone

Kontext

Ubytovacia prevádzka potrebovala, aby stav prístupov hostí v Loxone zodpovedal aktuálnym rezervačným dátam – bez ručného vytvárania kódov, bez zabudnutých prístupov k izbám a bez opakovaných slepých zápisov do systému budovy.

Výzva

Rezervácie, obsadenosť, obdobia platnosti, PIN kódy, stav izieb a používateľské záznamy v Loxone sa museli bezpečne zosúladiť. Keďže systém ovplyvňuje fyzický prístup, neúspešné zápisy, zastarané úlohy, chýbajúce dáta a duplicitné aktualizácie sa nedali brať ako bežný šum synchronizácie.

Obmedzenia

  • zmeny prístupov musia byť jednoznačné, dohľadateľné a vratné
  • chýbajúce alebo neisté rezervačné dáta nesmú predĺžiť prístup
  • nezmenený stav izby nesmie spustiť duplicitný zápis do Loxone
  • jedna problémová izba nesmie zablokovať celý synchronizačný beh
  • operátori potrebujú prehľad o stave synchronizácie, incidentoch, frontách a zlyhaných izbách

Prístup

  • Načítavanie dát z rezervačného systému som oddelil od zápisov do Loxone, aby medzi pravidelným sťahovaním dát a zmenou prístupov bola jasná hranica.
  • Pre každú izbu sa vypočíta želaný stav s jednoznačným odtlačkom (hashom) a úloha na jej zosúladenie sa zaradí do frontu, len keď sa stav naozaj zmení.
  • Želaný aj skutočne zapísaný stav, zámky izieb a výsledky zosúladenia sa ukladajú do Redisu, aby každý opakovaný pokus vychádzal z najnovších známych údajov.
  • Pre prevádzku som pripravil kontroly stavu, metriky, upozornenia, sledovanie incidentov, ručnú synchronizáciu, skúšobné behy bez zápisu a manažérske rozhranie.

Architektúra

Služba v TypeScripte načíta rezervácie a údaje o izbách, odvodí z nich želaný stav prístupov, ukladá stav a zámky do Redisu a cez BullMQ zaraďuje úlohy na zosúladenie jednotlivých izieb. Do Loxone zapisuje len nevyhnutné zmeny používateľov a virtuálnych vstupov a prevádzke poskytuje kontrolu stavu, monitoring, metriky, upozornenia, reporty a ručnú synchronizáciu.

Od toho, čo potrebujete, po systém, ktorý beží

V skratke: Systém sa skladá z jasných častí, aby mohol rásť a meniť sa bez toho, aby jedna oprava pokazila niečo iné.

  1. Čo potrebujeteZačíname od biznisového cieľa a jeho obmedzení.
  2. Jasné stavebné blokySystém sa rozdelí na časti, každá má jednu úlohu.
  3. Ako časti komunikujúDohodnuté prepojenia, aby sa jedna časť mohla meniť bez rozbitia ostatných.
  4. Kto vlastní ktoré dátaKaždý údaj má jeden domov, ktorému všetci veria.
  5. Spustené naostroBeží na spoľahlivých serveroch, nastavených vždy rovnako.
  6. Udržiavané v kondíciiMonitoring odhalí problém skôr, než ho zbadajú používatelia.

Kľúčové rozhodnutia

  • zosúladenie so želaným stavom namiesto slepých plánovaných zápisov
  • zapísaný stav sa uloží až po potvrdení úspechu z Loxone
  • zamykanie po izbách a preskakovanie zastaraných úloh, aby boli opakovania bezpečné
  • citlivé prístupové dáta mimo logov, metrík, reportov a dashboardov

Detaily sú anonymizované. Ďalší kontext je dostupný pod NDA.

Súvisiaca expertíza

Zaujíma vás, čo by AI dokázala vo vašej firme?

Prineste otázky – aj tie, ktoré vám pripadajú príliš základné. Za 30 minút si prejdeme, ako dnes pracujete, vyberieme úlohu s najväčším prínosom a načrtneme, čo by jej otestovanie obnášalo. Žiadne presviedčanie, žiadny záväzok.