Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение DimSun75 » Пн мар 20, 2017 9:17 am

woow писал(а): ESPeasy в логе дёт
Subscribed to: /H801/#
Почему это не всегда отоброжается МДМ не понимаю.
Почитайте в интернете про протокол mqtt. У вас нету понимания как устроен протокол, а без этого дальнейшее движение бессмысленно.

Отправлено с моего SM-A520F через Tapatalk
Mics78
Сообщения: 28
Зарегистрирован: Чт фев 02, 2017 8:41 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение Mics78 » Пн мар 20, 2017 2:18 pm

woow писал(а):В МДМ один из не приятных недостатков, что в УСТРОЙСТВА/MQTT данные обновляются только тогда если поступают новые, а если передатчик перестал передавать они там остаются неизменными и наш умный дом выглядит очень глупо, также при подключении данного устройства выше упомянутой таблице появилась строка (может быть её следует называть топиком) Н801 и т.д., но во время экспериментов я её стёр и всё она больше не появляется.
ESPeasy в логе дёт
Subscribed to: /H801/#
Почему это не всегда отоброжается МДМ не понимаю.
Выше Вам nick7zmail привёл 2 ссылки на youtube. Потратьте час времени, посмотрите. На мой взгляд, лучше начать со второй.
Уверяю, многие вопросы снимутся и рекомендации станут более понятными.
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение woow » Вт мар 21, 2017 1:38 am

вот чтобы нормально пояснить или прочесть о чём речь, так нет посылать на гоогл искать mqtt. Да есть там и больше клипов, даже есть как RGB лампой управлять с МДМ, но на Windows а уменя Малина.
А вся идея та в чём, в том что есть нормальная универсальная прошивка для ESP с открытым кодом, которую можно править по собственному желанию, чего не имеет это МДМ в своей коллекции поддерживаемых серверов.
Многие новички мучается с вопросами как то, как это, мне надо... а отвечать, тем более код писать не кому. Так вот есть прошивка и про неё уже не я первый задаю вопросы, приручить её к МДМ и пользоваться. Но она имеет один существенный недостаток, она незаточена под МДМ поддерживает многие сервера умных домов но МДМ в этом списке нет. По моему опыту сколько сталкивался в практике подходит OpenHAB его подписаться на топики МДМ может с разу и обрабатывать данные и их опубликовывать, а вот как посылать команды есть описание но для Опенхаба, я и спросил знает как это сделать, может ко ни будь, понимает?
Тут делов то , если понимаешь что делаешь, это взять еспешку с обвязкой для прошивки (модуль Н801 совсем необязательный), прошить ESPeasy и попробовать самим эти две строки прописать, мне это полная путаница, вокруг кручусь куда не ткнёшь там свойства, то методы и т.д.
нижние две строки
Последний раз редактировалось woow Вт мар 21, 2017 2:04 pm, всего редактировалось 2 раза.
Raspberry Pi 3B+
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение DimSun75 » Вт мар 21, 2017 8:00 am

Почему вы так упорно не читаете то, что вам пишут? Нет никакой незаточенности ESPEasy по мдм. Ему в принципе нафиг с кем работать, тем более по mqtt. Да, наверное проще было бы записать просто значение цвета. Но и то, что требует прошивка не сильно сложнее. А Гугл вас послали, и я в том числе, за минимальными базовыми знаниями.

Отправлено с моего SM-A520F через Tapatalk
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение SolarW » Вт мар 21, 2017 10:22 am

woow писал(а):вот чтобы нормально пояснить или прочесть о чём речь, так нет посылать на гоогл искать mqtt.
Я вот со стороны смотрю и вижу следующую картину.
Вам говорят - сходите в школу, выучите цифры (почитайте что вообще такое протокол MQTT).
А вы в ответ - да зачем мне цифры, вы объясните как вот это квадратное уравнение решать (да зачем мне знать что такое MQTT, объясните как диммером из МД по MQTT управлять).
Варианты решения вашего вопроса вам уже указали (несколько раз) - беда в том, чтобы этими подсказками воспользоваться нужно хотя бы цифры знать (что такое MQTT брокер, кто такое топики, кто и что туда пишет и как читает)...
За это сообщение автора SolarW поблагодарил:
woow (Вт мар 21, 2017 2:28 pm)
Рейтинг: 1.16%
Mics78
Сообщения: 28
Зарегистрирован: Чт фев 02, 2017 8:41 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение Mics78 » Вт мар 21, 2017 2:51 pm

