[Модуль] Энергомера (energomera)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Profd
Сообщения: 34
Зарегистрирован: Пн авг 22, 2016 9:41 am
Благодарил (а): 15 раз
Поблагодарили: 2 раза

Re: Модуль Энергомера

Сообщение Profd » Вт июн 20, 2017 12:41 am

Подскажите это правильное чтение массива ?
profd@Majordomo:/var/www/modules/energomera$ php test.php
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; iek61107 has a deprecated constructor in /var/www/modules/energomera/iek61107.class.php on line 12
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; PhpSerial has a deprecated constructor in /var/www/modules/energomera/PhpSerial.php on line 19
2017-06-20 00:37:24 Connecting COM
2017-06-20 00:37:24 Connected
2017-06-20 00:37:24 Send init #1
2017-06-20 00:37:24 Device is /EKT5CE301v7
:
2017-06-20 00:37:25 Send init #2
2017-06-20 00:37:25 model:P0(777777)
2017-06-20 00:37:25 Send init #3
2017-06-20 00:37:25 model: 024d4f44454c2833290d0a030f MODEL(3)

<br>
2017-06-20 00:37:25 Read LOG01() Array ( [] => Array ( [0] => R12 ) )
<pre>LOG01() = Array
(
[] => Array
(
[0] => R12
)

)
</pre><br>
2017-06-20 00:37:26 Disconnected
msushko
Сообщения: 1
Зарегистрирован: Вс июл 02, 2017 1:22 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Модуль Энергомера

Сообщение msushko » Вс июл 02, 2017 7:22 pm

ElectronicsInFocus писал(а):Уважаемый Иван, помогите разобраться.

Тестирую модуль под win7x64 со счётчиком CE102M. Подключение через китайский USB-RS485 мост на CH340.
- Обмен со счётчиком из AdminTools идёт без сбоев.
- Счётчик стабильно отвечает если вручную отправить из терминала пакет 2f 3f 21 0d 0a. Ответ нормальный: 2f 45 4b 54 35 43 45 31 30 32 4d 76 30 31 0d 0a.
- После запуска majordomo цикл энергомеры молчит, данные из счётчика не забираются.
Смотрю в сниффере (Serial Port Monitor) обмен модуля со счётчиком. Модуль в самом начале открывает порт и отправляет пакет 2f 3f 21 0d 0a. Ответа нет (судя по снифферу) и порт остаётся открытым до закрытия мажордомо. Никакие запросы больше не повторяются.
НО, если перед запуском majordomo запустить AdminTools и, например, авторизоваться, то тогда ваш модуль успешно обменивается со счётчиком.
Первый запрос, который летит из модуля в счётчик до запуска AdminTools и после, ничем не отличаются. 2f 3f 21 0d 0a
Такой же точно запрос я отправляю из терминала (получаю ответ) и первым шлёт AdminTools (тоже получает ответ).

Я подозреваю, что счётчик во всех случаях отвечает, но в некоторых случаях проблема при приёме ответа. Возможно как то связано с CH340, т.к. после успешного обмена если отключить-подключить USB-RS485 мост, то история с отсутствием обмена повторяется снова.
Счётчик лежит на столе, могу пробовать, тестировать, если есть идеи как. Спасибо.
Возможно проблема с бракованным переходником, был похожий случай. Приобрел сию вещицу на Ali, После установки драйвера и при первом же подключении обнаружил, что переходник не работает :evil: ,при помощи логического анализатора, (благо, что он к тому моменту у меня уже был), выяснил, что пакет благополучно проходит только в одну сторону, а формируемый слейвом ответ дальше клемм AB не проходит. Подробное проверка логических показала, транзистор не дает низкий уровень на RE. Как следствие драйвер RS485, не переключает линию на прием. Причиной тому оказалось слишком большое сопротивление ограничивающего резиcтора в цепи базы ключа T1, аж целых 27K :shock: !!!, пришлось уменьшить до приемлемого в 1K. см рис.. После этого все работало. :D :D :D
Вложения
USBtoRS485_repair.jpg
USBtoRS485_repair.jpg (64.16 КБ) 6480 просмотров
За это сообщение автора msushko поблагодарил:
Profd (Сб июл 15, 2017 7:25 pm)
Рейтинг: 1.16%
Profd
Сообщения: 34
Зарегистрирован: Пн авг 22, 2016 9:41 am
Благодарил (а): 15 раз
Поблагодарили: 2 раза

Re: Модуль Энергомера

Сообщение Profd » Сб июл 15, 2017 7:28 pm

Спасибо за наводку по железу помогло.
После запуска теста вижу вот это
СпойлерПоказать
2017-07-15 19:24:21 Device is /EKT5CE301v7

:
2017-07-15 19:24:21 Send init #2
2017-07-15 19:24:21 model:
2017-07-15 19:24:22 Send init #3
2017-07-15 19:24:22 model: 0150300228373737373737290320024d4f44454c2833290a0a P0(777777) MODEL(3)


