Очень интересно, но ничего непонятно!

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 10 мар 2019, 09:22

Может понадобится)

Пример интеграции контроллера MegaD-2561 с сервером по протоколу HTTP


Обработка сообщений от MegaD-2561 и формирование ответов
Для того, чтобы принимать от устройства сообщения, необходим Web-сервер. Простейший Web-сервер можно написать самостоятельно. Однако значительно проще использовать уже готовый, например, Apache, lighttpd, nginx, IIS. Установка Web-сервера на Linux или Windows занимает не более нескольких минут.
Далее необходим какой-либо язык программирования. Например, PHP. Это достаточно простой язык программирования с низким порогом вхождения, в котором легко освоиться начинающим пользователям.

MegaD-2561 формирует сообщения вида http://ip-address/script?pt=n, где ip-address - адрес сервера, указанный в сетевых настройка, scipt - скрипт, указанный в сетевых настройках, а n - номер активированного порта. Запрос может выглядеть так http://192.168.0.250/megad.php?pt=6

Соответственно можно создать на сервере простейший скрипт megad.php

<?php
if ( $_GET['pt'] == "6" )
{
// Выполнение действий
}
?>
Собственно, вот и все программирование. Если мы получили сообщение от устройства о нажатии кнопки, подключенной к порту 6, выполняем необходимые действия.
Но мы можем сразу же сформировать ответ, где скажем MegaD-2561, какие выходы должен включить, выключить или переключить контроллер. Тогда скрипт приобретает такой вид.

<?php
if ( $_GET['pt'] == "6" )
{
echo "7:1";
}
?>
Если сработал порт 6, включаем нагрузку, подключенную к порту 7. Формат команды описан выше и соответствует формату поля Action.
Первая цифра - номер порта
Вторая цифра после двоеточия - действие (0 - выключить, 1 - включить, 2 - переключить, изменить состояние на противоположное).
Как и в случае с полем Action, есть возможность дать команды на управление сразу нескольким портам.

echo "7:1;8:0";
Команды разделяются точкой с запятой. Порт 7 - включить, Порт 8 - выключить.


Получение состояния портов
Получить состояние порта можно с помощью любого Web-клиента, в том числе с помощью функций PHP.

URL для получения текущего состояния порта:

http://192.168.0.14/sec/?pt=4&cmd=get
где параметр pt определяет номер порта.

Можно использовать любые удобные функции: file_get_contents(), curl() или socket'ы. Например:

<?php
$state = file_get_contents('http://192.168.0.14/sec/?pt=4&cmd=get');
?>
После выполнения данной команды в переменной $state у нас будет содержаться ON (если порт находит в активном состоянии), OFF или текущее значение, если порт настроен в режим PWM (ШИМ) или ADC (АЦП).

Контроллер также позволяет вывести состояние всех своих портов по команде cmd=all

http://192.168.0.14/sec/?cmd=all


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

http://192.168.0.14/sec/?cmd=10:1
Где формат команды (cmd) стандартный, который описан в разделе про Сценарии (Act).
Если выход настроен как PWM (ШИМ), то допускается указывать значения от 0 до 255

http://192.168.0.14/sec/?cmd=12:150
Пример управления группой (см. описании работы с группами)

http://192.168.0.14/sec/?cmd=g1:1

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 10 мар 2019, 11:35

Коля писал(а):
10 мар 2019, 09:15
...
*для теста сейчас у меня включены 15 , 23 , 28
они должны быть красными, все остаольные голубыми
[Для информации: в Windows для того, чтобы сделать скриншот экрана на клавиатуре имеется специальная клавиша -- "prt scr". Чтобы сделать скриншот только текущего окна используется комбинация клавиш Alt + prt scr. Да и современные браузеры имеют функционал для того, чтобы сохранить в картинку любой фрагмент экрана.]

Теперь ясно. Обратной связи по поводу состояния выключателя не может быть по определению, т.к. у нас выключатель без фиксации.
Тогда о состоянии выключателя (и, соответственно, о необходимом цвете подсветки) мы должны узнать по состоянию выходов на портах MegaD-8I7O-R.
Другими словами, я правильно понимаю, что нам надо всего лишь в зависимости от состояния нагрузки (включено/выключено) на конкретном порту MegaD-8I7O-R подсвечивать красным (включено) или синим (выключено) определенный выключатель?

