Domoticz arduino


Domoticz arduino

Примерно год назад на страницах этого сайта я делал небольшой обзор системы домашней автоматизации Home Assistant. В конце обзора предлагалось желающим поделиться своим опытом применения других альтернативных вариантов систем автоматизации. К сожалению, таких не нашлось, а самому попробовать что-то новое как-то руки не доходили. И все же в конце концов я нашел время и решил установить на Raspberry Pi еще одну довольно известную систему домашней автоматизации. Сегодня речь у нас пойдет о автоматизации дома с помощью программы Domoticz.

Domoticz обладает очень широким функционалом и огромной поддержкой различных устройств. Разумеется, что бы рассказать о всех ее возможностях, речь здесь не идет. Поэтому, сегодня мы рассмотрим просто «быстрый старт» Domoticz на Raspberry Pi с наглядными примерами подключения датчиков различного типа.


В качестве аппаратной части для развертывания и тестирования Domoticz подойдет любая версия кросс-платы или просто Raspberry Pi с подключенными по интерфейсу 1-wire двумя датчиками DS18B20, а также датчиком температуры и атмосферного давления BMP180 и датчиком освещенности TSL2561 с интерфейсом I2C. Схема подключения датчиков к портам GPIO Raspberry Pi приведена на рис.1:

Raspberry Pi DS18B20 BMP180

Рис. 1

Разобравшись с аппаратной частью, переходим к установке Domoticz:

1. Скачиваем  операционную систему Raspbian Stretch Lite по этой ссылке

2. Распаковываем скаченный архив и копируем его на SD карту программой Win32DiskImager.

3. В корневом разделе распакованного архива создаем пустой файл ssh без расширения (это необходимо для подключения к Raspberry Pi по протоколу SSH). Сделать это можно в любом файловом менеджере, даже в Total Commander из под Windows.

4. Устанавливаем SD карту в Raspberry Pi, подключаем к локальной сети и подаем питание.


5. Определяем адрес Raspberry Pi в вашей локальной сети, например, программой IPScan. Допустим, это 192.168.100.12

6. C любого компьютера подключаемся к Raspberry Pi по протоколу SSH через 22 порт с помощью терминальной программы Putty (или любой другой «терминалки»):

http://192.168.100.12:22

7. Запускаем установку Domoticz:

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

В процессе установки необходимо будет назначит порты для доступа к системе и некоторые другие параметры. Оставляем все предлагаемые значения по умолчанию.

8. После установки Domoticz, открываем панель конфигурации Raspbian:

sudo raspi-config

устанавливаем свой часовой пояс (Localisation Option/Change Timezone) и активируем интерфейсы I2C и 1-wire (Interfacing Option). Дополнительно для работы 1-wire в файле config.txt необходимо указать работу этого интерфейса на порту GPIO. Открываем файл config.txt:

sudo nano /boot/config.txt

находим в файле строку dtoverlay=w1-GPIO и дописываем  в нее gpiopin=4:

dtoverlay=w1-GPIO,gpiopin=4

и сохраняем изменения в файле.

9. На этом процесс установки Domoticz можно считать оконченным. После перезагрузки (sudo reboot) подключаемся к системе через web-браузер:

http://192.168.100.12:8080

Должен открыться web-интерфейс Domoticz (рис.2)


Raspberry Pi Domoticz

Рис. 2

В первую очередь через пункт меню Setup – Setting адаптируем интерфейс под нужный язык (рис.3)

Raspberry Pi Domoticz

Рис. 3

Далее вводим любое название системы и географические координаты вашего местоположения (без этих параметров могут не сохраниться настройки) (рис.4):

Raspberry Pi Domoticz

Рис. 4

Применяем изменения кнопкой Apply Setting. Остальные настройки пока не трогаем. После рестарта системы, интерфейс должен отображаться уже на выбранном языке (рис.5)


Raspberry Pi Domoticz

Рис. 5

Тем не менее, далее я продолжу описание системы Domoticz применительно к английскому интерфейсу.

