NEWS
Подключение счетчика электроэнергии к ioBroker
-
Пробовал кто подключить какой либо счетчик электроэнергии к ioBroker?
Варианты по железу:
1. ИК-порт счетчика, обмен цифровой по протоколу, порт UART
2. Светодиод на счетчике - подсчет количества импульсов, можно приладить ардуину с фотодиодом
3. У счетчика может быть импульсный выход - похожая реализация как п. 2
4. Подключиться к порту RS485/CAN - предпочтительный вариант
Теперь по счетчикам и варианты по п. 4:
1. Можно поставить http://www.incotexcom.ru/m200.htm у него CAN, или http://www.incotexcom.ru/m201_8_tlo.htm в нем только оптопорт, или http://www.incotexcom.ru/m206.htm - там классический RS485.
Протокол открыт, есть документация в сети, есть примеры подключения на http://ab-log.ru/smart-house/mercury-230 и http://cyber-place.ru/showthread.php?t=1307.
Один минус этого счетчика - он БОЛЬШОЙ!
2. Можно применить ЭНЕРГОМЕРА, габариты не большие - примерно с модульку.
Счетчик http://www.energomera.ru/ru/products/meters/ce102mr5 по порту RS485 работает в протоколе ГОСТ - МЭК 61107, в документации http://www.energomera.ru/documentations/ce102m_full_re.pdf
Счетчик СЕ102 (вроде уже не продается) работает по своему протоколу СЕ, есть http://www.energomera.ru/documentations/ce102_op.pdf.
Есть еще новый счетчик http://www.energomera.ru/ru/products/meters/ce208r5, в http://www.energomera.ru/documentations/ce208_s7_r5_re_bg.pdf написано про протокол ГОСТ Р МЭК 61107 - 2001.
По идее проблем нет, но - нет примеров, я вообще не нашел, тем более на javascript.
3. Можно купить на алиэкспресс китайский типа SDM220 или SDM230, есть https://geektimes.ru/post/277358/ в сети. Плюсы - протокол Modbus, сеть RS485, МАЛЕНЬКИЙ, но он китайский и ставить его в квартире я как то боюсь))
Интересно, кто какие варианты использует?
-
Сделал пока костыль. У меня СКАТ-301, там импульсный выход. Его завел на сименс, для подсчета импульсов. Раз в час по крону считываю показания скриптом
! var imp1;
! var imp2;
! var power;
! createState ('test_cron.elec',0);
! schedule("0 */1 * * ", function () {
! imp2 = imp1;
! imp1 = getState("s7.0.DBs.DB2.count_elec_impulse").val;
! var date=formatDate(new Date(),'h');
! console.log('imp '+imp1);
! power = (imp1-imp2)/1600;
! setState ('test_cron.elec',power);
! console.log('потребление за '+date+' час '+power+' кВтч');
! }); -