Выключить все.

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
evinslov
Сообщения: 25
Зарегистрирован: 30 ноя 2014, 22:29

Выключить все.

Сообщение evinslov » 20 янв 2018, 01:52

Добрый вечер. Помогите разобраться. модуль SD и модуль IN. к ин подключена кнопка пришел/ушел. Грубо говоря при выходе из квартиры нажимаю ее и все выходы должны отключиться. вроде все легко команда a:0 да, обычные выходы отключаются, но вот светодиодные ленты подключенные к цифровым выходам 10, 12, 13 наоборот включаются, так как для них команда 0= включить. как победить? нужно что бы при нажатии выполнялась команда a:0; 10:255; 13:255;Р100;12:255 все выключить, подождать 10 секунд и выключить 12 цифровой выход ленты. Как это сделать? Вся команда в строку не влезает

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Выключить все.

Сообщение empenoso » 20 янв 2018, 07:44

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

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

Re: Выключить все.

Сообщение Ruslan » 20 янв 2018, 09:15

evinslov писал(а):
20 янв 2018, 01:52
...
как победить? нужно что бы при нажатии выполнялась команда a:0; 10:255; 13:255;Р100;12:255 все выключить, подождать 10 секунд и выключить 12 цифровой выход ленты. Как это сделать? Вся команда в строку не влезает
Рецепт победы известен - завести сервер. На сервере можно реализовать любые сложные сценарии. Режим действий по умолчанию изначально задумывался как "аварийный", когда сервер недоступен. Ну или как режим надежного выполнения простейших действий (включить/выключить свет, перекрыть воду и т.п.). Откуда это вечное стремление превратить микроконтроллер в компьютер...? Ну при всем желании невозможно (да и не нужно) реализовывать в контроллере все последовательности действий, которые могут понадобиться в жизни. Человечеством для этого давно изобретена необходимая штуковина - компьютер.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Выключить все.

Сообщение Andrey_B » 20 янв 2018, 11:07

У PWM портов пока нет поля Group. Но оно есть у SW.
Можно попробовать такой "хак". Назначить портам SW группу (например, 1) и давать команду так: a:1;g1:0
То есть включить все выходы, а затем отключить те, у которых группа "1". Если к выходам подключены лампочки, то, они не успеют включиться, а у PWM портов пропишется 255.

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Выключить все.

Сообщение empenoso » 22 янв 2018, 15:09

evinslov писал(а):
20 янв 2018, 01:52
Грубо говоря при выходе из квартиры нажимаю ее и все выходы должны отключиться.
Вот например реализация выключить все через openhab. Нажатие на физическую кнопку, подключенную к меге, а выключаются устройства с прошивкой Sonoff-Tasmota. Все через mqtt:

Код: Выделить всё

Switch	P2_ALL	       "ВЫКЛ всё [%s]"	    { mqtt="<[mosquitto:megad/60/2:state:JSONPATH($.value)]" }

Код: Выделить всё

rule "P2 ALL OFF" 
when
    Item P2_ALL changed to ON     
then
	publish("mosquitto","cmnd/ElectroDragon1/POWER1","OFF")
	publish("mosquitto","cmnd/ElectroDragon2/POWER1","OFF")
	publish("mosquitto","cmnd/ElectroDragon2/POWER2","OFF")
	publish("mosquitto","cmnd/Table_lamp/POWER1","OFF")
	publish("mosquitto","cmnd/ElectroDragon3/POWER1","OFF")
	publish("mosquitto","cmnd/ElectroDragon3/POWER2","OFF")
	publish("mosquitto","cmnd/Living_room/POWER1","OFF")
	Thread::sleep(15000) //15000 миллисекунд в секундах
	publish("mosquitto","cmnd/ElectroDragon1/POWER2","OFF") //прихожая
end

Ответить