Итак, теперь уже все готово для конфигурирования подключенных к Raspberry Pi датчиков. Начнем с датчиков DS18B20. Открываем Setup – Hardware и прописываем название первого датчика (DS18B20 #1). Тип интерфейса устанавливаем 1-wire (System), путь к патчу в строке OWFS Patch удаляем. Остальные настройки не трогаем. Сохраняем изменения кнопкой Add (рис.6)

Raspberry Pi Domoticz

Рис. 6

Аналогично конфигурируем и второй датчик DS18B20.

Далее конфигурируем датчик давления и температуры BMP180. Для этого датчика выбираем интерфейс I2sensors и во вкладке SubType — I2C sensor BMP085/180 Temp+Baro (рис.7)


Raspberry Pi Domoticz

Рис. 7

По такому же принципуконфигурируем датчик освещенности TSL2561 (рис.8)

Raspberry Pi Domoticz

Рис. 8

Переходим в Setup – Setting и активирует сконфигурированные датчики. Для этого необходимо кликнуть мышкой по стрелке в зеленом кружке напротив выбранного датчика и присвоить ему имя (например, Temperature 1), которое будет отображаться в интерфейсе системы (рис.9).

Raspberry Pi Domoticz

Рис. 9

Показания датчиков должны отображаться в трех закладках:

DS18B20 – в закладке Tempetature (рис.10)

BMP180 (температура) – в закладке Tempetature (рис.10)

BMP180 (атмосферное давление) – в закладке Weather (рис.11)

TSL2561 – в закладке Utility (рис.12)


Raspberry Pi Domoticz

Рис. 10

Raspberry Pi Domoticz

Рис. 11

Raspberry Pi Domoticz

Рис. 12

Как видите датчики у нас оказались сгруппированы в зависимости от их функционала по различным закладкам. С одной стороны это удобно, когда устройств различного назначения слишком много. Но в любом случае, какие-то параметры и элементы управления интересуют нас более часто, а некоторые нужны периодически. Поэтому, в Domoticz есть такая приятная функция, как главная панель – «Dashboard», на которой можно разместить избранные устройства. Что бы добавить устройство в избранное, достаточно кликнуть по звездочке на панели устройства. При этом цвет звездочки меняется с белого на желтый, а устройство (в нашем случае это датчики) появится на панели Dashboard (рис.13).

Raspberry Pi Domoticz

Рис. 13

У Domoticz есть система логирования, которая позволяет отследить динамику изменения параметров датчиков за различные периоды времени. Что бы вывести график определенного датчика для его просмотра, достаточно кликнув мышкой по иконке этого датчика. В качестве примера на  рис.14 показан график температуры первого датчика DS18B20.


Raspberry Pi Domoticz

Рис. 14

Как уже было сказано в начале обзора, Domoticz является довольно мощной системой, позволяющей реализовать практически любые требования в части автоматизации дома. Система поддерживает создание пользователем сценариев, позволяет интегрировать широкий спектр устройств различных производителей, для более удобного визуального восприятия пользователем интерфейса имеет возможность подгружать планировки автоматизируемых помещений. И это, конечно, далеко еще не все.

Но несмотря на то, что в этом обзоре был рассмотрен только один из множества сегментов системы (датчики), для первого знакомства с Domoticz этой информации будет достаточно. Все вопросы, отзывы и пожелания оставляем в комментариях к обзору и на нашем форуме.

Источник: whp.home.blog

Радости первых шагов на пути у «без умного» дома

Пришло четыре модуля, обычные упакованы в коробочках, а SV просто в антистатическом пакете. Корпус и размеры порадовали.


Создание умного дома с модулями Sonoff

Процесс установки родного софта e-Welink и подключения модуля к домашней сети не буду описывать, инструкций на любых языках на просторах интернета, бери — не хочу.

Недолго думая идем в коридор и добавляем этот модуль в светильник потолочный. Модуль маленький, в светильнике места много. В коридоре часто остается включенный свет и теперь можно лежа в кровати перед телевизором выключать свет. В квартире везде уже сделан ремонт и установлены обычные выключатели. Ремонт не трогаем и пользуемся уже существующей проводкой.

Получается следующая логика работы:

  • Выключатель выключен, то и модуль тоже не работает;
  • Выключатель включен, то свет можно выключать с приложения;
  • Выключатель включен и свет выключили через приложение, то для включения света надо сделать выкл/вкл на выключателе, предварительно поставив в настройках модуля «электропитание на участке» ВКЛ (при включении модуля реле открыто) и свет включится.

Радуемся.

Второй модуль добавил в светильник в спальне. Тут светильник не такой просторный оказался как в коридоре. Пришлось корпус немного подпилить и кнопку уменьшить/обрезать, не помещалось по высоте. После чего модуль аккуратно спрятан в светильник.

Переделываем выключатель под кнопку


В квартире установлены выключатели Schneider серии Unica. Переделать такой выключатель можно установив под клавишу пружину и место уже заранее подготовлено.

Как пишут на просторах интернета, можно пробовать пружинку от шариковых ручек. Мои попытки установить пружину из шариковой ручки не дал успеха. Очень слабая пружина и не хватает жесткости вернуть клавишу исходное положение.

Оригинальная шнайдеровская пружина имеет следующие характеристики d=3,6мм, толщина проволоки 0,6мм, высота 10мм. Сам в руках не держал, в продаже не нашел, информацию по пружине нашел на одном из форумов.

Поискав по дому, была найдена похожая пружина, достаточно упругая и успешно добавлена в выключатель. Не потратив и копейки получаем вместо выключателя кнопку.

Создание умного дома с модулями Sonoff

Так выглядит выключатель с установленной пружиной.

Теперь модуль у нас всегда с питаем и в сети. В настройках ставим, что при подачи питания на модуль, модуль меняет состояние реле.

Логика работы в таком случае:

  • на модуле sonoff всегда есть питание, включение и выключение света через приложение;
  • нажатие кнопки обрывает питание и реле меняет свое состояние на противоположное.

Можем управлять нагрузкой и на выключателе, и через приложение. Родное приложение и модуль работают через какой-то китайский сервер.

Да да, знаю, ночью происходит скачек/отключение-включение напряжения и у нас загорается свет. За время работы модуля ни разу такого пока не случилось, но мы же живем в России и заголовки новостей пестрят обещанием веерных отключений.

На столе лежит третий модуль. А тебя ж куда родной? А тебя родной будем ковырять и издеваться!

Установка альтернативной прошивки

Вскрытие показало, что есть место под гребенку на 5 пинов.

Создание умного дома с модулями Sonoff

От кнопки на корпусе (3,3v Rx, Tx, GND, GPIO 14). Паяльник в руки и подключаем usb-to-ttl переходник. В моем переходнике usb-to-ttl имеется 3,3v, от 5v питание подавать на модуль не пробовал и не советую.

Далее уже софтверная часть. На гитхабе есть прошивка для таких модулей. Сейчас уже появилась новая версия прошивки. Чего же хорошего в этих прошивках? Есть web управление, mqtt протокол, OTA (Over the air) — прошивка по воздуху. Что же касается родной прошивки, то mqtt протокол в обещаниях добавить, OTA тоже есть, но только для своих. Недостаток родной прошивки — работает только при подключении в глобальную сеть. А зачем нам это надо? На данном этапе не надо… тем более мы не знаем, что и куда отправляет наш модуль.

Устанавливаем Arduino IDE. Я установил portable версии 1.8.1. Прошивки требуют версии IDE 1.6.10 или выше.

  • Добавляем поддержку модулей ESP8266;
  • Устанавливаем pubsubclient;
  • Находим файл srcPubSubClient.h и меняем значение MQTT_MAX_PACKET_SIZE на 400 или более (сейчас версии Тасмота просят значение 500 или выше).

Качаем скетч, компилируем, скрестив пальцы и надеемся, что все прошло без ошибок. Это был не мой случай, читаем ошибку и добавляем необходимые библиотеки которых не оказалось. Пару часов мучений и имеем прошивку без ошибок. (Основная проблема была в том, что Arduino IDE я установил на Win XP). Правим файл с конфигурацией и заливаем нашу прошивку.

Тот немногий минимум, который я правил в User_config.h.

User_config.h

#define PROJECT "bath" // название проекта - в моем случае это выключатель вытяжки в ванной
#define STA_SSID1 "your_wifi_station_id" // ваша точка доступа
#define STA_PASS1 "your_pass" // пароль к точке доступа
#define STA_SSID2 "your_wifi_station_id_plus" // Можно указывать две точки доступа
#define STA_PASS2 "второй пароль" // пароль ко второй точке доступа

#define SYS_LOG_HOST "192.168.ххх.ххх" // Линукс хост, указываю адрес своей raspberry pi, можно не трогать
//#define USE_I2C // отключаем все не нужные модули
//#define USE_IR_REMOTE
//#define USE_WS2812

В зависимости от версии, могут добавляться другие настройки, которые без надобности я бы отключал. В последних прошивках (Tasmota), все больше настроек возможно сделать через веб меню настроек и дублируется с User_config.h.

Заливка скетча:

  • отключаем питание от модуля (любым удобным способом);
  • зажимаем кнопку на модуле и подключаем питание. Модуль готов принимать прошивку;
  • нажимем ОК в IDE и опять же скрестив пальцы ждем, что б началась заливка прошивка в модуль.

В случае ошибки, проверяем провода, а везде ли у нас хорошо все прикручено, а может не хватает питания от usb-to-ttl и надо взять внешний источник. Танцуем с бубном и повторяем процедуру.

Важно: питание на модуль подается только через пины 3,3в. Подключать его к силовой нагрузке, через питание самого модуля нельзя. Опытные пользователи пишут, что подача 220в на модуль при прошивке превращает его в кирпич, маленький, но кирпич. Не пробовал, не знаю. Поэтому, при прошивке модуля к нему подключается всего четыре проводка на пины, а все остальное убираем подальше.

Если все ок, после перезагрузки модуль должен подключился к точке доступа, находим ip адрес и заходим на него в браузере.

Создание умного дома с модулями Sonoff

Вид стартовой страницы.

Если модуль не подключился к вашей точке доступа, то продолжаем танцы с бубном. Пути решения есть различные, в пределах этой статьи не буду описывать. Я же, проверял конфиги и просто еще раз прошивал модуль.

Теперь у нас есть web доступ к модулю и его настройкам, mqtt, провода можно убирать в ящик, прошивку/обновление делать по воздуху.

А где же Сири?

Все это конечно замечательно, пора учиться управлять этим добром с телефона. Попробовал несколько программ с апстора для iфона и не получил ничего интересного. Было принято решение достучаться до приложения «Дом» или же HomeKit, что так же дает возможность управлять модулями через Siri.

Находим на полке Raspberry pi и подключаем к сети. В моем случае уже была «малина», подключенная к сети. Как установить ОС и подключить «малину» описывать нет смысла.

Для общения с HomeKit необходимо установить Homebridge. Homebridge является NodeJS сервером запущенным в вашей локальной сети и эмулирующий iOS HomeKit API.

В зависимости от вашей системы, может понадобиться обновление компилятора С++.

Устанавливаем Nodejs. Заходим на хранилище и выбираем подходящий дистр. Копируем адрес дистра и дальше по образу и подобию

Я себе установил v6.9.4, сейчас уже есть более новые. Добавляем другие нужные пакеты:

sudo apt-get install libavahi-compat-libdnssd-dev

Устанавливаем сам Homebridge:

sudo npm install -g --unsafe-perm homebridge

Если это не работает, пробуем:

После установки Homebridge, необходимо установить еще несколько плагинов, после чего приступаем к изменению настроек Homebridge сервера.

Установка плагинов осуществляется аналогичным путем, как и сам homebridge.

sudo npm install -g --unsafe-perm homebridge-plugin-name

Необходимый плагин находим в менеджере пакетов. Там же находим пример настроек, которые необходимо будет добавить к нашим настройкам. Для простого выключателя.

npm install -g homebridge-mqttswitch

Переходим к настройкам, создаем, если еще не создан, файл конфигурации:

sudo nano .homebridge/config.json

Файл настройки выглядит следующим образом:

config.json

{   "bridge": {   "name": "Homebridge",   "username": "CC:22:3D:E3:CE:30",   "port": 51826,   "pin": "031-45-154"   },    "platforms": [  ],  "accessories": [   {   "accessory": "mqttswitch",   "name": "Спальня",   "url": "mqtt://192.168.178.123:1883",   "username": "admin",   "password": "admin",   "caption": "room",   "topics": {   "statusGet": "stat/sleeping/POWER",   "statusSet": "cmnd/sleeping/power"   },   "onValue": "1",   "offValue": "0",   "integerValue": "true"     }   ]    }  

Перед сохранением файла настроек проверяем, например тут. После того как сохранили, пробуем запускать:

Homebridge

Если все запустилось нам напишет, что-то вроде:

11:27:43 PM] [Спальня] Initializing mqttswitch accessory...

