Skip to main content

Web server for NooLite.

Project description

# NooLite MQTT Web Server

Веб интерфейс для работы с noolite устройсвами через MQTT протокол

## Установка

Для установки проекта нужен Python 3.5+ и pip

### Из репозитория

В системе должны быть установлены:

- pip для третий версии python

- git

```bash
$ pip3 install git+https://bitbucket.org/AlekseevAV/noolite-mqtt-web-server
```

К примеру установка проекта на ArchLinux будет выглядеть следующим образом:
```bash
# Устанавливаем необходимые пакеты
$ pacman -S python python-pip git
# Устанавливаем noolite_api
$ pip3 install git+https://bitbucket.org/AlekseevAV/noolite-mqtt-web-server
```

### Из исходников

```bash
# Клонируем репозиторий
$ git clone https://bitbucket.org/AlekseevAV/noolite-mqtt-web-server

# Заходим в созданную папку репозитория
$ cd noolite-mqtt-web-server

# Устанавливаем сервер
$ python setup.py install
```

### Настройка MQTT плагина для Homebridge
```bash
# Устанавливаем MQTT плагин для homebridge
https://www.npmjs.com/package/homebridge-mqtt

# Добавляем в конфиг файл homebridge (config.json) параметры для подключения к MQTT
{
"platform": "mqtt",
"name": "mqtt",
"url": "mqtt://127.0.0.1",
"topic_type": "multiple",
"topic_prefix": "homebridge",
"username": "foo",
"password": "bar"
}

# Устанавливаем MQTT брокер mosquitto. в дальнейшем запускать не от админа
$ pacman -Sy
$ pacman -S mosquitto

# Настраиваем конфигурационный файл (mosquitto.conf)
nano /etc/mosquitto/mosquitto.conf

Добавляем строки
pid_file /var/run/mosquitto.pid
user alarm

# Добавляем кастомные характеристики
$ nano /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/gen/HomeKitTypes.js
$ cp HomeKitTypes-NooLite.js /usr/lib/node_modules/homebridge/node_modules/
```
## Характеристики NooLite для homebridge


1. Скопировать файл HomeKitTypes-NooLite.js из корня репозитория в /<путь до корня homebridge>/node_modules/hap-nodejs/lib/gen/

Например `cp HomeKitTypes-NooLite.js /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/gen/`

2. Добавить строчку `var HomeKitTypesCustom = require('./HomeKitTypes-NooLite');` в конец файла /<путь до корня homebridge>/node_modules/hap-nodejs/lib/gen/HomeKitTypes.js

Может быть здесь `nano /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/gen/HomeKitTypes.js `

## Запуск

```
$ noolite_web_server
```

## Автозапуск

Создаем `autorun.sh` файл:
```bash
cat <<end > /home/alarm/autorun.sh
#!/bin/sh -
avahi-daemon &
sleep 10
nohup mosquitto -c /etc/mosquitto/mosquitto.conf -d &>> /home/alarm/mosquitto_log&
sleep 15
nohup homebridge &>> /home/alarm/homebridge_log &
sleep 15
nohup noolite_serve &>> /home/alarm/http-api-server_log &
end
```

Добавляем в `autorun.sh` в автозапуск:
```bash
cat <<end > /etc/systemd/system/autorun@root.service
[Unit]
Description=Homebridge
After=network.target
After=avahi-daemon.service

[Service]
Type=forking
User=%i
ExecStart=/home/alarm/autorun.sh

[Install]
WantedBy=multi-user.target
end
```
## Работа

Веб-интерфейс находится по адресу <ip_устройства>:8080

### Структура

Страница | Описание
---------- | --------
`/` | Страница для наглядного приема-передачи команд на силовые блоки
`/api.htm` | Параметры GET запроса по этому адресу будут переданы на USB-адаптер


Команды к USB-адаптеру можно выполнять либо самостоятельно формируя GET запросы на `/api.htm` с необходимыми параметрами, передваемыми в URL,
либо используя форму отправки запроса на `/` (_данная форма формирует и выполняет GET запросы на `/api.htm` с указанными в ней параметрами_)

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
noolite-mqtt-webserver-0.1.2.tar.gz (504.5 kB) Copy SHA256 hash SHA256 Source None Nov 23, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page