Guardian Angel Icon 3D Orthodox Wood Carved.
Virgin Mary of Perpetual Help Wooden Carved icon Chriatian gift.
Guardian Angel
ICON WOOD JESUS CHRIST GOD THE LORD ALMIGHTY
Orthodox Wood Carved.
St Andrew the Apostle Icon 3D
Our Lady 3D Orthodox Wood Carved Icon.
Orthodox Wood Carved Icon
Guardian Angel
Guardian Angel

Настройка системы умного дома на базе ESP8266

 Статья еще редактируется 

SSH В boot разделе создаем файл с именем ssh 

 


# mkdir /mnt/boot_partition
# mount /dev/sdf1 /mnt/boot_partition
# touch /mnt/boot_partition/ssh
# umount /dev/sdf1

 

 Теперь при первом запуске у нас будет возможность подключиться к системе по ssh.

 Wi-Fi

Если необходимо подключение к локальной сети посредством wifi, создаем в boot разделе файл wpa_supplicant.conf  

# mkdir /mnt/boot_partition
# mount /dev/sdf1 /mnt/boot_partition
# nano /mnt/boot_partition/wpa_supplicant.conf
# umount /dev/sdf1

 

 Содержимое файла wpa_supplicant.conf


ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RU
network={
 ssid="your_ssid"
 psk="your_wifi_password"
}

 

 доступ по ssh.

сканирование сети посредством пингования всех ip адресов подсети.

# nmap -sn 192.168.0.1/24

 

Попробуем подключиться. Стандартная пара логин/пароль

# ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

успешно вошли по ssh на raspberry pi и теперь можем приступать к дальнейшей настройке системы. 

Установка Domoticz установим domoticz на наш одноплатник. Установка максимально простая

sudo curl -L install.domoticz.com | sudo bash

 

появится псевдографический диалог установки, в котором будет возможно выбрать порты и протоколы для веб интерфейса, директорию для установки. Лично я оставил исключительно HTTP на 80 порту проверяем, что демон domoticz поднялся:  

sudo service domoticz status

 

проверим, что web интерфейс доступен: http://192.168.0.120/ 

sudo service domoticz status

Watchdog 

Чтобы поднимать его автоматически, напишу watchdog с помощью cron.

#!/bin/sh
# /etc/scripts/check_domoticz_online.sh
# check domoticz
status=`curl -s -i -H "Accept: application/json" "http://localhost:8080/json.htm?type=devices&rid=1" | grep "status"| awk -F: '{print $2}'|sed 's/,//'| sed 's/\"//g'`
if [ $status ]
then
    echo "Domoticz has already been started"
else
    /home/pi/domoticz/domoticz.sh restart   
fi

 

 

sudo crontab -e -u root

 

каждые 5 минут будет запускаться скрипт, который проверит, работает ли Domoticz и перезапустит его, если это необходимо Настройка domoticz для работы с устройствами Теперь, когда система работает и готова к продолжению конфигурирования, можно настроить какие нибудь устройства. IP-камера Самое простое, что можно настроить в Domoticz - это камера. Для этого зайдем в web-интерфейсе в Setup -> More options -> Cameras -> Add camera. Вводим данные о своей камере. У меня возникли сложности с определением picture url, но они решились вот этим сервисом. После того, как мы сохранили новую камеру, у нас появилась строка в таблице с кнопками, чтобы посмотреть изображение или видео. https://skjm.com/icam/mjpeg_test.php MQTT-брокер собираюсь использовать Arduino с подключением к локальной сети. В рамках данной сети общепринятым стандартом общения между устройствами является MQTT - протокол, ориентированный для обмена сообщениями по принципу издатель-подписчик. Для передачи сообщений посредством данного протокола нам необходим MQTT-брокер - своеобразный хаб для сообщений. Domoticz и IoT устройства выступят в качестве клиентов сети, подключившись к брокеру. Установим свободный MQTT-брокер Mosquitto.

 

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key  
pi@raspberrypi:~ $ sudo apt-key add mosquitto-repo.gpg.key  
pi@raspberrypi:~ $ cd /etc/apt/sources.list.d/  
pi@raspberrypi:/etc/apt/sources.list.d/ $ sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
pi@raspberrypi:/etc/apt/sources.list.d/ $ cd
pi@raspberrypi:~ $ sudo apt-get install mosquitto mosquitto-clients
pi@raspberrypi:~ $ rm mosquitto-repo.gpg.key

 

