Power monitor PZEM-004t. Периодично некорректные значения.

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

fid
Сообщения: 12
Зарегистрирован: Сб авг 27, 2016 7:45 am
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Power monitor PZEM-004t. Периодично некорректные значения.

Сообщение fid » Сб май 13, 2017 10:52 am

Подключил к ESP Wemos-mini-d1 с прошивкой от wifi-iot.com Power monitor PZEM-004t. Завелся все сразу и без танцев с бубном. Значения корректные, даже телефонную зарядку видит с мощностью 5 вт. Пока повесил все это на розетку в спальню для тестов.
На следующий день обратил внимания на то что с периодичностью 3 часа значения мощность и суммарное потребление показывает ноль, при этом значения тока и напряжения корректные. Не знаю в какую сторону копать. Пока думаю надо фильтровать значения, суммарное потребление никак не может быть меньше предыдущего значения, а мощность значениями ноль игнорировать.
С программированием не очень, может кто нибудь объяснит как это делать. В свойствах можно вызвать метод при изменении, а как сделать чтоб эти некорректные значения не писались вообще или удалялись потом при отработке этого метода.
В моем МД в разделе устройства есть раздел esp8266_wifiot где значениям от ESP привязывается свойства и метод объекта. В моем случае значения от есп pmwh привязан объекту pzem свойство summa.
Если создать метод SummCorrect у объекта pzem и вызывать его изменении pmwh, как это будет происходить? Сначала меняется свойство потом вызывается метод или будет вызывается метод SummCorrect с значением summa?
Или у меня просто неисправный PZEM-004?
Вложения
q.JPG
q.JPG (30.84 КБ) 7058 просмотров
total.JPG
total.JPG (33.22 КБ) 7070 просмотров
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение olehs » Сб май 13, 2017 12:28 pm

Тоже такое есть. Это проблема PZEM. Он не может отдавать показания чаще чем раз в секунду.
У меня он подключен к Ардуино и ошибки фильтруются еще там, и вылезают наружу, только если достигается определенный таймаут.

Но даже с таким алгоритмом иногда (один-два раза в сутки-двое) проваливается один из показателей (обычно напряжение).
WiFI-IoT скорее всего с этим не заморачивались вообще.

По поводу свойств и методов.
Сначала меняется свойство, затем вызывается метод "при изменении". В этом методе также уже есть параметры
$params['OLD_VALUE'] и $params['VALUE']

P.S. Вт*ч же...
За это сообщение автора olehs поблагодарил:
fid (Сб май 13, 2017 12:50 pm)
Рейтинг: 1.16%
fid
Сообщения: 12
Зарегистрирован: Сб авг 27, 2016 7:45 am
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение fid » Сб май 13, 2017 12:56 pm

Спасибо за ответ!
То есть создать метод SummCorrect с кодом ?:
if($params['VALUE'] ==0)
($params['VALUE']=$params['OLD_VALUE']);
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение olehs » Сб май 13, 2017 1:00 pm

Не совсем. Изменение $params['VALUE'] ни к чему не приведет.
Вам нужно завести еще одно свойство и записывать в него только корректные значения.
fid
Сообщения: 12
Зарегистрирован: Сб авг 27, 2016 7:45 am
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение fid » Сб май 13, 2017 1:08 pm

Создал свойство total и метод при изменении св. summa должен выглядит так?

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

if($params['VALUE'] >0){
 $this->setProperty('total',$params['VALUE']); 
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение olehs » Сб май 13, 2017 1:46 pm

да. только скобочки не сходятся ))
fid
Сообщения: 12
Зарегистрирован: Сб авг 27, 2016 7:45 am
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение fid » Сб май 13, 2017 2:07 pm

че то не идёт
fid
Сообщения: 12
Зарегистрирован: Сб авг 27, 2016 7:45 am
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение fid » Сб май 13, 2017 2:41 pm

если в методе писать
$i=$params['VALUE'];
say($i,2);
возвращает пустое значение
fid
Сообщения: 12
Зарегистрирован: Сб авг 27, 2016 7:45 am
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение fid » Сб май 13, 2017 2:52 pm

пока победил так. интересно а почему $params['VALUE'] возвращает пустое значение?
$i=$this->getProperty('summa');
if($i >0){
$this->setProperty('total',$i);
}
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Power monitor PZEM-004t. Периодично некорректные значени

Сообщение olehs » Сб май 13, 2017 2:53 pm

так тоже правильно.
можете еще попробовать $params['NEW_VALUE']
Ответить