woow писал(а):вот чтобы нормально пояснить или прочесть о чём речь, так нет посылать на гоогл искать mqtt. Да есть там и больше клипов, даже есть как RGB лампой управлять с МДМ, но на Windows а уменя Малина.
А вся идея та в чём, в том что есть нормальная универсальная прошивка для ESP с открытым кодом, которую можно править по собственному желанию, чего не имеет это МДМ в своей коллекции поддерживаемых серверов.
Многие новички мучается с вопросами как то, как это, мне надо... а отвечать, тем более код писать не кому. Так вот есть прошивка и про неё уже не я первый задаю вопросы, приручить её к МДМ и пользоваться. Но она имеет один существенный недостаток, она незаточена под МДМ поддерживает многие сервера умных домов но МДМ в этом списке нет. По моему опыту сколько сталкивался в практике подходит OpenHAB его подписаться на топики МДМ может с разу и обрабатывать данные и их опубликовывать, а вот как посылать команды есть описание но для Опенхаба, я и спросил знает как это сделать, может ко ни будь, понимает?
Тут делов то , если понимаешь что делаешь, это взять еспешку с обвязкой для прошивки (модуль Н801 совсем необязательный), прошить ESPeasy и попробовать самим эти две строки прописать, мне это полная путаница, вокруг кручусь куда не ткнёшь там свойства, то методы и т.д.
нижние две строки
Ну что мне Вам сказать... У меня с теми настройками, о которых я Вам писал и о которых Вы сами говорите, всё работает. Я затрудняюсь ещё как-то предложить Вам варианты решения проблемы.
Может быть Вам стоит пройти по предложенному мной сценарию и на том пункте, который не получится/породит вопросы начать спрашивать конкретно. Ну нельзя в двух цифрах объяснить о "смысле жизни и вообще" :).
И OpenHAB тут ни причём. Ну хотите я Вам прошивку дам, где Majordomo как сервер есть? Только ведь не изменит это ничего - команды те же останутся. И они прекрасно порождаются из Majordomo и ответы прекрасно обрабатываются...
Тут делов то , если понимаешь что делаешь, это взять еспешку с обвязкой для прошивки (модуль Н801 совсем необязательный), прошить ESPeasy и попробовать самим эти две строки прописать, мне это полная путаница, вокруг кручусь куда не ткнёшь там свойства, то методы и т.д.
нижние две строки
У меня их не одна. Только на столе 3. И все с ESPEasy и все с Majordomo работают.

P.S. А у Вас БЕЗ MQTT и Majordomo, прямыми командами, получилось ESPEasy управлять?
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение woow » Вт мар 21, 2017 5:15 pm

Тут вопросы задают есть ли инсталлирован и запущен mosquito server- да есть. В MQTTLens отображается.
Работает на ESP12 собранный климат контроллер посылает разные данные на МДМ.
Mics78 писал(а): у Вас БЕЗ MQTT и Majordomo, прямыми командами, получилось ESPEasy управлять?
Рабочая ли прошивка ESPeasy? Да рабочая, по крайней мере исполняет команды такого рода :
http://<ESP IP address>/control?cmd=PWM,<pin>,<level>
Если вы это имели в виду.
Вот спрашиваете сделал ли это или то, т.э. написать команду, но куда? и тут же ответ иди читай про mqtt, а я теряюсь в МД а не mqtt. Создай свойства, МД где откроешь там свойства.
То что вы предлагали (советовали) тут viewtopic.php?f=8&t=3797&start=30#p48372 сделать это сделано до этого пункта и тут стоп
Mics78 писал(а): Дальше идём в "Панель управления -> Устройства -> MQTT" и открываем последовательно наши топики и привязываем их к объекту "LED_line" и свойствам "cmd" и "status" соответственно.
Теперь если Вы присвоите свойству "cmd" объекта "LED_line" какое-то значение (а именно желаемую команду), то это значение _автоматически_, будет опубликовано в топике "/ligths/cmd" и принято к исполнению ESP'шкой. В ответ Вы получите сообщение в топике "/lights/status", которое, в свою очередь, появится как значение свойства "status" объекта "LED_line".
там есть два поля, не помню буду дома открою посмотрю как они называются один "путь" а другой ...
Raspberry Pi 3B+
Mics78
Сообщения: 28
Зарегистрирован: Чт фев 02, 2017 8:41 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение Mics78 » Вт мар 21, 2017 6:22 pm

Отлично. На конкретные вопросы есть конкретные ответы.
Вы создали объект с неким именем. У этого объекта есть свойства. Так?
Теперрь идём в "Панель управления -> Устройства -> MQTT" там, после экспериментов должна быть запись /H801/cmd. Справа кнопка редактирования. Идём туда. Открываются настройки этого топика. В поле "Связаный объект" выбираем Ваш объект (в моём примере LED_Line). В поле "Свойство" выбираем свойство, в котором у Вас команды устройству (в моём примере "cmd").
Сохраняемся. Идём в топик /H801/status. И привязываем этот же объект только свойство "status". Сохраняемся.
Если Вы не видите в топиках своего объекта, значит он не создан.
Получилось?
Идём дальше. Открываем "Панель управления -> Объекты" Перед Вами список классов, среди которых есть созданный Вами. Около него "+", нажимаем. Появляется Ваш объект. Кликаем по объекту, открывается окно настройки. Переходим в "Свойства". Обратите внимание, там 2 строки закладок, верхняя для класса, нижняя для объекта. Нам нужна нижняя, для объекта.
Кликаем на Поле ввода свойства, появляется возможность ввести значение. Вводим команду, нажимаем "Обновить".
Дальше происходит следующее: Команда сохраняется как значение свойства - автоматически (мы же связали свойство с нужным нам топиком) она там публикуется - ESPEasy читает команду из топика и выполняет её - после чего в топик /H801/status публикует ответ - Majordomo читает ответ из топика - поскольку этот топик у нас связан со свойством "status" нашего объекта этому свойству присваивается значение ответа.
Если Вы отрефрешите страницу свойств Вашего объекта Вы увидите ответ.
Это, так сказать, вручную.
Для автоматической работы Вам надо из PHP кода писать в нужное свойство. А для того, чтобы автоматически читать из какого-то свойства нужно в настройках этого свойства привязать его к методу. В классе, на странице "Свойства" есть такая настройка "Запускать метод при изменении (не обязательно):"
Как пример вот Вам пара моих методов, это всё отладочные наработки.

