![]() |
![]() |
![]() |
Есть счетчик SDM 220 подключеный по rs485 к малине
Есть утилита mbmd
https://github.com/volkszaehler/mbmd
и есть дай Боги ему здоровья человек @agafonov_d
он же Скай который написал скрипт и библиотеку что бы можно было получвть данные без запросов и костылей
И так:
Скачиваем:
https://github.com/volkszaehler/mbmd/releases/down...
розпаковываем по пути
/usr/local/bin
потом создаем сервис
sudo nano /etc/systemd/system/mbmd.service
вставляем
[Unit]
Description=mbmd
After=syslog.target
[Service]
ExecStart=/usr/local/bin/mbmd run -a /dev/ttyS0 -d SDM220:1 -r 30s
//вместо ttyS0 пишите свой порт к которому подключен rs485
//вмнсто SDM220 пишите свой девайс (список там обширный на сайте)
//-r 30s это период с которым утилита отдает данные, если убрать этот параметр, то будет отдавать каждую секунду
Restart=always
[Install]
WantedBy=multi-user.target
потом делаем:
sudo systemctl start mdmb
sudo systemctl enable mbmd
если все нормально то по адресу:
http://вашip:8080 вы увидите вэб рожу mbmd
наконец то подключение к мажору:
скачиваем
https://github.com/znachok88/mbmd_majordomo/raw/ma...
розпаковываем, файл
mbmd.class.php ложим в /var/www/html/lib/
файл
cycle_mbmd.php ложим в /var/www/html/scripts/
в x-ray запускаем скрипт руками, если не запустился
или
sudo -u www-data php /var/www/html/scripts/cycle_mbmd.php
создаем объект
Count
в нем метод
mbmd
и в него вносим:
if (isset($params['Voltage'])) $this->setProperty("V", $params['Voltage']);
if (isset($params['Current'])) $this->setProperty("A", $params['Current']);
if (isset($params['Sum'])) $this->setProperty("kWh", $params['Sum']);
Если все впорядке, то у вас появятся свойства с данными.
Дальнейшая обработка, это ваш полет фантазии.
Спасибо Скай.
Ірпінь, Украина