Страница 5 из 8

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

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

Отправлено с моего SM-A520F через Tapatalk

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

Добавлено: Пн мар 20, 2017 2:18 pm
Mics78
woow писал(а):В МДМ один из не приятных недостатков, что в УСТРОЙСТВА/MQTT данные обновляются только тогда если поступают новые, а если передатчик перестал передавать они там остаются неизменными и наш умный дом выглядит очень глупо, также при подключении данного устройства выше упомянутой таблице появилась строка (может быть её следует называть топиком) Н801 и т.д., но во время экспериментов я её стёр и всё она больше не появляется.
ESPeasy в логе дёт
Subscribed to: /H801/#
Почему это не всегда отоброжается МДМ не понимаю.
Выше Вам nick7zmail привёл 2 ссылки на youtube. Потратьте час времени, посмотрите. На мой взгляд, лучше начать со второй.
Уверяю, многие вопросы снимутся и рекомендации станут более понятными.

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

Добавлено: Вт мар 21, 2017 1:38 am
woow
вот чтобы нормально пояснить или прочесть о чём речь, так нет посылать на гоогл искать mqtt. Да есть там и больше клипов, даже есть как RGB лампой управлять с МДМ, но на Windows а уменя Малина.
А вся идея та в чём, в том что есть нормальная универсальная прошивка для ESP с открытым кодом, которую можно править по собственному желанию, чего не имеет это МДМ в своей коллекции поддерживаемых серверов.
Многие новички мучается с вопросами как то, как это, мне надо... а отвечать, тем более код писать не кому. Так вот есть прошивка и про неё уже не я первый задаю вопросы, приручить её к МДМ и пользоваться. Но она имеет один существенный недостаток, она незаточена под МДМ поддерживает многие сервера умных домов но МДМ в этом списке нет. По моему опыту сколько сталкивался в практике подходит OpenHAB его подписаться на топики МДМ может с разу и обрабатывать данные и их опубликовывать, а вот как посылать команды есть описание но для Опенхаба, я и спросил знает как это сделать, может ко ни будь, понимает?
Тут делов то , если понимаешь что делаешь, это взять еспешку с обвязкой для прошивки (модуль Н801 совсем необязательный), прошить ESPeasy и попробовать самим эти две строки прописать, мне это полная путаница, вокруг кручусь куда не ткнёшь там свойства, то методы и т.д.
нижние две строки

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

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

Отправлено с моего SM-A520F через Tapatalk

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

Добавлено: Вт мар 21, 2017 10:22 am
SolarW
woow писал(а):вот чтобы нормально пояснить или прочесть о чём речь, так нет посылать на гоогл искать mqtt.
Я вот со стороны смотрю и вижу следующую картину.
Вам говорят - сходите в школу, выучите цифры (почитайте что вообще такое протокол MQTT).
А вы в ответ - да зачем мне цифры, вы объясните как вот это квадратное уравнение решать (да зачем мне знать что такое MQTT, объясните как диммером из МД по MQTT управлять).
Варианты решения вашего вопроса вам уже указали (несколько раз) - беда в том, чтобы этими подсказками воспользоваться нужно хотя бы цифры знать (что такое MQTT брокер, кто такое топики, кто и что туда пишет и как читает)...

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

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

P.S. А у Вас БЕЗ MQTT и Majordomo, прямыми командами, получилось ESPEasy управлять?

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

Добавлено: Вт мар 21, 2017 5:15 pm
woow
Тут вопросы задают есть ли инсталлирован и запущен 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".
там есть два поля, не помню буду дома открою посмотрю как они называются один "путь" а другой ...

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

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

Этот метод привязан к изменению свойства "status". Его задача понять что туда прилетело. Если прилетел ответ на запрос статуса устройства - вызываем метод Parse_status, если получена информация о том, что ESPEasy перегрузилась запускаем метод Status_restore, если пришла информация,что теряли связь просто пишем в лог.
SPOILERSPOILER_SHOW
$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 он повторно запрашивает у нег статус, если ответ "вторичный" (на запрос метода) то прописывает полученное значение в соответствующее свойство.
SPOILERSPOILER_SHOW
$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 и восстанавливает значения портов, которые мне надо восстановить.
SPOILERSPOILER_SHOW
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;
}
}
}
Методы рабочие, но незакончена логика. Это отладочный механизм.

Спрашивайте дальше. Чем смогу - помогу.

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

Добавлено: Вт мар 21, 2017 8:42 pm
woow
[quote="Mics78"]Отлично. На конкретные вопросы есть конкретные ответы.
Вы создали объект с неким именем. У этого объекта есть свойства. Так?
Теперрь идём в "Панель управления -> Устройства -> MQTT" там, после экспериментов должна быть запись /H801/cmd. [quote]
я вот про это название если произвольное, то путь это какой?

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

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

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