Этот метод привязан к изменению свойства "status". Его задача понять что туда прилетело. Если прилетел ответ на запрос статуса устройства - вызываем метод Parse_status, если получена информация о том, что ESPEasy перегрузилась запускаем метод Status_restore, если пришла информация,что теряли связь просто пишем в лог.
СпойлерПоказать
$status=$this->getProperty("status");
if($status[0] == "{"){
$this->callMethod('Parse_status');
} elseif ($status == "Rebooted"){
$this->callMethod('Status_restore');
} elseif ($status == "Connection Lost") {
// Просто выводим в лог. Все действия программируем на стороне ESPEasy
Debmes("Потеряли связь");
}
Этот метод разбирает полученный статус. Если это "первичный" ответ от ESPEasy он повторно запрашивает у нег статус, если ответ "вторичный" (на запрос метода) то прописывает полученное значение в соответствующее свойство.
СпойлерПоказать
$data=json_decode($this->getProperty("status"));
$log=$data->log;

if($log==""){
$this->setProperty($data->pin.'-mode', $data->mode);
$this->setProperty($data->pin.'-state', $data->state);
}
if (substr_count("$log", "Set to")){
$this->setProperty("cmd","status,gpio,$data->pin");
Debmes("Переключили");
}
if (substr_count("$log", "Set PWM")){
$this->setProperty("cmd","status,gpio,$data->pin");
Debmes("Мерцаем");
}
if (substr_count("$log", "Pulsed")){
$this->setProperty("cmd","status,gpio,$data->pin");
Debmes("Мигнули");
}
if (substr_count("$log", "tone")){
$this->setProperty("cmd","status,gpio,$data->pin");
Debmes("Попищали");
}
if (substr_count("$log", "rtttl")){
$this->setProperty("cmd","status,gpio,$data->pin");
Debmes("Поиграли музыку");
}
if (substr_count("$log", "Servo")){
$this->setProperty("cmd","status,gpio,$data->pin");
Debmes("Дёрнули серву");
}
Этот метод запускается после перезагрузки ESPEasy и восстанавливает значения портов, которые мне надо восстановить.
СпойлерПоказать
for ($i=1;$i<17;$i++){
if ($i!=6 && $i!=7 && $i!=8 && $i!=11){ // Отсекаем пины SPI
$mode=$this->getProperty("$i-mode");
$state=$this->getProperty("$i-state");
switch ($mode){
case "output":
$this->setProperty("cmd", "gpio,$i,$state");
Debmes("pin $i mode output");
break;
case "PWM":
$this->setProperty("cmd", "pwm,$i,$state");
Debmes("pin $i mode pwm");
break;
}
}
}
Методы рабочие, но незакончена логика. Это отладочный механизм.

Спрашивайте дальше. Чем смогу - помогу.
За это сообщение автора Mics78 поблагодарили (всего 2):
SolarW (Вт мар 21, 2017 8:41 pm) • woow (Ср апр 05, 2017 9:16 am)
Рейтинг: 2.33%
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение woow » Вт мар 21, 2017 8:42 pm

[quote="Mics78"]Отлично. На конкретные вопросы есть конкретные ответы.
Вы создали объект с неким именем. У этого объекта есть свойства. Так?
Теперрь идём в "Панель управления -> Устройства -> MQTT" там, после экспериментов должна быть запись /H801/cmd. [quote]
я вот про это название если произвольное, то путь это какой?
Последний раз редактировалось woow Чт мар 23, 2017 1:17 am, всего редактировалось 2 раза.
Raspberry Pi 3B+
Mics78
Сообщения: 28
Зарегистрирован: Чт фев 02, 2017 8:41 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo

Сообщение Mics78 » Вт мар 21, 2017 9:18 pm

Вообще, если Вы давали команды через MQTTlens, то у Вас все топики уже должны быть и новый создавать не надо.
Но, ничуть не хуже создать руками.
"Название" - автоматически созданный топик названием будет иметь свой путь. Т.е. в Вашем случае, для этой картинки, /H801/cmd. Но название, насколько я понимаю, может быть любым.
"Путь" - Ваш топик - для этой картинки /H801/cmd

Для "status" замените "cmd" на "status".
Ответить