Там же будет указан код 031-45-154 для подключения, если его не меняли в настройках.

Теперь включаем телефон/планешт под управлением iOS. Находим приложение «Дом» или же «HomeKit» → Добавить аксессуар и ждем когда появиться наш аксессуар «Homebridge», добавляем его вводим код, назначаем комнату для выключателя. И вуаля, «Привет Siri, включить/выключить свет в комнате» — заработало. «Привет Сири» на телефонах 5ой серии и ниже работает только при подключении к зарядке.

Если все у нас правильно работает, осталось добавить в автозагрузку Homebridge. Полная инструкция на английском. В моем случае через init.d, создаем файл sudo nano /etc/init.d/homebridge. Шаблон копируем в файл в этот файл и меняем под homebridge

/etc/init.d/homebridge

#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

dir="/home/pi"
cmd="DEBUG=* /usr/local/bin/homebridge"
user="pi"

Cохраняем, выходим.

sudo chmod 755 /etc/init.d/homebridge sudo update-rc.d homebridge defaults

Теперь homebridge будет стартовать при старте системы.

Прикручиваем датчик DHT22 (температура / влажность)

Внимательный читатель заметил, что на гребенке есть 5 пинов и один из них GPIO 14. Опять паяльник берем в руки и подпаиваем три провода к 3,3в, GND, GPIO 14 для датчика температуры влажности DHT22. Можно другой датчик (ds18b20, DHT 11 или другой, который поддерживается прошивкой), но у меня лежал в ящике именно DHT22. Подключение датчика сделал через разъем, который закрепил с боку родного корпуса. При необходимости можно будет подключать другой датчик без скальпеля и паяльника.

