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

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

Модератор: immortal

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

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

Сообщение directman66 » Пт окт 05, 2018 12:42 pm

Не знаю как энергомера, но у других счетчиков не ИК порт, а оптический. И для сопряжения необходим кабель оптического сопряжения. Я купил для экспериментов такой, лежит без дела. Под виндой штатное ПО счетчиков через него работает, а вот корректно настроить при подключении к роутеру не полуилось. Вопрос в итоге решел переходником USB-RS485.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

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

Сообщение dioxin » Пт окт 05, 2018 3:27 pm

Оптическое сопряжение - это не красный светодиодик мигает с частотой, чем больше нагрузка тем быстрее ? Кто-то умудряется считывать фотоэлементом эти мигания и конвертить в киловатты потребления. Если бы у меня не было на счетчике RS485, тоже бы пошел по этому пути.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Пт окт 05, 2018 3:34 pm

Нет, порт оптического сопряжения не мигает в видимом диаппазоне.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 28 раз
Поблагодарили: 28 раз

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

Сообщение denis » Чт окт 11, 2018 1:28 pm

Может кто подскажет, что я делаю не так.
Исходные данные:
- МДМ на win7
- счетчик меркурий 233
- китайский переходник usb-rs485, в системе виден как порт COM3.
В родной программе от счетчика все данные считываются, все работает. В сниффере последовательного порта обмен идет при закрытии проги порт закрывается.
В МДМ в модуле 'Энергомера' ставлю настройки serial - COM3. Жму кнопку 'обновить' на странице модуля, но в сниффере вижу, что порт не открывается, никаких запросов к счетчику не идет. Соответственно в МДМ нет данных по счетчику. Цикл 'energomera' запускал, но он сразу же останавливается, но в логе пусто, просто останавливается и все. Может что-то в файлах нужно поправить под м
'Меркурий'? Но странно, что COM-порт даже не пытается открыться ...
Akorolev
Сообщения: 119
Зарегистрирован: Вт ноя 08, 2016 4:27 pm
Благодарил (а): 11 раз
Поблагодарили: 10 раз

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

Сообщение Akorolev » Чт ноя 08, 2018 4:17 pm

Кому интересно вот видео с настройкой энергомера СЕ 301:
https://www.youtube.com/watch?v=j1cXd8Aio9Q
За это сообщение автора Akorolev поблагодарил:
Scomax (Сб фев 16, 2019 9:19 pm)
Рейтинг: 1.16%
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

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

Сообщение dioxin » Чт ноя 08, 2018 5:17 pm

denis писал(а):
Чт окт 11, 2018 1:28 pm
Может кто подскажет, что я делаю не так.
Исходные данные:
- МДМ на win7
- счетчик меркурий 233
- китайский переходник usb-rs485, в системе виден как порт COM3.
В родной программе от счетчика все данные считываются, все работает. В сниффере последовательного порта обмен идет при закрытии проги порт закрывается.
В МДМ в модуле 'Энергомера' ставлю настройки serial - COM3. Жму кнопку 'обновить' на странице модуля, но в сниффере вижу, что порт не открывается, никаких запросов к счетчику не идет. Соответственно в МДМ нет данных по счетчику. Цикл 'energomera' запускал, но он сразу же останавливается, но в логе пусто, просто останавливается и все. Может что-то в файлах нужно поправить под м
'Меркурий'? Но странно, что COM-порт даже не пытается открыться ...
А разве этот модуль поддерживает меркурии? Я писал сам. Видосик на моем канале.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

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

Сообщение Ivan » Чт ноя 08, 2018 11:03 pm

denis писал(а):Может кто подскажет, что я делаю не так.
Исходные данные:
- МДМ на win7
- счетчик меркурий 233
- китайский переходник usb-rs485, в системе виден как порт COM3.
В родной программе от счетчика все данные считываются, все работает. В сниффере последовательного порта обмен идет при закрытии проги порт закрывается.
В МДМ в модуле 'Энергомера' ставлю настройки serial - COM3. Жму кнопку 'обновить' на странице модуля, но в сниффере вижу, что порт не открывается, никаких запросов к счетчику не идет. Соответственно в МДМ нет данных по счетчику. Цикл 'energomera' запускал, но он сразу же останавливается, но в логе пусто, просто останавливается и все. Может что-то в файлах нужно поправить под м
'Меркурий'? Но странно, что COM-порт даже не пытается открыться ...
Сначало добавте переменные которые хотите читать. И перепустите цикл. Модуль видит что читать нечего и даже не соединяется