Теперь Mosquitto установлен и работает. Мы можем подключиться к нему без аутентификации по адресу 0.0.0.0:1883. Таких настроек нам хватит на первое время. Domoticz - MQTT клиент Подключим domoticz к MQTT-брокеру. В web-интерфейсе Domoticz - Setup -> Hardware. Type - MQTT Client Gateway with LAN interface. Remote address - localhost Port - 1883 Data Timeout - disabled Username и password - оставляем пустыми до лучших времен Prevent loop - в большинстве случаев эту настройку следует оставить включенной, но в нашем случае мы собираемся подключать собственные устройства по MQTT и управлять ими внешними методами, поэтому мы выключим prevent loop и domoticz будет пересылать все обновления статусов устройств из domoticz/in в domoticz/out. Это нужно, тк внешнее управление осуществляется посредством публикаций в domoticz/in, а наши устройства слушают domoticz/out, и если domoticz не будет пересылать сообщения из in в out, то устройства не смогут узнать об обновлениях их статусов. Publish topic - топик, куда domoticz будет публиковать все обновления статусов. Для себя я оставил стандартно - out, и domoticz публикует в топик domoticz/out. После нажатия на Add у нас добавился новый hardware. Если все хорошо, то в таблице, в колонке Enabled мы увидим Yes. Dummy switch Хотелось бы быстро проверить работу нашей системы. Для этого есть виртуальные устройства - не имеющие физических воплощений(по крайней мере, пока мы их не сделаем), но имеющие статус в системе domoticz и управляемые из нее. Добавим Dummy hardware. В web-интерфейсе Domoticz - Setup -> Hardware Type - Dummy (Does nothing, use for virtual switches only) Добавляем. В таблице появилась еще одна запись. Можно увидеть, что в таблице рядом с Type есть кнопка Create virtual sensors. Нажимаем ее, вводим параметры Name - lamp Sensor type - Switch Сохраняем и переходим в меню Switches. Теперь здесь можно увидеть новый переключатель: Теперь мы можем посмотреть, как изменение переключателя отражается в топике MQTT.

 

 

pi@raspberrypi:~ $ mosquitto_sub -h localhost -v -t "domoticz/out"

 

 Мы использовали клиент MQTT, который установили вместе с брокером, и подписались на топик, куда domoticz публикует свои обновления. Нажмем на лампочку в веб-интерфейсе Смотрим в терминал и видим сообщение из топика:

 

domoticz/out {
    "Battery" : 255,
    "RSSI" : 12,
    "description" : "",
    "dtype" : "Light/Switch",
    "hwid" : "4",
    "id" : "00014052",
    "idx" : 2,
    "name" : "lamp",
    "nvalue" : 1,
    "stype" : "Switch",
    "svalue1" : "0",
    "switchType" : "On/Off",
    "unit" : 1
}

 

В подобных сообщениях Domoticz сообщает нам об изменении своего состояния. Формат тела сообщения - JSON. В поле name видим название, которое мы ранее установили для switch'а в domoticz. Новое состояние свитча мы можем увидеть в поле nvalue. Программируем собственные IoT устройства на базе Arduino-like контроллеров. Теперь, когда MQTT-брокер доступен из сети и Domoticz публикует туда сообщение каждый раз, когда мы переключаем switch, можно заняться программированием микроконтроллера. Задача: подключиться к сети, подключиться к брокеру MQTT, подписаться на нужный топик и парсить сообщения от Domoticz, выделяя те, поле name которых совпадает с названием, захардкоженым в программу, и выполняя переключения встроенного светодиода в зависимости от нового состояния из сообщения. Впоследствии переключаться будет не встроенный светодиод, а реле, управляя каким-либо процессом.

https://m.habr.com/ru/post/535838/ 

pi@raspberrypi:~ $ mosquitto_sub -h localhost -v -t "domoticz/out"

 

 

 

 

 

 

Вверх