Страница 10 из 33
Re: Модуль Энергомера
Добавлено: Вт мар 07, 2017 1:01 pm
Ivan
Выложил исправленную версию. На тест.
Первый символ пока пропатчил. По хорошему нужно разбираться
Также добавил:
- Документацию и логи
- Добавил тестовый набросок для Mercury230
- Добавил тестовый набросок для iek411152
Не помню чем закончились наброски у кого есть счётчики, попробуйте запустить тест
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 10:07 am
Ivan
Добавил исправления получения пустых данных
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 10:57 am
lanket
Делиться опытом никто не хочет, буду брать прибор учёта с закрытыми глазами.
Спасибо единственному отозвавшемся serghei.
Ivan писал(а):...
Вопрос к Вам, если можно.
Можно ли передавать считанные данные с прибора учёта газа и электроэнергии через сеть MySensors.
Если да, то подскажите пожалуйста набор железок для реализации. Nrf, ардуинку и шлюз MySensors это понятно.
И пример скетча ноды MySensors , если есть таковой, для передачи данных снятых с прибора учёта.
Заранее спасибо.
Отправлено с моего Redmi Note 3 через Tapatalk
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 11:23 am
serghei
Если вопрос ко мне , то лучше спросить у Ивана. Самих счетчиков у нас не продают. Если выгорит один стащить во " временное пользование" ( через недельку ), то буду пробовать. Тут на форуме выкладывали скетч для ардуины с протоколом 485 . Пробовал скомпилить для ЕСП - вроде не ругается.
Так что увы - ничем помочь не могу. Только считать импульсы (( Внимательно перечитайте ветку , наверное Меркурии 230 работают.
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 8:55 pm
AlexK-71
Ivan писал(а):AlexK-71 писал(а):Вот рабочий на Raspberry Pi iek61107.class.php
Спасибо за помощь.
Только у меня теперь читаются лишние символы
Код: Выделить всё
rET0PE(12366.61)(8120.67)(4245.76)(0.00)(0.00)(0.00)
rET0PE(12366.61)(8120.67)(4245.76)(0.00)(0.00)(0.00)
rFREQU(50.01)
bPOWEP(0.403358)
VOLTA(226.33)
Первый символ мусорный. Что с этим делать пока не понятно
Там не один, а три первых символа мусорных.
pi@raspberrypi:/var/www/modules/energomera $ php test.php
2017-03-09 21:26:30 Connecting COM
2017-03-09 21:26:30 Connected
2017-03-09 21:26:31 Send init #1
2017-03-09 21:26:31 Device is /EKT5CE301v11
:
2017-03-09 21:26:31 Send init #2
2017-03-09 21:26:31 model:
2017-03-09 21:26:32 Send init #3
2017-03-09 21:26:32 model: 0150300228373737373737290320024d4f44454c2833290d0a P0(777777) MODEL(3)
<br>
2017-03-09 21:26:32 Read POWEP() read: 030f02504f57455028302e32363739290d0a POWEP(0.2679)
Array ( [POWEP] => Array ( [0] => 0.2679 ) )
<pre>POWEP() = Array
(
[POWEP] => Array
(
[0] => 0.2679
)
)
</pre><br>
2017-03-09 21:26:32 Read FREQU() read: 032c0246524551552835302e30290d0a ,FREQU(50.0)
Array ( [FREQU] => Array ( [0] => 50.0 ) )
<pre>FREQU() = Array
(
[FREQU] => Array
(
[0] => 50.0
)
)
</pre><br>
2017-03-09 21:26:33 Read ET0PE() read: 03310245543050452831323834382e30323330343336290d0a455430504528393432382e37393837323332290d0a455430504528333431392e32323433323034290d0a455430504528302e30290d0a455430504528302e30290d0a455430504528302e30290d0a 1ET0PE(12848.0230436)
ET0PE(9428.7987232)
ET0PE(3419.2243204)
ET0PE(0.0)
ET0PE(0.0)
ET0PE(0.0)
Array ( [ET0PE] => Array ( [0] => 12848.0230436 [1] => 9428.7987232 [2] => 3419.2243204 [3] => 0.0 [4] => 0.0 [5] => 0.0 ) )
<pre>ET0PE() = Array
(
[ET0PE] => Array
(
[0] => 12848.0230436
[1] => 9428.7987232
[2] => 3419.2243204
[3] => 0.0
[4] => 0.0
[5] => 0.0
)
)
</pre><br>
2017-03-09 21:26:34 Disconnected
По этому я просто обрезал первых три символа.
PS Отдельно огромное спасибо за фильтр пустых данных. Еще бы добавить округление отдельных параметров. Ну не нужны милливольты и миллиамперы.
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 10:32 pm
Jager
Хотел протестировать обновление в свете анонса поддержки меркурий-230.
Обновил модуль, вижу свои старые хвосты от экспериментов.
Удаляю штатно, ничего не удаляется.
Переустановил модуль с удалением, все по прежнему.
Перед установкой удалил папку energomera в modules, опять тоже самое.
Где еще подчистить следы?
В текущей ситуации указываю нужный сом порт, а именно СОМ3, нет никакой реакции.
Родная программа работает по прежнему без проблем.
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 10:45 pm
AlexK-71
Иван, установил обновление и перестали забираться другие значения из массива кроме 0.
Спасибо.
Re: Модуль Энергомера
Добавлено: Чт мар 09, 2017 11:26 pm
Ivan
MySensors ищите в соответствующем разделе. Также выкладывал все в комерческой ветке.
Насчет меркурия, сам модуль еще не поддердивает его. Есть только файлы набросков в исходниках.
Насчет индексов. У меня вроде пашит. Пойду перепроверю
Re: Модуль Энергомера
Добавлено: Пт мар 10, 2017 1:53 pm
AlexK-71
Разобрался с массивами.
Почему то у меня без настройки
stty -icrnl -F $device меняет
/r на
/n и в итоге получаю разделитель
/n/n и массив строкой
$arr = explode("\r\n", $data); естественно не разбирается.
Как то эти 0D 0A преследуют

. То плодятся, то меняются...
PS пока вернулся к
$data = substr($data, 3, strlen($data)-3);, т.к. при
Код: Выделить всё
$data = substr($data, 1, strlen($data)-3);
//??? Patch first char
if ((ord($data[0]) < 0x41) || (ord($data[0]) > 0x5A)) {
$data = substr($data, 2, strlen($data));
}
у меня периодически проскакивает мусор.
Re: Модуль Энергомера
Добавлено: Сб мар 11, 2017 10:02 am
Ivan
AlexK-71 писал(а):Разобрался с массивами.
Почему то у меня без настройки
stty -icrnl -F $device меняет
/r на
/n и в итоге получаю разделитель
/n/n и массив строкой
$arr = explode("\r\n", $data); естественно не разбирается.
Как то эти 0D 0A преследуют

. То плодятся, то меняются...
PS пока вернулся к
$data = substr($data, 3, strlen($data)-3);, т.к. при
Код: Выделить всё
$data = substr($data, 1, strlen($data)-3);
//??? Patch first char
if ((ord($data[0]) < 0x41) || (ord($data[0]) > 0x5A)) {
$data = substr($data, 2, strlen($data));
}
у меня периодически проскакивает мусор.
Странно это всё. Давайте приведём к одному виду
У меня сейчас в модуле стоит:
Код: Выделить всё
public function confNotRNMode(){
...
"stty -onlcr -isig -echo -F " . $this->_device
...
}