https://github.com/dapi/rovos_broker
TCP-HTTP Broker for IoT machines (ROVOS chairs)
https://github.com/dapi/rovos_broker
Last synced: 8 months ago
JSON representation
TCP-HTTP Broker for IoT machines (ROVOS chairs)
- Host: GitHub
- URL: https://github.com/dapi/rovos_broker
- Owner: dapi
- Created: 2019-12-20T08:28:52.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-05-05T07:34:09.000Z (about 5 years ago)
- Last Synced: 2025-05-29T19:32:24.509Z (about 1 year ago)
- Language: Ruby
- Homepage:
- Size: 97.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rovos TCP-HTTP брокер.
Предоствляет HTTP REST API для общения с вендинговыми аппаратами компании Rovos (в частности массажными креслами), подключенными по постоянному TCP-соединению.
# Запуск сервера
> bundle exec rackup
# Команды
## Состояние брокера
> curl http://localhost:8080/
## Сколько и какие машины в подключении
> curl http://localhost:8080/machines/
## Получить статус машины (время последней активности)
> curl http://localhost:8080/machines/:id
Например:
> curl http://localhost:8080/machines/100020003
## Изменить режим (состояние) работы машины
> curl -XPOST http://localhost:8080/machines/100020003?state=СОСТОЯНИЕ&work_time=ВРЕМЯ________В___МИНУТАХ
Например включить машину в режим "Стандартный массаж" на 2 минуты:
> curl -XPOST http://localhost:8080/machines/100020003?state=2&work_time=4
## Режимы работы машины
* 0 - Аппарат загружается
* 1 - Кресло в режиме ожидания команды
* 2 - Стандартный массаж (на указанное количество времени)
* 3 - Не известный
* 4 - Запрос состояния вендинговой машины
* 5 - Разбудить тело (зарезервированная функция)
* 6 - Передача Ци и Крови (зарезервированная функция)
* 7 - Диастола (зарезервированная функция)
* 8 - Массаж талии (зарезервированная функция)
* 9 - Массаж шеи (зарезервированная функция)
* 255 - Сброс (в режиме сброса). Сбрасывает оставшееся время (`elapsed_time`)
если оно было закинуто в 65536. Не влияет на уже запущенную машину.
## Установка systemd-демона на боемов
> sudo bundle exec foreman export --app rovos-broker --user wwwuser systemd /etc/systemd/system
## Ограничение доступа
Доступ огранчивается на уровне фронт-веб-сервера. Например через индивидуальный сертификат на caddy:
См пример генерации сертификара в репозитории venpay.ru
В `Caddyfile`:
```
broker.venpay.ru {
log /tmp/caddy_broker.venpay.ru.access.log
errors /tmp/caddy_broker.venpay.ru.error.log
gzip
tls /home/wwwuser/venpay.ru/shared/config/certs/broker.venpay.ru.bundle.crt /home/wwwuser/venpay.ru/shared/config/certs/broker.venpay.ru.key {
clients /home/wwwuser/venpay.ru/shared/config/certs/ca.crt
max_certs 10
}
header / -Server
proxy / http://localhost:8080 {
transparent
websocket
}
}
```
## TODO
* https://www.codebasehq.com/blog/ruby-threads-queue