You are here

Overall architecture

Kagami house control system architecture

Slave

https://github.com/JSkrat/kagami-house-usb2nrf

Todo list

  • Add encryption
  • Add counter of failed decryption to rf statistics
  • Make firmware stm32-compatible
  • Remove unnecessary address transactions from/to transceiver
  • Make slaves response at same predefined address to avoid receive address transaction to transceiver at master (only in normal slave mode, not in advertisement)
  • Alpha version of light control modules: PCB

Gateway

https://github.com/JSkrat/kagami-house-nrf-gateway

Possessions

  • It has a registry of reachable devices. (devhub uses that)
  • It has a queue per transmitter.
  • It has an asynchronous socket interface for the devhub.
  • It communicates to the hardware transmitter (or usb2nrf master device) directly.

Actions

  • It periodically generates heartbeat requests (RF statistics) for all the devices and forms online/offline events for the devhub (for all the device units, but unit 0)
  • It traces the rf statistics of every device to generate events like “rebooted” or to detect potential tampering.
  • It manages encryption keys
  • It listens for a devices in advertisement mode, connects them to itself and generates event about that
  • It has to convert the device responses to a standard format to isolate different protocols

Devhub

  • It has a cache of all readable channels, by device (actually, unit) uid, isolating the control program from the network connectivity.
  • It can connect to multiple gateways simultaneously.
  • It regularly updates readable channel cache values from all the gateways.

Redis

DB0 represents all units known to DevHub. It has two kinds of values:

  • [UID] is unit availability (0 — offline)
  • [UID.FNo] is a function value. Either readonly or writeonly.

Control

It has somehow to control all the devices <_>

 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <b> <i> <s> <u> <em> <strong> <sub> <sup> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
2 - 14 =
Solve this simple math problem and enter the result. "-" means plus. E.g. for 1-3, enter 4.