<br>
2017-07-15 19:24:22 Read SNUMB() Array ( [SNUMB] => Array ( [0] => 008841036000397 ) )
<pre>SNUMB() = Array
(
[SNUMB] => Array
(
[0] => 008841036000397
)

)
</pre><br>
2017-07-15 19:24:22 Read VOLTA() Array ( [VOLTA] => Array ( [0] => 224.132 ) )
<pre>VOLTA() = Array
(
[VOLTA] => Array
(
[0] => 224.132
)

)
</pre><br>
2017-07-15 19:24:23 Read CURRE() Array ( [CURRE] => Array ( [0] => 2.3069 ) )
<pre>CURRE() = Array
(
[CURRE] => Array
(
[0] => 2.3069
)

)
</pre><br>
2017-07-15 19:24:23 Read POWEP() Array ( [VPOWEP] => Array ( [0] => 2.2354 ) )
<pre>POWEP() = Array
(
[VPOWEP] => Array
(
[0] => 2.2354
)

)
</pre><br>
2017-07-15 19:24:24 Read FREQU() Array ( [FREQU] => Array ( [0] => 49.99 ) )
<pre>FREQU() = Array
(
[FREQU] => Array
(
[0] => 49.99
)

)
</pre><br>
2017-07-15 19:24:24 Read COS_f() Array ( [COS_f] => Array ( [0] => 1.0 ) )
<pre>COS_f() = Array
(
[COS_f] => Array
(
[0] => 1.0
)

)
</pre><br>
2017-07-15 19:24:25 Read ET0PE() Array ( [ET0PE] => Array ( [0] => 3752.1371833 ) )
<pre>ET0PE() = Array
(
[ET0PE] => Array
(
[0] => 3752.1371833
)

)
</pre><br>
2017-07-15 19:24:25 Read MSYAD() 2017-07-15 19:24:26 Time out
<pre>MSYAD() = </pre><br>
2017-07-15 19:24:26 Read V_BAT() Array ( [] => Array ( [0] => ERR12 ) )
<pre>V_BAT() = Array
(
[] => Array
(
[0] => ERR12
)

)
</pre><br>
2017-07-15 19:24:26 Read TEMPR() Array ( [TEMPR] => Array ( [0] => 2797538304 ) )
<pre>TEMPR() = Array
(
[TEMPR] => Array
(
[0] => 2797538304
)

)
</pre><br>
2017-07-15 19:24:27 Read LOG01() 2017-07-15 19:24:27 Time out
<pre>LOG01() = </pre><br>
2017-07-15 19:24:28 Disconnected
Но при этом цикл энергомеры не стартует.
Пытаюсь его руками запустить и получаю:
php cycle_energomera.php
PHP Notice: Undefined index: SERVER_NAME in /var/www/config.php on line 55
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Модуль Энергомера

Сообщение Ivan » Сб июл 15, 2017 8:43 pm

Покажите что у вас записано в переменной SERVER_NAME в /var/www/config.php

Отправлено с моего SM-G7102 через Tapatalk
За это сообщение автора Ivan поблагодарил:
Profd (Сб июл 15, 2017 9:02 pm)
Рейтинг: 1.16%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Profd
Сообщения: 34
Зарегистрирован: Пн авг 22, 2016 9:41 am
Благодарил (а): 15 раз
Поблагодарили: 2 раза

Re: Модуль Энергомера

Сообщение Profd » Сб июл 15, 2017 9:02 pm

Define('PROJECT_DOMAIN', $_SERVER['SERVER_NAME']);

Эта строчка ?
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: Модуль Энергомера

Сообщение directman66 » Ср июл 19, 2017 12:48 pm

Иван, по счетчикам Милур дело не продвинулось?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Profd
Сообщения: 34
Зарегистрирован: Пн авг 22, 2016 9:41 am
Благодарил (а): 15 раз
Поблагодарили: 2 раза

Re: Модуль Энергомера

Сообщение Profd » Ср июл 19, 2017 6:47 pm

Спасибо Огромное Ивану !
Проблема была в php.
Сейчас получаю данные по одной фазе :)
Буду читать мануалы энергомеры чтоб понять ка добыть еще 2 фазы.
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Модуль Энергомера

Сообщение Ivan » Ср июл 19, 2017 9:08 pm

directman66 писал(а):Иван, по счетчикам Милур дело не продвинулось?
Пока делаю основу нового модуля. Чтобы легко добавлять новый тип счётчика, и не было напряжно с настройками как пост выще
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: Модуль Энергомера

Сообщение directman66 » Ср июл 26, 2017 11:07 pm

Ждем, очень ждём. Также хотелось бы иметь tcp-ip коммутацию в дополнение к прямому подключению
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль Энергомера

Сообщение lanket » Чт июл 27, 2017 1:51 pm

Profd писал(а):Спасибо Огромное Ивану !
Проблема была в php.
Сейчас получаю данные по одной фазе :)
Буду читать мануалы энергомеры чтоб понять ка добыть еще 2 фазы.
А что этот модуль только одну фазу мониторит. У меня то 3. Тоже проблемы будут?
Позавчера наконец то подключил электросчетчик, скоро приедут опломбировать. Буду экспрементировать, хотя даже не знаю когда с такой загруженностью.

Иван, вопрос передачи по воздуху так и не решился?

Отправлено с моего Redmi Note 4 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ответить