Если это так, то мне нужен конкретный пример. Т.е., допустим у нас включена лампочка на порту P15, какой командой (приведите код http://192.168.0.14/sec/......) вы включите красную подсветку? Какой командой при выключении порта P15 должна быть включена синяя подсветка?

Аналогичные команды напишите для порта P23.
Мне надо до конца понять ситуацию.

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 10 мар 2019, 12:22

вкл свет на 1 канале (15) красный
http://192.168.0.14/sec/?pt=35&ws=00ff0 ... 00ff0000ff

выкл свет на 1 канале (15) синий
http://192.168.0.14/sec/?pt=35&ws=0000f ... 00ff0000ff

----
вкл свет на 1 канале (15) и на 14 канале (28) красный
http://192.168.0.14/sec/?pt=35&ws=00ff0 ... 00ff00ff00

выкл свет на 1 канале (15) и на 14 канале (28) синий
http://192.168.0.14/sec/?pt=35&ws=0000f ... 00ff0000ff

выкл свет на 1 канале (15) синий и остался включен на 14 канале (28) красный
http://192.168.0.14/sec/?pt=35&ws=0000f ... 00ff00ff00

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 10 мар 2019, 12:23

у меня не MegaD-8I7O-R.
а
Megad-14 R

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 10 мар 2019, 12:38

Хотел бы заострить внимание что в выключателе например 6 кнопок. Может быть включено 1, 2, 5 во общем любое количество. Хоть все. Управление идет одним проводом и соответственно при включении или выключении любой кнопки необходимо отправлять новую команду для всего выключателя.

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 10 мар 2019, 14:54

Я, мягко говоря, не большой специалист в PHP, но если я правильно все понял, можно попробовать запускать такой скрипт.

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

$string = file_get_contents("http://192.168.0.14/sec/?cmd=all");
// Результат будет такой: OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/5;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;ON/14;ON;OFF;OFF;OFF;OFF;OFF;OFF;OFF;ON;OFF;OFF;OFF;OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON

//Берем все значения портов с 15-го по 28-й
$v = explode(";",$string);
$s = $v[15].$v[16].$v[17].$v[18].$v[19].$v[20].$v[21].$v[22].$v[23].$v[24].$v[25].$v[26].$v[27].$v[28];
// Результат будет такой: ONOFFOFFOFFOFFOFFOFFOFFONOFFOFFOFFOFFON

//Заменяем все ON на 00ff00 и все OFF на 0000ff
$command = strtr($s, ['ON'=>'00ff00', 'OFF'=>'0000ff']);
// Результат будет такой: 00ff000000ff0000ff0000ff0000ff0000ff0000ff0000ff00ff000000ff0000ff0000ff0000ff00ff00


//Посылаем команду порту P35
file_get_contents("http://192.168.0.14/sec/?pt=35&ws=".$command);
Останется только дописать в метод switch (как минимум) строчку:

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

runScript("Имя_вашего_скрипта");
Еще надеюсь, что вы не пропустили ценную информацию про светодиодные ленты от ув.d.v.ermakov (https://ab-log.ru/forum/viewtopic.php?f ... 5&start=13).

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 10 мар 2019, 16:27

Ruslan спасибо огромное . Но проверить уже не могу. Делаю только по выходным на даче(. Все тестовое оборудование там. Как доберусь все сразу попробую. Как все допилим можно будет описать если получится)
Про светодиодные ленты читал. Но немного не понял как что то повлияет на подсветки выключателей.

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 10 мар 2019, 16:35

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

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 10 мар 2019, 17:48

Я об этом знал. Но все компании типа которые ремонт делают у нас вгороде даже sumrakoff ничего не заморачиваются.... Потолки натяжные с лентой тоже(.

На самом деле у меня тестово 2 дня включенные лежат чуть теплые. Может конечно потому что 5 вольт.

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

Еще думал дежурный режим светло светло зеленый, пока не включена любая кнопка из выключателя.

nail
Сообщения: 292
Зарегистрирован: 07 окт 2018, 18:03

Re: Очень интересно, но ничего непонятно!

Сообщение nail » 20 мар 2019, 23:13

Вопрос начинающего.
ПУ термостат(Thermostat01) имеет связанные устройства ПУ(Relay10).
При положении "Обычный" -Термостат запускает "Relay10" (конечно с условием температуры выставленной на термостате),
но если есть необходимость просто выключить термостат и нажать на "выкл" он отключается сам , но "Relay10" остается в положении off.
Помогите ,какой самый простой метод и куда вписать что бы при положении термостата "выкл" , он выполнял действие отключить "Relay10"?

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 20 мар 2019, 23:37

Это вопрос чисто по Мажордомо. Подозреваю, что у вас задействованы Простые устройства (Simple Devices). Если это так, по подсказать не могу, поскольку их не использую,

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

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 22 мар 2019, 18:53

Ruslan писал(а):
10 мар 2019, 14:54



только сегодня приехал на дачу. первым делом код через мажордомо пропустил на одну кнопку. все работает. просто супер
Последний раз редактировалось Коля 22 мар 2019, 18:54, всего редактировалось 2 раза.

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 22 мар 2019, 18:54

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

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 23 мар 2019, 00:53

Коля писал(а):
22 мар 2019, 18:54
Ruslan. можно еще попросить в код дописать чтоб если ничего не включено горело зеленым цветом, а когда хоть один включен то уже синие и красные светодиоды
Я правильно понял, что если все выходы выключены, то абсолютно все выключатели должны светится зеленым, а когда хотя бы один выход включен, то абсолютно все выключатели должны светится синим и красным?

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

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 23 мар 2019, 06:50

Ruslan писал(а):
23 мар 2019, 00:53
Я правильно понял, что если все выходы выключены, то абсолютно все выключатели должны светится зеленым, а когда хотя бы один выход включен, то абсолютно все выключатели должны светится синим и красным?

*****
Верно)

Если все 14 выходов выключены, то горит зеленый свет
Если включить любой или любые несколько выходов , то те которые выходы включены подсвечивать светодиод красным, а те выходы которые выключены подсвечивать синим.
Если все выходы выключены - подсвечиваем зеленым.

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 23 мар 2019, 10:10

Коля писал(а):
23 мар 2019, 06:50
Ruslan писал(а):
23 мар 2019, 00:53
...
Если все 14 выходов выключены, то горит зеленый свет
Если включить любой или любые несколько выходов , то те которые выходы включены подсвечивать светодиод красным, а те выходы которые выключены подсвечивать синим.
Если все выходы выключены - подсвечиваем зеленым.
Надо попробовать так:

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

$string = file_get_contents("http://192.168.0.14/sec/?cmd=all");

//Берем все значения портов с 15-го по 28-й
$v = explode(";",$string);
$s = $v[15].$v[16].$v[17].$v[18].$v[19].$v[20].$v[21].$v[22].$v[23].$v[24].$v[25].$v[26].$v[27].$v[28];

//Если в переменной $s содержится "ON", подсвечиваем включенные красным и выключенные синим, а если всё выключено, подсвечиваем все зеленым
if (strpos($s, "ON") !== false) {
$command = strtr($s, ['ON'=>'00ff00', 'OFF'=>'0000ff']);
} else {
$command = strtr($s, ['OFF'=>'ff0000']);
}

//Посылаем команду порту P35
file_get_contents("http://192.168.0.14/sec/?pt=35&ws=".$command);

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 23 мар 2019, 10:40

Просто супер) Вы молодец))спасибо огромное. Мне реально так нужно было!!! Все получилось и работает. Я столько в квартире до этого лишних проводов уже проложил.....

Андрею тоже огромное спасибо что он сделал возможность использования led лент с чипами

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

Re: Очень интересно, но ничего непонятно!

Сообщение Ruslan » 23 мар 2019, 10:45

Рад, что все получилось.
А "лишних" проводов, как правило, не бывает. Спустя некоторое время обычно появляются новые "хотелки", а проводов под них оказывается не предусмотрено...

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

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 23 мар 2019, 10:50

К мажордом прицепил
Вложения
IMG_20190323_134450~01.jpg
IMG_20190323_134450~01.jpg (145.28 КБ) 1970 просмотров
IMG_20190323_134455~01.jpg
IMG_20190323_134455~01.jpg (41.81 КБ) 1970 просмотров

Коля
Сообщения: 466
Зарегистрирован: 28 ноя 2014, 18:50

Re: Очень интересно, но ничего непонятно!

Сообщение Коля » 23 мар 2019, 10:51

Еще
Вложения
IMG_20190323_134439~01.jpg
IMG_20190323_134439~01.jpg (47.24 КБ) 1969 просмотров
IMG_20190323_134412~01.jpg
IMG_20190323_134412~01.jpg (143.83 КБ) 1969 просмотров

Ответить