Добрый день!
Возник вопрос по MQTT.
На WB7 установил majordomo. В нем из макета дополнений установил дополнение для интеграции данных с контроллера Wirenboard.
В правилах WB написан скрипт, в нем создано виртуальное устройство кнопка(вкл\выключения)
Данные по состоянию кнопки(виртуального устройства) в MJ через mqtt получаю.
Создал кнопку в веб интерфейсе MJ.
Связал объект с данным значением, но данные из MJ в wirenboard не передаются
Не пойму почему не работает, может кто подскажет куда копать.
Если захожу по ssh и запускаю команду
mosquitto_pub -t “/devices/1alarmVkl/controls/enable d /on” -m “0”
То в интерфейсе wirenboard кнопка меняет значение.
Как из веб интерфейса MJ изменить значение в wirenboard
И что означает readonly в передаваемых значениях wirenboard?
А из majordomo не хочет.
Поэтому у меня 2 вопроса
1)И что означает readonly в передаваемых значениях wirenboard? И влияет он на передачу данных MQTT в обратном направлении?
2) Как понять в чем проблема при передачи данных из MJ в WB? Куда копать?
Где именно? Что и кому передается, какой топик?
Я совершенно не понимаю на что смотреть на картинке, мне бы для понятности просто текстом…
Что и куда публикуется из внешнего ПО, как оно должно (предположительно) работать и как работает.
Есть wirenboard 7 на нем установлен majordomo. В majordomo из маркета дополнений установлен модуль Wirenboard который по протоколу mqtt передает данные в majordomo.
Настройки модуля
Но он их не передает
Может в magordomo тоже надо поднять mqtt ? Или он пользуется mosquitto_pub который установлен на wb7(так как magordomo установлен на одном сервере?)
Так, отлично. Что должно публиковаться и в какой топик? Я вижу верный путь тут: “/devices/1alarmVkl/controls/enabled/on”
При публикации в него - switch изменит состояние.
По какому пути вы публикуете из “Majordomo”?
Вот тут я не могу точно сказать по какому пути.
Обычно я привязывал связанный объект к данным полученным через mqtt и они через метод switch меняли данные(но это прокатывало на raspberry и там запущен был модуль mqtt)
Сейчас в модуле mqtt нет данных, они собираются в модуле wirenboard.
То есть настраиваете интеграцию - но не знаете как работает настраиваемое? А в документации к “Majordomo” нет описания?
То есть у вас цель - записать в топик (известный) значение (известное) но не знаете как это сделать именно в этом ПО?
И вы не можете сказать куда будет писаться значение?
Не совсем так. Принцип работы mqtt я понимаю. Настраивал на raspberry.
Но есть не понимание определtнной части. На wb7 (одном устройстве) работают два сайта(WB и MJ) WB получает данные по mqtt протоколу и на нем все работает(так как данные я могу и получить и изменить, что из веб интерфейса, что из консоли)
В MJ я могу через дополнительный модуль подключаемый к сайту по этому же протоколу получить данные, но не могу их менять и меня смущает первое это написано значение(только для чтения readonly).Ввиду того, что как работает этот дополнительный модуль я не нашел, может он действительно только считывает значения а обратно не отдает и второе если я устанавливаю дополнительный модуль mqtt то он пишет, что он online и работаеn (и как я понимаю он обращается к тому же mosquitto, что и сайт WB). но при этом данные не собирает. Поэтому пока пытаюсь разобраться если начну изменять настройки mosquitto чтобы работал модуль MQTT в MJ, повлияет это на работу WB ? Так как в моем понимании они используют один и тот же сервис mosquitto.
Либо думаю как изменить подход.
Я хотел правила для устройств писать на js в wb-rules и потом управлять через web интерфейс MJ и телефонный модуль mjdroid.
А тут если не получится то придется пересматривать подход.
Либо разобраться как в php написать прямую команду mosquitto_pub -t “/devices/1alarmVkl/controls/enabled/on” -m “1”
для обращения через mqtt для изменения значения в виртуальном устройстве WB.
Или как в php изменить переменную в js скрипте, чтобы включить выключить виртуальную кнопку?
В общем пока экспериментирую и пытаюсь разобраться как лучше и на чем лучше сделать.
Это написано в самом интерфейсе Majordomo?
Если значение удачно меняется с помощью mosquitto_pub и изменение отрабатывает - нет разницы откуда его записывать.
Ну, тогда имеют смысл эксперименты - например публиковать что-то в несуществующий топик /temp/temp1 и посмотреть - публикуется ли.
Не надо менять настройки брокера. Он уже работает.
А в чем преимущества такого подхода? Именно “с телефона” удобнее Яндекс УД.
Посмотрел-поискал на форумах, проблем не увдел. Может что-то очевидное не замечаем? А на самом Majordomo - подсказывают?
Посмотрел-поискал на форумах, проблем не увдел. Может что-то очевидное не замечаем? А на самом Majordomo - подсказывают?
На Majordomo ответили
ничего не знаю про виренбоард, но вижу, что у вас данные привязаны одновременно к статусу и методу свич объекта. в модуле москита автор специально заблокировал такую ситуацию. какова логика у вас?
А в чем преимущества такого подхода? Именно “с телефона” удобнее Яндекс УД.
Я пока не ищу преимущества, я пытаюсь разобраться в системе и понять как мне удобнее и что можно сделать. Понять что нужно изучить и с чем разобраться
Хочу получить следующее
сигнализацию в загородном доме(проводные датчики подключенные к mcm8) и отправка уведомлений к себе по sms или telegram
2)Управление светом и электричеством. У меня везде настенные выключатели и розетки zigbee (остались от Xiaomi шлюза).
управление (эл. котлом) телым полом
получение данных с датчиков подключенных к nodemcu(управление теплицей)
показания счетчика по rs485 [Энергомера CE102M подключить через USBадаптер]
И управление этим всем с телефона(удаленно через openvpn или pptp-vpn) в удобном интерфейсе , а позднее приобрести яндекс станцию и управлять голосом
А я пока эксперементирую на том что есть и пробую чтобы понять как удобнее и что проще и где какие костыли. Часть получилось реализовать, но хочется удобный и в тоже время не сильно замороченный интерфейс управления с телефона.
Что такое Яндекс УД?
Есть еще wifi реле на Din-рейке, sonoff управляются через программу ewelink, В дальнейшем было бы не плохо и их прикрутить
В общем мозгу не даю засохнуть )) Хобби так сказать, ну и интересно.
Забавно. Но “статус” - как раз “/devices/1alarmVkl/controls/enabled”
А “метод” - “/devices/1alarmVkl/controls/enabled/on”
Верно описывают, один и тот же топик использовать для установки нового значения и для чтения состояния - нельзя, цикл возникнет.
Согласен.
Вопрос.
у меня два сайта на wb7
один по адресу 192.168.1.64 и находится по пути /var/www
второй по адресу 192,168,1,64:82 и находится по пути /mnt/data/majordomo
Если попробовать на php обратиться к переменной в js скрипте по пути где лежат скрипты /mnt/data/etc/wb-rules то мне надо делать разрешения для этих папок и файлов? Чтобы можно было прочитать значения переменных из php?
На сколько я помню в debian там идут разграничения по доступу? И если да то как и для какого пользователя это делается? www-data или root(хотя у него полный доступ)