Отправлено с моего SM-J730FM через Tapatalk

Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
stellhawk
Сообщения: 264
Зарегистрирован: Чт ноя 08, 2018 5:51 am
Благодарил (а): 10 раз
Поблагодарили: 83 раза

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

Сообщение stellhawk » Пт ноя 09, 2018 12:36 pm

ребят, а кто-то пытался этим модулем работать с меркурием?
сюда по всему он даже в теории не может с ними работать.
потому что несмотря на класс mercury230.class.php для работы он никак не используется.
в классе есть явный косяк который не позволит работать с меркурием.
в функции crc16_modbus байты контрольной суммы перепутаны местами.(точнее должны слаться в обратном порядке)

mercury230.class.php:

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

        function test(){
        $data="000101010101010101";
        $data.=crc16_modbus($data);
        echo "Send ".$data."\n";
        $result = $this->Serial->sendMessage(hex2bin($data),$this->WaitBeforeRead);
        $this->Receive();
        $data="000800";
        $data.=crc16_modbus($data);
        echo "Send ".$data."\n";
        $result = $this->Serial->sendMessage(hex2bin($data),$this->WaitBeforeRead);
        $this->Receive();
        }

function crc16_modbus($msg)
{
    $data = pack('H*',$msg);
    $crc = 0xFFFF;
    for ($i = 0; $i < strlen($data); $i++)
    {
        $crc ^=ord($data[$i]);

        for ($j = 8; $j !=0; $j--)
        {
            if (($crc & 0x0001) !=0)
            {
                $crc >>= 1;
                $crc ^= 0xA001;
            }
            else $crc >>= 1;
        }
    }
    $crc=sprintf('%04X', $crc);
    return substr($crc,2,2).substr($crc,0,2);
}
        
        
test_mercury230.php:

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

<?php

include_once("mercury230.class.php");
function ShowVal($dev, $val, $timeout = 3500)
{
  $arr = $dev->getValue($val, $timeout);
    echo "<pre>$val = ".htmlspecialchars(print_r($arr,true))."</pre><br>\n";
    }

$dev = new mercury230("/dev/ttyUSB0");
$dev->debug = true;

$ret = $dev->connect();
if ($ret === false)
{
  echo "ops1";
  die;
}

$ret = $dev->test();
if ($ret === false)
{
  echo "ops1";
  die;
}
$dev->disconnect();

?>

я пока не силен в majordomo(точнее я вообще пока в нём не шарю :-)) чтобы переписать какой-либо модуль, но я быстро учусь
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

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

Сообщение Ivan » Пт ноя 09, 2018 6:27 pm

stellhawk писал(а):
Пт ноя 09, 2018 12:36 pm
ребят, а кто-то пытался этим модулем работать с меркурием?
сюда по всему он даже в теории не может с ними работать.
потому что несмотря на класс mercury230.class.php для работы он никак не используется.
в классе есть явный косяк который не позволит работать с меркурием.
в функции crc16_modbus байты контрольной суммы перепутаны местами.(точнее должны слаться в обратном порядке)
Да. Это была проба
Вроде для Меркурия есть модуль
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
stellhawk
Сообщения: 264
Зарегистрирован: Чт ноя 08, 2018 5:51 am
Благодарил (а): 10 раз
Поблагодарили: 83 раза

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

Сообщение stellhawk » Сб ноя 10, 2018 4:46 am

[*]
Ivan писал(а):
Пт ноя 09, 2018 6:27 pm
stellhawk писал(а):
Пт ноя 09, 2018 12:36 pm
ребят, а кто-то пытался этим модулем работать с меркурием?
сюда по всему он даже в теории не может с ними работать.
потому что несмотря на класс mercury230.class.php для работы он никак не используется.
в классе есть явный косяк который не позволит работать с меркурием.
в функции crc16_modbus байты контрольной суммы перепутаны местами.(точнее должны слаться в обратном порядке)
Да. Это была проба
Вроде для Меркурия есть модуль
а есть желание\возможность дописать модуль?
если да, то просьба сделать выбор типа счетчика в настройках, а я допинаю класс mercury230.class.php чтобы оттуда данные вернулись. по крайней мере с 230 счетчиком работать будет.
Ответить