Re: mqtt
Добавлено: Пт апр 26, 2019 9:28 am
Добрый день всем. Если в топике mqtt передается строка такого вида dv_12v=13.9&dv_gsm1=28&dv_gsm2=0 как сделать что бы выводить эти данные раздельно в МД а не всю строку сразу?
Если нет возможности нормально отправлять значения в MQTT - остается их разбирать после приёма.noname_npc писал(а): Пт апр 26, 2019 9:28 am Добрый день всем. Если в топике mqtt передается строка такого вида dv_12v=13.9&dv_gsm1=28&dv_gsm2=0 как сделать что бы выводить эти данные раздельно в МД а не всю строку сразу?
Дефолтно свитч это объект там в объектах(объекты\сдевайсы\сконтроллеры\среле\свитч) меняется его статус вкл=1 выкл=0 (объекта свитч). когда железяку (вифи выключатель или контроллер) соединишь с брокером задав железяке адрес брокера в модуле мкутт мажордома появится статус железяки и в модуле мкутт надо прикрутить её к объекту. както так если попростомуsampl писал(а): Пн апр 15, 2019 9:24 am Ребят подскажите с дэфолт сцене МЖД какой топик и какая команда для Свичь1 на вкл-выкл пытаюсь разобраться с этой системой![]()
Определитесь с вопросом. Вам непонятно, как создать метод или какой код написать в созданный метод?noname_npc писал(а): Сб апр 27, 2019 11:10 am С методом не понятно что в нем должно быть. Может есть где то мануал как его правильно создать ? Или может пример есть у кого то для похожей ситуации?
посмотрите в сторону explode http://www.php.su/explodenoname_npc писал(а): Чт май 02, 2019 12:31 am Какой код написать в метод. У меня есть устройство ( GSM сигнализация Navigard NV 8704) которое публикует на брокер вот такие данные:
dv_12v=13.8&dv_gsm1=28&dv_gsm2=0
dv_ev=0000E60200000&dv_time=20190429084501
ZoneStat=1000000000000000&ZoneAlarm=0000000000000000&PartStat=04040000000000000000000000000000 и так далее.
Что означает данная информация я знаю, но нужно разобрать строки, чего я к сожалению не умею.
Мне бы как пример для строки dv_12v=13.8&dv_gsm1=28&dv_gsm2=0 код для метода. Я бы на его основе сделал для остального.
Код: Выделить всё
$str ="dv_12v=13.8&dv_gsm1=28&dv_gsm2=0
dv_ev=0000E60200000&dv_time=20190429084501
ZoneStat=1000000000000000&ZoneAlarm=0000000000000000&PartStat=04040000000000000000000000000000";
$lines = preg_split("/[\s,]+/",$str); //разобьем на строки
foreach ($lines as $ln){
echo '----------<br>' ;
$pairs = explode('&',$ln); // разобьем на пары а=б
foreach($pairs as $a){
$t = explode('=',$a); // разберем равенство
echo $t[0].'<br>' ;//тут раскидывайте по свойствам
echo $t[1].'<br>' ;//тут значения
}
}