Power monitor PZEM-004t. Периодично некорректные значения.
Модератор: immortal
-
- Сообщения: 12
- Зарегистрирован: Сб авг 27, 2016 7:45 am
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Power monitor PZEM-004t. Периодично некорректные значения.
Подключил к 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?
На следующий день обратил внимания на то что с периодичностью 3 часа значения мощность и суммарное потребление показывает ноль, при этом значения тока и напряжения корректные. Не знаю в какую сторону копать. Пока думаю надо фильтровать значения, суммарное потребление никак не может быть меньше предыдущего значения, а мощность значениями ноль игнорировать.
С программированием не очень, может кто нибудь объяснит как это делать. В свойствах можно вызвать метод при изменении, а как сделать чтоб эти некорректные значения не писались вообще или удалялись потом при отработке этого метода.
В моем МД в разделе устройства есть раздел esp8266_wifiot где значениям от ESP привязывается свойства и метод объекта. В моем случае значения от есп pmwh привязан объекту pzem свойство summa.
Если создать метод SummCorrect у объекта pzem и вызывать его изменении pmwh, как это будет происходить? Сначала меняется свойство потом вызывается метод или будет вызывается метод SummCorrect с значением summa?
Или у меня просто неисправный PZEM-004?
- Вложения
-
- q.JPG (30.84 КБ) 7362 просмотра
-
- total.JPG (33.22 КБ) 7374 просмотра
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Power monitor PZEM-004t. Периодично некорректные значени
Тоже такое есть. Это проблема PZEM. Он не может отдавать показания чаще чем раз в секунду.
У меня он подключен к Ардуино и ошибки фильтруются еще там, и вылезают наружу, только если достигается определенный таймаут.
Но даже с таким алгоритмом иногда (один-два раза в сутки-двое) проваливается один из показателей (обычно напряжение).
WiFI-IoT скорее всего с этим не заморачивались вообще.
По поводу свойств и методов.
Сначала меняется свойство, затем вызывается метод "при изменении". В этом методе также уже есть параметры
$params['OLD_VALUE'] и $params['VALUE']
P.S. Вт*ч же...
У меня он подключен к Ардуино и ошибки фильтруются еще там, и вылезают наружу, только если достигается определенный таймаут.
Но даже с таким алгоритмом иногда (один-два раза в сутки-двое) проваливается один из показателей (обычно напряжение).
WiFI-IoT скорее всего с этим не заморачивались вообще.
По поводу свойств и методов.
Сначала меняется свойство, затем вызывается метод "при изменении". В этом методе также уже есть параметры
$params['OLD_VALUE'] и $params['VALUE']
P.S. Вт*ч же...
- Рейтинг: 1.16%
-
- Сообщения: 12
- Зарегистрирован: Сб авг 27, 2016 7:45 am
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Power monitor PZEM-004t. Периодично некорректные значени
Спасибо за ответ!
То есть создать метод SummCorrect с кодом ?:
if($params['VALUE'] ==0)
($params['VALUE']=$params['OLD_VALUE']);
То есть создать метод SummCorrect с кодом ?:
if($params['VALUE'] ==0)
($params['VALUE']=$params['OLD_VALUE']);
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Power monitor PZEM-004t. Периодично некорректные значени
Не совсем. Изменение $params['VALUE'] ни к чему не приведет.
Вам нужно завести еще одно свойство и записывать в него только корректные значения.
Вам нужно завести еще одно свойство и записывать в него только корректные значения.
-
- Сообщения: 12
- Зарегистрирован: Сб авг 27, 2016 7:45 am
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Power monitor PZEM-004t. Периодично некорректные значени
Создал свойство total и метод при изменении св. summa должен выглядит так?
Код: Выделить всё
if($params['VALUE'] >0){
$this->setProperty('total',$params['VALUE']);
-
- Сообщения: 12
- Зарегистрирован: Сб авг 27, 2016 7:45 am
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Power monitor PZEM-004t. Периодично некорректные значени
если в методе писать
$i=$params['VALUE'];
say($i,2);
возвращает пустое значение
$i=$params['VALUE'];
say($i,2);
возвращает пустое значение
-
- Сообщения: 12
- Зарегистрирован: Сб авг 27, 2016 7:45 am
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Power monitor PZEM-004t. Периодично некорректные значени
пока победил так. интересно а почему $params['VALUE'] возвращает пустое значение?
$i=$this->getProperty('summa');
if($i >0){
$this->setProperty('total',$i);
}
$i=$this->getProperty('summa');
if($i >0){
$this->setProperty('total',$i);
}
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Power monitor PZEM-004t. Периодично некорректные значени
так тоже правильно.
можете еще попробовать $params['NEW_VALUE']
можете еще попробовать $params['NEW_VALUE']