Обработка строк. Нужна помощь.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
djleon
Сообщения: 36
Зарегистрирован: Ср янв 04, 2017 7:37 pm
Откуда: Россия, Курск
Благодарил (а): 10 раз
Поблагодарили: 4 раза

Обработка строк. Нужна помощь.

Сообщение djleon » Вс апр 02, 2017 7:26 pm

Доброго времени суток!

Есть реле sonoffTH, к нему подключён датчик температуры и влажности
по MQTT в топике "tele/sonoffTH10/SENSOR"
получаю строку "{"Time":"2017-04-02T15:11:41", "AM2301":{"Temperature":27.7, "Humidity":28.4}}"
это значение присваиваю свойству (Sensors->Объект: sonoffH10-> свойство: sonoffH1.string) это сырые данные.
Задача: вытащить из строки значения температуры и влажности и рассовать по свойствам "HumSensor01.value (H)" и "TempSensor01.value (H)" (дабы эти данные появились в графике и на странице климата.

Вероятно нужно в метод "onChange" вписать код обработки свойства объекта "sonoffH10".
мои познания в PHP менее чем скромные, работал с делфи и С++ (С ООП не дружу с института)...
Сильно не пинайте, я доктор, а программистом подрабатывал пару лет, пока зарабатывал репутацию хорошего специалиста в медицине.

По тому прошу помощи. Если всё заработает, сделаю резюме по подключению этого реле с датчиком и подробную инструкцию... (дабы грабли были обезврежены)
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Обработка строк. Нужна помощь.

Сообщение nick7zmail » Вс апр 02, 2017 7:54 pm

Что ж вы так поиском то не любите пользоваться....
Строка эта называется json...вот готовое решение viewtopic.php?p=37549#p37549
(читайте конец, про сценарий на стороне МД)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
djleon
Сообщения: 36
Зарегистрирован: Ср янв 04, 2017 7:37 pm
Откуда: Россия, Курск
Благодарил (а): 10 раз
Поблагодарили: 4 раза

Re: Обработка строк. Нужна помощь.

Сообщение djleon » Пн апр 03, 2017 5:47 pm

nick7zmail писал(а):Что ж вы так поиском то не любите пользоваться....
Строка эта называется json...вот готовое решение viewtopic.php?p=37549#p37549
(читайте конец, про сценарий на стороне МД)
Спасибо, но не совсем понял:
Строку json загнал в свойство объекта sonoffDHT1.RawData;
в методе он чейндж нужно написать разбор строки.

$content=sonoffDHT1.RawData; // переменной присвоил значение свойства объекта {"Time":"2017-04-02T21:55:24", "AM2301":{"Temperature":26.7, "Humidity":31.1}}
//
в объекте sonoffDHT1 есть свойства Time Temp Humi
как туда закинуть значания?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Обработка строк. Нужна помощь.

Сообщение nick7zmail » Пн апр 03, 2017 7:21 pm

Ну для начала не присвоили вы значение переменной....
Присваивается оно примерно так

Код: Выделить всё

$content=gg('sonoffDHT1.RawData');
А далее - парсите её декодером и разбираете по свойствам

Код: Выделить всё

$data=json_decode($content);
sg('sonoffDHT1.Time', $data->Time);
sg('sonoffDHT1.Hum', $data->AM2301->Humidity);
sg('sonoffDHT1.Temp', $data->AM2301->Temperature);
Не уверен конечно что сработает...но попробуйте (да, проверять мне лень)))
За это сообщение автора nick7zmail поблагодарили (всего 3):
djleon (Пн апр 03, 2017 11:56 pm) • Edcrow (Пт июн 02, 2017 3:08 pm) • Kod.Begemot (Ср ноя 25, 2020 11:25 am)
Рейтинг: 3.49%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
djleon
Сообщения: 36
Зарегистрирован: Ср янв 04, 2017 7:37 pm
Откуда: Россия, Курск
Благодарил (а): 10 раз
Поблагодарили: 4 раза

Re: Обработка строк. Нужна помощь.

Сообщение djleon » Вт апр 04, 2017 12:02 am

И так Спасибо!

Создал сценарий:
DHT10jsondecode
в него вписал код:
$content=gg('sonoffDT10DHT22.value ');
$data=json_decode($content);
sg('sonoffDHT1.Time', $data->Time);
sg('HumSensor01.value', $data->AM2301->Humidity);
sg('TempSensor01.value', $data->AM2301->Temperature);


sonoffDT10DHT22.value это объект.свойство получающий строку из топика сенсора
По изменению свойства включается сценарий.
Итог данные пошли, всё работает.
Грабли обезврежены рукастыми и очень отзывчивыми форумчанами: nick7zmail.
Спасибо!(уже нажимал)...
За это сообщение автора djleon поблагодарили (всего 2):
Edcrow (Пт июн 02, 2017 3:09 pm) • Kod.Begemot (Ср ноя 25, 2020 11:25 am)
Рейтинг: 2.33%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Обработка строк. Нужна помощь.

Сообщение nick7zmail » Вт апр 04, 2017 8:15 am

Да пожалуйста)) Если что - пишите.
За это сообщение автора nick7zmail поблагодарил:
djleon (Вт апр 04, 2017 9:03 am)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить