Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Модератор: immortal
-
- Сообщения: 28
- Зарегистрирован: Чт фев 02, 2017 8:41 pm
- Благодарил (а): 3 раза
- Поблагодарили: 3 раза
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Я тут выпал немного из процесса... Проблема решилась?
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
да куда там, как глухой со слепым... я уже и бараном стал, глядишь и шашлыком вскоре стану.Mics78 писал(а):Я тут выпал немного из процесса... Проблема решилась?
Знал бы что такое топик, как и куда он пишется и остальные премудрости МДМ не задавал бы глупые вопросы . Эта китайская фишка столько не стоит, сколько я на её время потратил.
Raspberry Pi 3B+
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Вот это не в вашу сторону было...Во первых это так сказать "устойчивое выражение", во вторых в сторону esp, МД и MQTT...простите если восприняли на свой счет...ни коем образом ни хотел обидеть.woow писал(а):да куда там, как глухой со слепым... я уже и бараном стал, глядишь и шашлыком вскоре стану.
Топиком называется адрес подписки/публикации какого либо значение такого вида: /ESP/Relays/Relay1/state (например)...у вас, как я помню, на скрине их было много, но не было нужного)) надо создать тот, который я описал....woow писал(а):Знал бы что такое топик, как и куда он пишется и остальные премудрости МДМ не задавал бы глупые вопросы .
А вообще посмотрите видео...сам из первого о протоколе узнал, второе уже записал...там более низкий уровень.
https://www.youtube.com/watch?v=4O-2dJwRQtg
https://www.youtube.com/watch?v=gL3UM_HuXAM
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 28
- Зарегистрирован: Чт фев 02, 2017 8:41 pm
- Благодарил (а): 3 раза
- Поблагодарили: 3 раза
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Рискну предложить свой путь поиска проблемы. По ходу дела задам пару вопросов, но он не принципиальны. Если какие-то из нижеприведённых утверждений ошибочны - говорите. Если что-то покажется очевидным - не взыщите, считаю, нужно исключить все неопределённости.
А. Что у нас есть
1. Настроенный и работоспособный MQTT сервер. Установлен Mosquitto? Настройки конфигурации по умолчанию?
2. Установленный Majordomo с настроенным коннектом к MQTT и подпиской "#".
3. Работающая ESPEasy без аппаратных проблем подключения ленты. В логе ESP, после загрузки, видим строки "MQTT: Connected broker" и "Subscribed to: /какое-то имя/#".
4. Всё это находится в одной подсети.
5. Установленный и подключенный к MQTT серверу MQTTlens. Если нет, я вынужден настаивать, он сильно упростит диагностику.
Б. Что проверяем
0. В левой части окна MQTTlens, "Connections" нажимаем "+" и настраиваем соединение. Нужно только дать имя соединению и указать адрес сервера. После выхода из настройки должно появиться соединенеие с лидирующим зелёным кружком и смволом паузы в нём. Это если не было до этого сделано.
1. В MQTTlens в подразделе Subscribe в поле, в котором написано "topic" вводим # и нажимаем "Subscribe". Мы подписались на все топики и будем видеть информацию из каждой публикации каждого клиента, подключенного к MQTT серверу.
2. В подразделе Publish, в первом поле "topic", пишем "/test/status" - без кавычек именно так как я написал. Вот это и есть конкретно заданный топик. Во втором поле "Message" пишем что-нибудь, например, "Хорошая погода". Нажимаем "Publish".
3. В нижней части окна мы должны увидеть сообщение от MQTT сервера. Там будет время, название топика (/test/status) и Ваше сообщение (Хорошая погода).
Если предыдущие 3 пункта выполнены успешно - идём дальше. Иначе ищем проблемную часть. Она может быть либо в неправильно настроенном MQTTlens, либо в неработающем MQTT сервере.
4. Смотрим в Majordomo. "Панель управления" -> "Устройства" -> "MQTT". Там должны увидеть наше послание. В столбце "Название" - /test/status, в столбце "Значение" - Хорошая погода.
Если нет - сначала обновляем страницу браузера. Если не появилось - проверяем настройки MQTT Majordomo.
MajorDoMo Client: - имя клиента, как нравится.
Hostname: (*) - localhost, если MQTT север и Majordomo на одном компьютере, IP адрес или имя компьютера, если на другом, лучше IP, чтобы избежать проблем разрешения имён.
Port: (*) - 1883 - его не трогаем Если Вы не переопределяли порт MQTT сервера.
Subscription path: (*) - #
Нажимаем "Обновить" и повторяем всё с п.1
До тех пор пока эта связка не заработает двигаться дальше в части привязки управления к Majordomo большого смыслал не имеет.
В. Управляем ESPEasy и лентой.
0. На закладке "Config" ESPEasy имеем: В поле "Name" - какое-то имя, пусть Lights (дальше буду на него ссылаться). Protocol - OpenHAB MQTT (можно и другие, но с этим точно работает). Locate Controller - Use IP address. Controller IP - адрес Вашего MQTT сервера. Controller Port - 1883. Sensor Delay - 60 (нужно в тестовых целях).
1. В настройках ESPEasy "Devices" должно быть устройство лента. "Lights" по-моему. С корректными настройками.
2. Добавьте ещё одно устройство "System info", Name - Uptime, delay - 60, IDX/Var - 1 (его никогда нельзя оставлять 0, любое число, но не 0, это касается ВСЕХ устройств, ленты тоже), Indicator - Uptime. Больше ничего не трогаем - нажимаем Submit.
После добавления п.2 Вы должны 1 раз в минуту получать сообщение в топик /lights/Uptime со значением uptime. Видеть это Вы должны и в MQTTlens и в Majordomo (там появится новый топик /lights/Uptime, не забывайте обновлять страницу). Если этого нет - смотрите настройки ESPEasy. Если работает - идём дальше.
3. В MQTTlens в топик /lights/cmd публикуем команды ленте. В ответ Вы должны получать реакцию железа, сообщение в топике /lights/status. В Majordomo должны появиться 2 топика /lights/cmd и /lights/status. Значения в этих топиках должны совпадать с тем, что Вы вводите/видите в MQTTlens.
Если работает - замечательно. Вы в полушаге от победы. Если нет ищем почему.
Маленькое отступление, пока вспомнил. Вы про управление ESPEasy через http://IP/control?cmd=команда знаете? Убедиться, что без MQTT всё управляется можно с его помощью.
Возвращаемся.
Если всё предыдущее работает, то как Вам уже писал уважаемый nick7zmail - связываем топики Вашего устройства с объектом Majordomo. Тут я сильно новичок, поэтому попробую на совсем дилетантстком уровне.
У Вас должен быть объект с минимум 2 мя свойствами, пусть они называются "cmd" и "status". А объект пусть называется "LED_Line". Откуда возьмётся этот объект? Он возьмётся из класса. Лучше создайте свой - меньше путаницы.
Для этого идёте в "панель управления -> объекты" и нажимаете "Добавить новый класс". Родительский класс -no-, имя по вкусу, пусть - ESPEasy_lights. "Добавить". Появляются новые вкладки. На вкладке "Свойства" добавляете вышеуказанные свойства. Во вкладке "Методы" Вы потом будете длобавлять методы и писать код. На вкладке "Объекты" добавляете вышеуказанный объект.
Я не специалист в объектно-ориентированном программировании. Объяснил как смог.
Дальше идём в "Панель управления -> Устройства -> MQTT" и открываем последовательно наши топики и привязываем их к объекту "LED_line" и свойствам "cmd" и "status" соответственно.
Теперь если Вы присвоите свойству "cmd" объекта "LED_line" какое-то значение (а именно желаемую команду), то это значение _автоматически_, будет опубликовано в топике "/ligths/cmd" и принято к исполнению ESP'шкой. В ответ Вы получите сообщение в топике "/lights/status", которое, в свою очередь, появится как значение свойства "status" объекта "LED_line".
На этом всё. О том, что с этими свойствами и как делать в Majordomo, надеюсь, Вам подскажут более сведующие. Я сам Majordomo по вечерам едва месяц как поглядываю.
P.S.
Кстати, про баранов...
Revenon a nous mutons (дословно "вернёмся к нашим баранам") (могу слегка ошибиться в написании, пользоваться французским закончил в 90-ом году), действительно, устойчивое выражение, означающее по-русски "Вернёмся к нашим делам (вопросу, теме разговора).
Так что не стоит обижаться. Образное изложение способствует восприятию. Это не нотация и не замечание, а просто мнение.
Модератор, прошу извинить за флуд.
А. Что у нас есть
1. Настроенный и работоспособный MQTT сервер. Установлен Mosquitto? Настройки конфигурации по умолчанию?
2. Установленный Majordomo с настроенным коннектом к MQTT и подпиской "#".
3. Работающая ESPEasy без аппаратных проблем подключения ленты. В логе ESP, после загрузки, видим строки "MQTT: Connected broker" и "Subscribed to: /какое-то имя/#".
4. Всё это находится в одной подсети.
5. Установленный и подключенный к MQTT серверу MQTTlens. Если нет, я вынужден настаивать, он сильно упростит диагностику.
Б. Что проверяем
0. В левой части окна MQTTlens, "Connections" нажимаем "+" и настраиваем соединение. Нужно только дать имя соединению и указать адрес сервера. После выхода из настройки должно появиться соединенеие с лидирующим зелёным кружком и смволом паузы в нём. Это если не было до этого сделано.
1. В MQTTlens в подразделе Subscribe в поле, в котором написано "topic" вводим # и нажимаем "Subscribe". Мы подписались на все топики и будем видеть информацию из каждой публикации каждого клиента, подключенного к MQTT серверу.
2. В подразделе Publish, в первом поле "topic", пишем "/test/status" - без кавычек именно так как я написал. Вот это и есть конкретно заданный топик. Во втором поле "Message" пишем что-нибудь, например, "Хорошая погода". Нажимаем "Publish".
3. В нижней части окна мы должны увидеть сообщение от MQTT сервера. Там будет время, название топика (/test/status) и Ваше сообщение (Хорошая погода).
Если предыдущие 3 пункта выполнены успешно - идём дальше. Иначе ищем проблемную часть. Она может быть либо в неправильно настроенном MQTTlens, либо в неработающем MQTT сервере.
4. Смотрим в Majordomo. "Панель управления" -> "Устройства" -> "MQTT". Там должны увидеть наше послание. В столбце "Название" - /test/status, в столбце "Значение" - Хорошая погода.
Если нет - сначала обновляем страницу браузера. Если не появилось - проверяем настройки MQTT Majordomo.
MajorDoMo Client: - имя клиента, как нравится.
Hostname: (*) - localhost, если MQTT север и Majordomo на одном компьютере, IP адрес или имя компьютера, если на другом, лучше IP, чтобы избежать проблем разрешения имён.
Port: (*) - 1883 - его не трогаем Если Вы не переопределяли порт MQTT сервера.
Subscription path: (*) - #
Нажимаем "Обновить" и повторяем всё с п.1
До тех пор пока эта связка не заработает двигаться дальше в части привязки управления к Majordomo большого смыслал не имеет.
В. Управляем ESPEasy и лентой.
0. На закладке "Config" ESPEasy имеем: В поле "Name" - какое-то имя, пусть Lights (дальше буду на него ссылаться). Protocol - OpenHAB MQTT (можно и другие, но с этим точно работает). Locate Controller - Use IP address. Controller IP - адрес Вашего MQTT сервера. Controller Port - 1883. Sensor Delay - 60 (нужно в тестовых целях).
1. В настройках ESPEasy "Devices" должно быть устройство лента. "Lights" по-моему. С корректными настройками.
2. Добавьте ещё одно устройство "System info", Name - Uptime, delay - 60, IDX/Var - 1 (его никогда нельзя оставлять 0, любое число, но не 0, это касается ВСЕХ устройств, ленты тоже), Indicator - Uptime. Больше ничего не трогаем - нажимаем Submit.
После добавления п.2 Вы должны 1 раз в минуту получать сообщение в топик /lights/Uptime со значением uptime. Видеть это Вы должны и в MQTTlens и в Majordomo (там появится новый топик /lights/Uptime, не забывайте обновлять страницу). Если этого нет - смотрите настройки ESPEasy. Если работает - идём дальше.
3. В MQTTlens в топик /lights/cmd публикуем команды ленте. В ответ Вы должны получать реакцию железа, сообщение в топике /lights/status. В Majordomo должны появиться 2 топика /lights/cmd и /lights/status. Значения в этих топиках должны совпадать с тем, что Вы вводите/видите в MQTTlens.
Если работает - замечательно. Вы в полушаге от победы. Если нет ищем почему.
Маленькое отступление, пока вспомнил. Вы про управление ESPEasy через http://IP/control?cmd=команда знаете? Убедиться, что без MQTT всё управляется можно с его помощью.
Возвращаемся.
Если всё предыдущее работает, то как Вам уже писал уважаемый nick7zmail - связываем топики Вашего устройства с объектом Majordomo. Тут я сильно новичок, поэтому попробую на совсем дилетантстком уровне.
У Вас должен быть объект с минимум 2 мя свойствами, пусть они называются "cmd" и "status". А объект пусть называется "LED_Line". Откуда возьмётся этот объект? Он возьмётся из класса. Лучше создайте свой - меньше путаницы.
Для этого идёте в "панель управления -> объекты" и нажимаете "Добавить новый класс". Родительский класс -no-, имя по вкусу, пусть - ESPEasy_lights. "Добавить". Появляются новые вкладки. На вкладке "Свойства" добавляете вышеуказанные свойства. Во вкладке "Методы" Вы потом будете длобавлять методы и писать код. На вкладке "Объекты" добавляете вышеуказанный объект.
Я не специалист в объектно-ориентированном программировании. Объяснил как смог.
Дальше идём в "Панель управления -> Устройства -> MQTT" и открываем последовательно наши топики и привязываем их к объекту "LED_line" и свойствам "cmd" и "status" соответственно.
Теперь если Вы присвоите свойству "cmd" объекта "LED_line" какое-то значение (а именно желаемую команду), то это значение _автоматически_, будет опубликовано в топике "/ligths/cmd" и принято к исполнению ESP'шкой. В ответ Вы получите сообщение в топике "/lights/status", которое, в свою очередь, появится как значение свойства "status" объекта "LED_line".
На этом всё. О том, что с этими свойствами и как делать в Majordomo, надеюсь, Вам подскажут более сведующие. Я сам Majordomo по вечерам едва месяц как поглядываю.
P.S.
Кстати, про баранов...
Revenon a nous mutons (дословно "вернёмся к нашим баранам") (могу слегка ошибиться в написании, пользоваться французским закончил в 90-ом году), действительно, устойчивое выражение, означающее по-русски "Вернёмся к нашим делам (вопросу, теме разговора).
Так что не стоит обижаться. Образное изложение способствует восприятию. Это не нотация и не замечание, а просто мнение.
Модератор, прошу извинить за флуд.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Хорошо описали)) лично я просто не уверен был есть ли у данной прошивки вывод в serial подписки на топики и т.п. Как и говорил с этой прошивкой не знаком вообще...При желании монитор порта вообще пустым может быть))
Вот и пытался объяснить - откуда бы топик mqtt взять.
Отправлено с моего Xperia Z через Tapatalk
Вот и пытался объяснить - откуда бы топик mqtt взять.
Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 28
- Зарегистрирован: Чт фев 02, 2017 8:41 pm
- Благодарил (а): 3 раза
- Поблагодарили: 3 раза
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Там даже не в сериал. У неё свой web сервер. Через него и настраивается и минимальное логгирование делает. Вообще прошивка не без косяков. Но довольно простая и бесплатная. Опять же открытые исходники.
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
Привет.
Эта прошивка не принципиальна что бы обязательно её использовать, я набрал для этого устройства, а вернее для этой функции около десяти прошивок, но эта показалась более универсальна, я обращаться и к
https://www.youtube.com/channel/UC9-NW7 ... y7RrOZfZFQ
https://github.com/kmaximv/Wi-Fi-Sensor
у обоих ответ одинаков самим к уже существующим созданным ими прошивкам добавлять шим управляемые какие то добавки не интересно а ковыряться в чужих нет ни желания, ни времени.
Пробовал и Blynk, но его тоже надо интегрировать в МДМ большинство прошивок которые основаны на связи mqtt протокола приспособлены для роботы с OpenHAB или подобных ему.
Эта прошивка не принципиальна что бы обязательно её использовать, я набрал для этого устройства, а вернее для этой функции около десяти прошивок, но эта показалась более универсальна, я обращаться и к
https://www.youtube.com/channel/UC9-NW7 ... y7RrOZfZFQ
https://github.com/kmaximv/Wi-Fi-Sensor
у обоих ответ одинаков самим к уже существующим созданным ими прошивкам добавлять шим управляемые какие то добавки не интересно а ковыряться в чужих нет ни желания, ни времени.
Пробовал и Blynk, но его тоже надо интегрировать в МДМ большинство прошивок которые основаны на связи mqtt протокола приспособлены для роботы с OpenHAB или подобных ему.
Raspberry Pi 3B+
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
В МДМ один из не приятных недостатков, что в УСТРОЙСТВА/MQTT данные обновляются только тогда если поступают новые, а если передатчик перестал передавать они там остаются неизменными и наш умный дом выглядит очень глупо, также при подключении данного устройства выше упомянутой таблице появилась строка (может быть её следует называть топиком) Н801 и т.д., но во время экспериментов я её стёр и всё она больше не появляется.
ESPeasy в логе дёт
Subscribed to: /H801/#
Почему это не всегда отоброжается МДМ не понимаю.
ESPeasy в логе дёт
Subscribed to: /H801/#
Почему это не всегда отоброжается МДМ не понимаю.
Raspberry Pi 3B+
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Ищу диммер для LED на ESP8266+Arduino IDE+MQTT+MajorDoMo
То что когда данные не поступают - ничего не происходит - абсолютно нормально. Просто нужно добавить обработчик, который если данные не обновлялись некое время - объявляет устройство отвалившимся...это написано где-то на страницах помощи на сайте (в FAQ или в Азбуке...точно не помню)...
Топиком правильно называете..
Вы всё таки пробовали моё решение?
Создать топик в модуле MQTT (в МД) /H801/cmd, и попробовать записать в него команды из этого сообщения viewtopic.php?p=47834#p47834
Мне почему то кажется, что это просто обязано работать...
Топиком правильно называете..
Вы всё таки пробовали моё решение?
Создать топик в модуле MQTT (в МД) /H801/cmd, и попробовать записать в него команды из этого сообщения viewtopic.php?p=47834#p47834
Мне почему то кажется, что это просто обязано работать...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<