Создание умного дома с модулями Sonoff

На картинке пока только закрепил разъем, провода еще не присоединял. В прошивке Sonoff-MQTT-OTA-Arduino необходимо проверить настройки:

#define DHT_PIN 14 // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV) #define DHT_TYPE AM2301 // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)

Для прошивки Tasmota, пин и тип датчика можно указать в веб настройках.

Если все правильно подключили и настроили, то зайдя на веб интерфейс, увидим состояние реле и показания датчика. В настройках можно выставить частоту опроса датчика. По умолчанию 300 секунд (5 минут).

Создание умного дома с модулями Sonoff

Ныряем на поиски плагина для Homebridge для работы с датчиком температуры и влажности. Нам же надо теперь эти показания вывести в приложении. У меня все это получилось сделать, но ИМХО это были мои грабли и не стоит этого делать.

А почему? Все очень просто, просто прикручивать к sonoff датчик нет смысла, надо исходя из этих показаний что-то включать/выключать. Но в настройках прошивки такой возможности нет, настроить приложение «Дом»/HomeKit для таких целей возможно, но необходим планшет, который будет постоянно дома или apple tv. Наличие в прошивке возможности общаться с Domoticz, привело меня на этом тернистом пути к установке системы управления умным домом Domoticz.

В виде небольшого лирического отступления скажу, пробовал подключать к homebridge плагины которые позволяют передавать RTSP поток с веб-камеры. У меня есть ip-camera TOP-201 от китайский собратьев.

