Xor

 
<<< Назад

MQTT в МДМ - способ обработки топика через метод

привязка к свойству по ср. с методом. иногда полезно

Вот приходит от москита сложный топик - от pzem или розетки с энергопотреблением типа:
из консоли tasmota
13:38:23.078 MQT: tele/refoss2/SENSOR = {"Time":"2023-10-29T13:38:23","ANALOG":{"Temperature":24.9},"ENERGY":{"TotalStartTime":"2023-10-28T17:34:20","Total":1.736,"Yesterday":1.296,"Today":0.441,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":197,"Current":0.000},"TempUnit":"C"}

модуль предлагает на выбор 2 варианта работы с таким топиком
image-1698576212952.png
синее - модуль сам рекурсивно разбирает джасон и позволяет конечные сущность привязать к элементам МДМ
зеленое - привязываем полный топик к методу существующего объекта и там уже распихиваем внутри мдм по нужным сущностям
image-1698576640012.png
вот код метода объекта (в классовом - пусто)

//debmes($params);
if(isset($params['VALUE'])){
  $sensors = json_decode( $params['VALUE'], true);// в массив
  //debmes($sensors);
  //debmes($sensors['ENERGY']['Current'].' A');
  //debmes($sensors['ENERGY']['Power'].' W');
  $this->setProperty('power', (float)$sensors['ENERGY']['Power']);//в свойство текущего объекта
  //debmes($sensors['ENERGY']['Today'].' kWh');
  $this->setProperty('energyToday', (float)$sensors['ENERGY']['Today']);//в свойство текущего объекта
  sg('boiler2_power.value',  (float)$sensors['ENERGY']['Power']);//в свойство любого другого объекта
sg('temperature25.value',  (float)$sensors['ANALOG']['Temperature']);//в свойство любого другого объекта
}

Привязка к методу хранится только в одном месте - таблице москита, в отличие от привязки свойства - там уже метится в нескольких, что может доставлять неудобства при аварии.

Обсуждение (0) (3)

Смотрите так же:
12.02.2024 Китайская панель в подрозетник с экраном 480*480
03.04.2023 Todoer: обмен данными с Яндекс календарём
31.03.2023 Todoer: календарь на год
30.03.2023 Todoer: анонс + программное создание задачи
08.05.2022 Глобальный поиск - добавление своих сущностей. Upd Внедрено
05.01.2022 Яндекс Лампочка в Yandex Devices - добавление сцен
18.04.2021 Переезд на мастер спустя год
24.03.2021 Ещё о старте/остановке МДМ в Винде
18.02.2021 Модуль Todoer
06.01.2021 Для виндузятников - перенос бд на рам-диск
22.11.2020 Календарь-планировщик
01.08.2020 Irbis как терминал
18.05.2020 Китайская камера rtsp + vlc как перекодировщик для html
12.05.2020 Опыт интеграции МДМ с Я.Алисой ещё одним способом - без белого адреса, москита, ПУ.(дополнено)
07.05.2020 Поправим формат даты в Панели управления
11.04.2020 Баловство с шаблонами
26.03.2020 Простые правила - вариант модуля. ч. 2
25.03.2020 Простые правила - вариант модуля
20.12.2019 расширение средств работы с events updated
20.11.2019 По следам наших выступлений - сколько мы наэкономили?
04.11.2019 Группа как объект - экономим на коде - 2
26.10.2019 Прикручиваем Grafana к Мажордому
11.10.2019 Группа как объект - экономим на коде
25.09.2019 Если у вас нет телеги...
11.09.2019 Датчик присутствия из ип камеры
30.07.2019 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
24.06.2019 Форматированный отчет в телеграм - имитация таблицы
30.04.2019 Используем зомбо-ящик в Мажордомо
24.03.2019 О среднем в Мажордомо
31.10.2018 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений
16.09.2018 Перезагрузка Мажордомо в Win-системах

Домодедово, Россия

На форуме: xor