Устанавливаем плагин:

"platforms": [{  "platform": "Camera-ffmpeg",   "cameras": [   {   "name": "top-201",   "videoConfig": {   "source": "-re -i rtsp://[email protected]:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?real_stream",   "maxStreams": 2,   "maxWidth": 640,   "maxHeight": 480,   "maxFPS": 3   }   }   ]

Дополнительно в приложении HomeKit появляется картинка с камеры, но все это работало очень тормознуто и необходимости в данной камере не было. Что б излишне не грузить систему, удалил ip-камеру. Вернемся к установке системы для управления «без умным» домом.

Установка и настройка Domoticz для модулей Sonoff

Putty → ssh → и опять мы ковыряем малинку. На удивление, установка в моем случае не потребовала танцев с бубном и достаточно было

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

Добавляем автозапуск:

При необходимости меняем некоторые настройки:

sudo nano /etc/init.d/domoticz.sh

Открываем адрес малины 192.168.ххх.ххх:8080. И должны попасть на страничку домотикс. Далее настройка и добавление датчиков уже происходит через веб.

Создание умного дома с модулями Sonoff

На скришоте уже добавлены датчики sonoff и уличный датчик.

Для добавления датчиков/выключателей заходим в Setup → hardware и добавляем Dummy (Does nothing, use for virtual switches only). В списке устройств появится наш «Dummy». Кликнув по нему на Create virtual sensor, называем наш сенсор/выключатель и из списка выбираем необходимый тип. Теперь во вкладке Setup → Devices появиться новое устройство и там же теперь можно посмотреть idx устройства.

Отрываем веб-морду нашего выключателя/сенсора и сохраняем сonfiguration → domoticz → idx нашего выключателя. В новых прошивках Tasmota, есть возможность задавать несколько idx. Для реле/выключателя и отдельно для GPIO. В зависимости от модуля, это может быть дополнительно один датчик или больше, так как в SV версии выведено дополнительно три пина, которым можно присваивать их роль в вашей системе (реле/датчики).

В старых прошивках (Sonoff-MQTT-OTA-Arduino) для модуля, пришлось исполнить некоторые танцы с бубном, что б Domoticz увидел показания влажности и температуры. Думаю нет смысла тут это описывать, для новой прошивки (Tasmota) это не понадобиться.

По показаниям влажности можно управлять вытяжкой в ванной. Там, где стоит вытяжной вентилятор места достаточно для модуля и все необходимое у нас уже есть. Осталось только настроить управление по показаниям влажности.

Setup → More options → Events

Создание умного дома с модулями Sonoff

При помощи конструктора создаем логику работу вытяжки (как на картинке). Можно еще на Lua, но это не мой случай. Дальнейший опыт показал, что 5 минут опрос датчика великоват и я уменьшил до 3х минут. Теперь принимая душ, когда влажность поднимается выше 70% включается вытяжка. В дальнейшем при снижении ниже 45% выключается. Данные по влажности подобрал опытным путем. Единственный минус, а может это и не минус, а фича системы, если принудительно включить вытяжку нажатием кнопки, то через 3 минуты, опросив датчик влажности система выключиться.

А как же Сири? Оказалось, все очень просто.

sudo npm install -g -g --unsafe-perm homebridge-edomoticz

И добавляем в настройки:

sudo nano .homebridge/config.json

И при запуске Homebridge получаем

Все устройства, которые мы добавили в Домотикз, теперь у нас будут отображаться среди наших устройств в Homekit и можно управлять ими через подругу Siri. Необходимость других плагинов для Homebridge, как-то исчезла.

Имеем связку Domoticz-Homebridge и все очень хорошо и стабильно работает. Уже тестирую не первый месяц.

К Raspberry pi прикручен датчик температуры/влажности DHT22 из прошлых поделок и данные передаются на narodmon.ru скриптом на питоне каждые 10 минут. Добавляем несколько строк в существующий скрипт.

#domoticz settings  IP = '192.168.ххх.ххх' #IP domoticz  PORT = '8080' #port of server  IDX_1 = '7' #IDX of the DHT temp sensor  //….другой код, где опрашиваем датчик и отправляем данные на narodmon.ru  url = 'http://{}:{}/json.htm?type=command¶m=udevice&nvalue=0&idx={}&svalue={}'.format(IP, PORT, IDX_1, sensor_value_1)  request = urllib2.Request(url)  response = urllib2.urlopen(request)  

В Domoticz добавляем еще один virtual sensor. И теперь дополнительно можем видеть температуру и влажность на улице, как через веб на нашей локальной страничке домотикза, так и в приложении на iOS.

Кому ближе mqtt, то показания датчика можно было отправить через mqtt.

playload = '{{ "idx": {} , "nvalue" : {}, "svalue" : "1" }}'.format(IDX_1, humidity) client.publish(TOPIC_DOMOTICZ, playload, qos =0 , retain =False) #publish

Добавляем Wifi в кофемашину

Пока моя машинка находится в ремонте и ждет пока приедет из Германии блок управления, в подарок досталась кофемашина Delonghi. На панели имеем кнопку вкл/выкл, готовить маленький, двойной кофе и еще две которыми я не пользуюсь т.к. молоко паром не взбиваю, латте и прочие напитки не употребляю. Недостаток, кофе не перемалывает сама, надо заправлять уже молотым и на одну чашку.

Для кофемашины использую Sonoff SV. Пины 3,3v, Rx, Tx, GND подписаны. Отдельно на плату еще выведены GPIO 4, 5, 14. Прошивка по той же процедуре, которая была описана выше.

Вскрываем аппарат и добираемся до платы с кнопками.

На плате присутствует питание 5в, чего вполне достаточно для питания нашего беспроводного модуля sonoff sv. Труда не составило найти где же у нас заветные 5в.

Нажатие кнопок, просто закорачивают сигнал на землю. Подключаем наш модуль по схеме.

Создание умного дома с модулями Sonoff

Как видно по схеме, я сделал подключение всего двух кнопок: вкл/выкл и приготовить кофе. По аналогии можно было сделать и все остальные кнопки. На sonoff sv у нас есть 3 пина выведенные на плату, реле, а так же можно задействовать Rx, Tx ( в последней прошивке Tasmota).

Создание умного дома с модулями Sonoff

Собираем все по схеме, находим подходящее места внутри кофеаппарата. В настройках модуля в веб интерфейсе добавляем на GPIO5 второе реле. В меню «консоль» поставил следующие настройки:

В настройках домотикз создаем еще два «virtual sensor» и их idx добавляем в настройка модуля в меню настроек домотикз (Configuration → Configure Domoticz → IDX 1 и IDX 2).

В результате получаем еще два выключателя, один из которых нажимает кнопку вкл/выкл кофемашины и второй нажимает кнопку приготовления кофе.

Готовить кофе, все равно, приходиться ходить ножками, надо же насыпать кофе. А вот включить машинку удобно получается. От момента включения и до приготовления кофе, необходимо некоторое время для разогрева аппарата. Поэтому сидя работая в комнате, можно удаленно включить кофеаппарат и через некоторое время уже топать ножками и готовить себе напиток.

Больше пользы будет в таком выключателе на полном автомате в кофемашине, надо только не забывать заранее ставить чашку. Ждем плату управления.

Добавляем wifi для открытия двери с домофоном Vizit

В общем коридоре, тамбур возле лифта закрывается дверью с магнитным замком и системой доступа Vizit. Систему ставили уже после того как был сделан ремонт и кнопку для открытия тамбурной двери в квартиру не провели. Для того, что б запустить гостей, приходиться выходить к двери и открывать кнопкой открытия двери в коридоре. Блок управления КТМ-602М.

Создание умного дома с модулями Sonoff

Замыкание OP + GND открывает дверь/ отключает магнит на 7 секунд.

Разделяем питание модуля sonoff sv и реле путем удаления двух резисторов, как указанно ниже на картинке.

Создание умного дома с модулями Sonoff

На вход реле «input +» подключаем ОР, на выходе реле «output +» прикручиваем GND. Между ELC и GND блока управления 18в от которых подаем питание на сам модуль.

Добавляем дверной звонок «door bell» в домотикз и теперь Сири может нам помочь отрыть двери для гостей.

Помощница Siri распознает голосовую команду «Открыть дверь», лучше чем «включить кофемашину».

На этом я остановился с укращением модулей sonoff.

Небольшой бонус

Раз пошла такая пьянка, будем еще и телевизор выключать/включать. Выключение телевизора и включение уже не имеет никакого отношения к wifi модулям. Телевизор находиться в непосредственной близости с raspberry pi. Тут нам в помощь ИК светодиод и пару сопротивлений разного номинала. Устанавливаем lirc, там же в базах находим настройки для своего пульта/телевизора.

Для работы с домотикз запускаем небольшой скрипт на питоне, который транслирует наши пожелания включить/выключить телевизор из mqtt в lirc.

mqtt в lirc

import paho.mqtt.client as mqtt  import os  import time  import json    IP = '192.168.ххх.ххх'  PORT = '1883'    device = {18 : 'OpenBox',   19 : 'PHILIPS',   22 : 'air'}  TOPIC_DOMOTICZ = 'domoticz/in'    def send(device, command):  # """ Sends IR-signal to the device """   os.system("irsend SEND_ONCE '" + device + "' '" + command + "'")      # The callback for when the client receives a CONNACK response from the server.  def on_connect(client, userdata, flags, rc):   print("Connected with result code "+str(rc))     # Subscribing in on_connect() means that if we lose the connection and   # reconnect then subscriptions will be renewed.   client.subscribe(TOPIC_DOMOTICZ,0)    def on_publish(client,userdata,result): #create function for callback   print("data published n")   pass    # The callback for when a PUBLISH message is received from the server.  def on_message(client, userdata, msg):   domoticz = json.loads(msg.payload)   if domoticz ['idx'] in device.keys():   idx = domoticz ['idx']   dev = device [idx]   command = 'KEY_POWER'   send (dev, command)    client = mqtt.Client()  client.on_connect = on_connect  client.on_message = on_message  client.on_publish = on_publish  client.connect(IP, PORT, 60)    client.loop_forever()

Добавляем в Domoticz еще три виртуальных кнопки для телевизора, ресивера и кондиционера. Управлять телевизором не удобно с телефона, все равно пульт, как-то родней. Но выключить телевизор, когда забыл и уже ушел из комнаты приятный бонус.

Приятным дополнением ко всему этому наличие для Pebble часов приложения Pemoticz. Добавил адрес в настройках и приложение подтянуло все выключатели. Не единой Сири можно теперь включить кофе аппарат/открывать двери и выключать свет. Часы обычно на руке, а телефона может не оказаться в непосредственной близости. Это имеет тоже свои плюсы. Тему распознавания речи часами их перепрошивкой не занимался, но это тоже возможно.

Создание умного дома с модулями Sonoff

На этом, пожалуй, можно и завершать историю «без умного» дома.

Заключение.

В виде заключения, а что же дальше?

Todo list:

  • Кондиционер, не получилось найти настроек для пульта к lirc и первые попытки скопировать нажатия, тоже не привели к успеху. Пилим дальше.
  • Ждем заказа от китайской компании Mi c gateway и несколькими датчиками. Датчики открытия дверей путем не хитрых манипуляций превращаются в датчики протечки. Будем добавлять в нашу систему. При срабатывании датчиков будет слать уведомления хозяину.
  • На этом мысли заканчиваются…

Источник

Источник: asp24.ru

Составление проекта Arduino

  • Крыльцо. Здесь необходимо сделать включение света при приближении хозяина к дому в тёмное время суток. Также необходимо сделать автоматическое включение света при открывании входной двери при выходе из дома.
  • Прихожая. Автоматическое включение света при наступлении тёмного времени суток и обнаружения движения. В ночное время включаться должна маломощная лампочка, чтобы резким светом не будить других проживающих.
  • Санузел. Нагревание воды в бойлере происходит в зависимости от того, обнаруживает ли автоматика нахождение в доме хозяина. Сам бойлер снабжён внутренним выключателем электричества — при достижении водой предельной температуры он отключается. Когда заходит человек в санузел, то необходимо автоматически включать вытяжку и свет.
  • Кухня. Свет на кухне включается и выключается вручную. Но имеется возможность выключения света при фиксации длительного отсутствия движения. При готовке пищи автоматически включается вытяжка.
  • Комната. В комнате, как и на кухне свет включается вручную, но при фиксации отсутствия движения есть возможность автоматического выключения света.

Отопительные приборы и рекуперация воздуха. Отопительные приборы работают на поддержание заданной температуры в доме. При фиксации отсутствия хозяина, минимальная поддерживаемая температура снижается на определённое количество градусов. Как только происходит фиксация присутствия хозяина в доме, автоматически нижний порог переключается в нормальный режим поддержки температуры. Рекуперация воздуха происходит при фиксации присутствия хозяина, но не реже чем 10 минут в час.

Какие решения предлагает Arduino

Базовый набор Arduino Start
Базовый набор Arduino Start

Как видно из данной постановки задач нам, кроме платы Arduino, понадобятся: датчики движения, датчики открывания двери, датчики температуры и освещённости. Для включения электрических приборов нам могут понадобиться реле. В качестве датчика фиксации открытия двери может быть применён обычный геркон. Все датчики можно купить для платы Arduino.

Так как количество датчиков достаточно большое для такого маленького дома, то для платформы Arduino существуют платы расширения. Всё, что необходимо, это правильно подключить датчики к прибору и написать программу, которая будет являться «сердцем» «умного» дома.

Прошить плату Arduino легко с помощью специальной программы, которая выпускается для любой операционной системы, а также кабеля USB. Не нужно никаких программаторов, как в случае разработки автоматики на микроконтроллерах.

Программа, которая прошивается в Arduino, пишется на языке Си. Безусловно, есть ограничения на количество байт этой программы. Для реализации поставленной задачи объёма памяти вполне хватит.

Визуализация «умного дома» и расширение возможностей на Ардуино

Безусловно, для визуализации процессов «умного» дома можно было бы использовать ЖК-дисплей, любые цифровые табло. Но всё-таки, для «умного» дома это не является хорошим решением.

Для визуализации процессов и состояний автоматики на платформе Arduino лучше всего использовать отдельный сервер обработки состояний. Этот сервер может быть реализован на программной технологии Node.js, позволяющей реализовать любой сервер, в том числе и для обработки состояний платы Arduino.

Node.js используется для решения задач Интернета вещей, поэтому для визуализации автоматики «умного» дома он точно подойдёт. Достаточно создать сервер и обработчик на языке JavaScript, и можно будет отображать результат в браузере компьютера или планшета.

Микрокомпьютер одноплатный Raspberry Pi
Микрокомпьютер одноплатный Raspberry Pi

В качестве «железа» сервера можно использовать микрокомпьютер Raspberry Pi или обычный стационарный компьютер или ноутбук. При этом расширяются возможности самой системы автоматизации.

Если на плате Arduino ограниченный объём физической памяти, то на сервере этот объём ничем не ограничен. Саму программу сервера можно написать так, что она будет полностью управлять платформой Arduino.

Например, можно расширить функционал нашего «умного» дома и приблизить его к умному дому без кавычек. Есть возможность написать такой алгоритм, который будет вести статистику нахождения хозяина в доме и его возвращение домой. Если хозяин обычно возвращается домой в районе 17:30, то за час можно включить бойлер для нагрева воды. Также, ориентируясь на это время, можно заранее включить отопительные приборы, чтобы возвращение было уже в тёплый дом, а не в тот, где температура ниже на 10 градусов из-за экономии электричества в отсутствии хозяев. Программа может понять когда хозяева обычно ложатся спать и заранее переставать греть воду, так как ею уже никто не будет пользоваться до утра. И таких нюансов может быть множество. Именно внешний компьютер может дать продвинутые «мозги» контроллеру на Arduino, который превратится больше в исполнительный механизм.

Дистанционное управление «умным» домом

Home Automation Arduino и Raspberry Pi
Home Automation Arduino и Raspberry Pi

Как уже упоминалось выше, с помощью сервера на Node.js можно связать вещи друг с другом. Это касается и визуализации процессов автоматики дома в Интернете через облачные сервисы. Это один способ управления своим домом через Интернет. Можно включить бойлер или отопительные приборы вручную заранее перед приездом в дом.

Другой способ — это получение данных и управление «умным» домом на платформе Arduino с помощью SMS и MMS сообщений. Ведь далеко не всегда может быть Интернет под рукой. И, если включение какого-либо прибора может быть не критичным, то получение сообщения о протечке воды может оказаться просто необходимым. И здесь, на помощь в разработке своими руками полнофункционального «умного» дома на платформе Arduino может прийти плата Edison компании Intel.

И что же мы получаем?

Как видно, Arduino — это не просто плата для разработки каких-то простых устройств автоматики. На платформе Arduino можно легко создать своими руками даже автоматику «умного» дома. При этом нет необходимости переплачивать деньги за устройства от компании Simens, которые дороги и обойдутся в 5-10 раз дороже Arduino.

Arduino можно подключить к компьютеру и получить визуализацию процессов на экране монитора или планшета. Автоматикой «умного» дома на платформе Arduino можно управлять через Интернет или с помощью SMS и MMS сообщений. На Arduino можно создавать своими руками достаточно сложные устройства.

Источник: UmnieDoma.ru


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.