Альтернативное подключение оборудования (wifi, mqtt,uart)

Все що пов'язане з електрикою 12/220 вольт

Модератори: Valentin, igor1965

Відповісти
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Альтернативное подключение оборудования (wifi, mqtt,uart)

Повідомлення immortal »

В этой теме способы подключения различного оборудования альтернативными методами

BMS
DalyBMS подключение к RaspberryPi, OrangePi, NanoPi и т.п. через UART порт
DalyBMS мониторинг в Linux через UART порт
DalyBMS подключаемся через wi-fi и mqtt c помощью ESP8266 прошивка Daly2mqtt
DalyBMS подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
JK BMS подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
JBD BMS или JK BMS подключаемся через wi-fi и mqtt c помощью esp8266 прошивка Dima espirans
Seplos BMS подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
ANT-BMS подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
Basen BMS подключаемся через wi-fi и mqtt c помощью esp32 прошивка esphome


MPPT контроллеры
JNGE mppt контроллер подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
Victron SmartSolar MPPT подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome

Инверторы
Victron Phoenix Inverter подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome

Разное
Votronic подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
Victron SmartShunt подключаемся через wi-fi и mqtt c помощью esp32/esp8266 прошивка esphome
Victron подключаем к одноплатнику через UART порт
WKS подключаем к одноплатнику через UART порт
Солнечные инверторы EASUN, PIP, IGrid подключаемся через wi-fi и mqtt c помощью ESP8266 прошивка Solar2mqtt
DalyBMS, JK BMS, JBD / Xiaoxiang / Overkill Solar BMS, Victron SmartShunt подключение через Bluetooth к одноплатнику через HomeAssistant OS или HomeAssistant supervisor
Востаннє редагувалось Пон липня 03, 2023 15:10 користувачем immortal, всього редагувалось 19 разів.


immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Daly BMS подключаем к одноплатнику

Повідомлення immortal »

Ещё варианты подколючения через esp8266 и к распберрипи
https://youtu.be/m-Umt_olgws
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Daly BMS подключаем к одноплатнику

Повідомлення immortal »

Нашел таки то что мне нужно, подключение DalyBMS по wi-fi и mqtt
https://github.com/softwarecrash/Daly2MQTT
Плюсы по сравнению с другими вариантами:
- можно включать/выключать заряд/разряд
- не надо тянуть провод к одноплатнику
- можно использовать без одноплатника
- можно использовать без mqtt сервера а подключаться на прямую по вайфай
- подключается в блютус разъем и питается от БМС (не требуется доп. питание)
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Daly BMS подключаем к одноплатнику

Повідомлення immortal »

JK BMS
Прошивка esphome для esp32/esp8266 реализующая wifi и mqtt доступ к параметрам и управлению JK BMS
https://github.com/syssi/esphome-jk-bms
JBD BMS или JK BMS
Прошивка для esp8266 реализующая реализующая wifi и mqtt доступ к параметрам и управлению JBD BMS и JK BMS
видео https://youtu.be/Bmpn2rkEp7Q
прошивка: https://drive.google.com/drive/folders/ ... HV-0cyoSiz
Seplos BMS
Прошивка esphome для esp32/esp8266 реализующая wifi и mqtt доступ к параметрам и управлению Seplos BMS по uart или rs485 https://github.com/syssi/esphome-seplos-bms
ANT-BMS
Прошивка esphome для esp32/esp8266 реализующая wifi и mqtt доступ к параметрам и управлению ANT-BMS
https://github.com/syssi/esphome-ant-bms

Тут много прошивок для разных солнечных контроллеров и разных BMS
Аватар користувача
Deffi
Site Admin
Повідомлень: 10507
З нами з: Сер червня 03, 2009 11:59
Ім'я: Евгений
Техніка: M. Pajero 3.2 + TABBERT Regent 440
Країна, місто: Украина Днепропетровск
Skype: Deffi123
zello: Deffi76
Дякував (ла): 521 раз
Подякували: 382 рази
Контактна інформація:

Daly BMS подключаем к одноплатнику

Повідомлення Deffi »

Смотрю только картинки. Пока не дошёл до этого уровня :smu:sche_nie: Но спасибо за вклад. Уверен, что комуто эта информация будет полезна. А возможно и я начну углубляться. Здесь она останется на всегда как кладец знаний, в отличии от всяких групп в вайберах и телегах... :flag
Ремонт караванов и автодомов любой сложности. Тюнинг, консультации.
Солнечные панели, Аккумуляторы, Контроллеры
066-929-86-86; 067-140-87-50
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Подключение оборудования к одноплатнику

Повідомлення immortal »

Китайские BMS можно подключить не только к родному блютус приложению, но и к одноплатнику типа Raspberry Pi (Orange Pi, Nano Pi и т.п.)
подключаемся к консоли Linux одноплатника по ssh (в виндовс это программа putty)
В консоли устанавливаем python-pip

Код: Виділити все

sudo apt install python3-pip
устанавливаем dalybms

Код: Виділити все

pip3 install dalybms
для работы с uat портом и mqtt сервером ставим соответствующие пакеты

Код: Виділити все

pip3 install pyserial
pip3 install paho-mqtt
необходимо так же установить mqtt сервер если он ещё не установлен

Код: Виділити все

sudo apt install mosquitto
на этом установка завершена
подключаем нашу BMS к uart порту либо через usb-uart адаптер либо через uart разъем на одноплатнике (необходимо включить порт в настройках), далее будет рассмотрено подключение через usb-uart
Подключаем следующим образом:
BMS - UART
GND - GND
RX - TX
TX - RX
После подключения usb-uart адаптера смотрим имя адаптера введя команду

Код: Виділити все

ls -n /dev/ttyU*
должен показать устройства
crw-rw---- 1 0 20 188, 0 Feb 24 21:12 /dev/ttyUSB0
crw-rw----+ 1 0 20 188, 0 Feb 24 19:57 /dev/ttyUSB1
где /dev/ttyUSB0 и /dev/ttyUSB1 это наши USB устройства, у меня их 2 и с этим могут быть проблемы поскольку при перезагрузки они могут иметь имена наоборот и после перезагрузки устройства не будут работать. Для того чтобы это исключить мы будем обращаться к устройства по ID, получаем id наших устройств, вводим команду:

Код: Виділити все

ls -n /dev/serial/by-id/*
получаем список
lrwxrwxrwx 1 0 0 13 Sep 8 09:58 /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_12967c31b312ec11b6da21c7bd930c07-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 0 0 13 Feb 24 22:18 /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB1
голубым это наши устройства, в дальнейшем в конфигах и командах можно использовать как /dev/ttyUSB0 так и полный путь к id устройству.
У меня как видно Sonoff Zigbee USB стик и USB-UART адаптер на чипе CP2102 (USB-UART адаптеры бывают на разных чипах)
Теперь проверим соединение с нашей BMS.

Код: Виділити все

daly-bms-cli  -d /dev/ttyUSB1 --all
или можно по id, но нам для проверки достаточно и этого, мы получим все параметры. Если данные не получены то возможно Ваша BMS сделана на другом чипе, для этого надо добавить флаг --sinowealth

Код: Виділити все

daly-bms-cli  -d /dev/ttyUSB1 --all --sinowealth
Теперь есть несколько вариантов просмотра данных, не зависимо от того какую систему домашней автоматизации Вы используете мы будем передавать данные в систему домашней автоматизации по популярному протоколу mqtt, команда которую мы написали выше будет иметь вид:

Код: Виділити все

daly-bms-cli -d /dev/ttyUSB0 --all --mqtt
нам надо сделать периодический опрос нашей BMS, lдобавим периодический запуск в планировщик:

Код: Виділити все

crontab - e
в конец вставляем команду:

Код: Виділити все

*/1 * * * * daly-bms-cli -d /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 --all --mqtt
сохраняем, теперь команда будет запускаться каждую минуту (чаще в crontab не сделать)
Теперь в программе автоматизации надо подписаться на топик daly_bms и разобрать полученные данные, например вот так выглядит поток в Node-red для вывода в вэб интерфейс Node-red и в HomeKit значение напряжения
0852.jpg
0852.jpg (35.5 Кіб) Переглянуто 1395 разів
в ноде с именем "шаблон" выбирает из множества данных напряжение

Код: Виділити все

{{payload.soc.total_voltage}}
вот так выглядит плитка в вэб интерфейсе Node-red
0853.jpg
0853.jpg (8.86 Кіб) Переглянуто 1395 разів
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Подключение оборудования к одноплатнику

Повідомлення immortal »

Victron подключаем к одноплатнику через UART
Установка.
заходим в консоль нашего одноплатника по ssh (в виндовс программа putty)
все команды будем выполнять от суперпользователя, по этому если Вы зашли не под пользователем root то в консоли выполним: вводим пароль пользователя под которым вошли. далее устанавливаем необходимые пакеты и ставим PvMonit

Код: Виділити все

apt install aptitude php-cli php-yaml git sudo screen sshpass python3-pip
pip install pyserial
cd /opt
git clone https://github.com/kepon85/PvMonit.git
cd PvMonit
cp config-default.yaml /opt/PvMonit/config.yaml
На этом установка завершена, есть несколько вариантов использования, в оригинальной статье запускается в качестве демона и устанавливается вэб сервис, но у меня Node-red и далее будет инструкция по подключению в любую систему автоматизации. Минус использования по оригинальной статье в том, что сложная интеграция например с HomeKit, сложно интегрировать другие устройства домашней автоматизации.
для подключения оборудования Victron Вам нужно приобрести USB-кабель victron VE.direct (судя по видео для самостоятельного изготовления это обычный USB-UART просто припаянный к разъему типа папа который вставляется в оборудование Victron)
подключаем оборудование к одноплатнику и сразу смотрим его имя по id

Код: Виділити все

ls -n /dev/serial/by-id/*
выдаст что то типа такого
После подключения кабеля смотрим имя адаптера введя команду

Код: Виділити все

ls -n /dev/ttyU*
должен показать устройства
crw-rw---- 1 0 20 188, 0 Feb 24 21:12 /dev/ttyUSB0
crw-rw----+ 1 0 20 188, 0 Feb 24 19:57 /dev/ttyUSB1
где /dev/ttyUSB0 и /dev/ttyUSB1 это наши USB устройства, у меня их 2 и с этим могут быть проблемы поскольку при перезагрузки они могут иметь имена наоборот и после перезагрузки устройства не будут работать. Для того чтобы это исключить мы будем обращаться к устройства по ID, получаем id наших устройств, вводим команду:

Код: Виділити все

ls -n /dev/serial/by-id/*
получаем список
lrwxrwxrwx 1 0 0 13 Sep 8 09:58 /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_12967c31b312ec11b6da21c7bd930c07-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 0 0 13 Feb 24 22:18 /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB1
голубым это наши устройства, в дальнейшем в конфигах и командах можно использовать как /dev/ttyUSB0 так и полный путь к id устройству.
У меня как видно Sonoff Zigbee USB стик и USB-UART адаптер на чипе CP2102 (USB-UART адаптеры бывают на разных чипах)
теперь проверяем получает ли данные с контроллера,

Код: Виділити все

/opt/PvMonit/bin/vedirect.py /dev/ttyUSB0

/dev/ttyUSB0 - заменить на свой, лучше по id

Код: Виділити все

/opt/PvMonit/bin/vedirect.py /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

должны быть данные

Код: Виділити все

PID:0xA04A
FW:119
SER#:HQ********
V:25660
I:500
VPV:53270
PPV:14
CS:3
ERR:0
LOAD:ON
H19:3348
H20:1
H21:17
H22:33
H23:167
HSDS:52
вот в этом документе есть таблички с расшифровкой всех данных.
теперь по традиции всё это запихаем в mqtt, для этого сначала установим mqtt клиент

Код: Виділити все

apt install mosquitto-clients
создаем файл bash скрипта в редакторе nano

Код: Виділити все

nano /opt/PvMonit/ved
копируем туда следующий код:

Код: Виділити все

#!/bin/bash
RES=$(/opt/PvMonit/bin/vedirect.py /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0)
RES=`echo $RES | sed 's/:/":"/g'`
RES=`echo $RES | sed 's/ /", "/g'`
RES=`echo $RES | sed 's/\n/", "/g'`
RESULT='{"'$RES'"}'
mosquitto_pub -h localhost -p 1883 -t ved -m "$RESULT"
делаем скрипт выполняемым

Код: Виділити все

chmod +x /opt/PvMonit/ved
делаем запускать каждую минуту в планировщик cron

Код: Виділити все

crontab -e
добавляем строку запуска

Код: Виділити все

*/1 * * * *  /opt/PvMonit/ved
сохраняем.
теперь все данные мы получим подписавшись на топик ved
скрипт преобразует в JSON формат с помощью замен ,к сожалению у меня нет под рукой этого оборудования и я не знаю какие символы переноса строк, но вроде преобразует правильно, в случае не правильного преобразования надо изменить код скрипта, возможно так же закомментировать 3,4 и 5-ю строки и разбор данных делать в системе домашней автоматизации.
Возможно подключение нескольких устройств, для этого надо для каждого устройства произвести настройки указанные выше только изменить название bash скрипта для каждого устройства
Есть так же на странице проекта библиотека для Arduino и пример подключения оборудования Victron к ардуино, но это выходит за рамки данной статьи.

Поддерживаемое оборудование:
Victron
BMV: 600, 700, 702, 700H
BlueSolar MPPT 75/10, 70/15, 75/14, 100/15, 100/30 rev1, 100/30 rev2, 150/35 rev1, 150/35 rev2, 150/45, 75/50, 100/50 rev1, 100/50 rev2, 150/60, 150/70, 150/85, 150/100
SmartSolar MPPT 250/100, 150/100*, 150/85*, 75/15, 75/10, 100/15, 100/30, 100/50, 150/35, 150/100 rev2, 150/85 rev2, 250/70, 250/85, 250/60, 250/45, 100/20, 100/20 48V, 150/45, 150/60, 150/70, 250/85 rev2, 250/100 rev2“
Phoenix Inverter 12V 250VA 230V*, 24V 250VA 230V*, 48V 250VA 230V*, 12V 375VA 230V*, 24V 375VA 230V*, 48V 375VA 230V*, 12V 500VA 230V*, 24V 500VA 230V*, 48V 500VA 230V*, 12V 250VA 230V, 24V 250VA 230V, 48V 250VA 230V, 12V 250VA 120V, 24V 250VA 120V, 48V 250VA 120V, 12V 375VA 230V, 24V 375VA 230V, 48V 375VA 230V, 12V 375VA 120V, 24V 375VA 120V, 48V 375VA 120V, 12V 500VA 230V, 24V 500VA 230V, 48V 500VA 230V, 12V 500VA 120V, 24V 500VA 120V, 48V 500VA 120V, 12V 800VA 230V, 24V 800VA 230V, 48V 800VA 230V, 12V 800VA 120V, 24V 800VA 120V, 48V 800VA 120V, 12V 1200VA 230V, 24V 1200VA 230V, 48V 1200VA 230V, 12V 1200VA 120V, 24V 1200VA 120V, 48V 1200VA 120V
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Подключение оборудования к одноплатнику

Повідомлення immortal »

WKS подключаем к одноплатнику по UART
Проект PvMonit предназначен для мониторинга оборудования WKS и Victron, совместимого с Ve.direct
В частности одна из задач не только мониторинг, но и использование избыточной энергии. Избыточная энергия это когда у Вас например в 12 часов заряжены все аккумуляторы от солнечных панелей, а солнце ещё светит и светит.
Проект на французском тут.
Установка.
заходим в консоль нашего одноплатника по ssh (в виндовс программа putty)
все команды будем выполнять от суперпользователя, по этому если Вы зашли не под пользователем root то в консоли выполним: вводим пароль пользователя под которым вошли. далее устанавливаем необходимые пакеты и ставим PvMonit

Код: Виділити все

apt install aptitude php-cli php-yaml git sudo screen sshpass python3-pip
pip install pyserial
cd /opt
git clone https://github.com/kepon85/PvMonit.git
cd PvMonit
cp config-default.yaml /opt/PvMonit/config.yaml
На этом установка завершена, есть несколько вариантов использования, в оригинальной статье запускается в качестве демона и устанавливается вэб сервис, но у меня Node-red и далее будет инструкция по подключению в любую систему автоматизации. Минус использования по оригинальной статье в том, что сложная интеграция например с HomeKit, сложно интегрировать другие устройства домашней автоматизации.
Настройки оборудования
устанавливаем необходимые пакеты

Код: Виділити все

aptitude install python3-usb python3-libusb1 python3-json
pip3 install crc16
проверяем работоспособность (WKS должен быть подключен по USB, в скриптах не надо указывать путь к USB устройству поскольку подключение идет по vendorId и productId)

Код: Виділити все

/usr/bin/python3 /opt/PvMonit/bin/wks.py
в консоли Вы должны увидеть json вывод

Код: Виділити все

{"QPIRI": ["230.0", "13.0", "230.0", "50.0", "13.0", "3000", "3000", "48.0", "46.0", "42.0", "56.4", "53.0", "2", "15", "20", "1", "2", "2", "01", "1", "0", "54.0", "0"], "QPIGS": ["228.0", "50.0", "227.0", "50.0", "0917", "0897", "031", "476", "53.72", "001", "095", "0390", "0001", "059.6", "53.82", "00000", "10010111", "12", "04", "00052"], "QPIWS": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
расшифровку полученных значений можно подсмотреть в файле /opt/PvMonit/config.yaml после строки wks: (134-я строка)
теперь нам надо это передать в систему домашней автоматизации ,я не буду приводить пример в конкретной системе, а сделаю универсальный скрипт публикации в mqtt чтобы можно было в любой системе домашней автоматизации подписаться на соответствующий топик. Для публикации из нашего скрипта нам понадобиться mqtt клиент, устанавливаем

Код: Виділити все

apt install mosquitto-clients
создаем файл bash скрипта в редакторе nano

Код: Виділити все

nano /opt/PvMonit/wks
копируем туда следующий код:

Код: Виділити все

#!/bin/bash
RESULT=$(/usr/bin/python3 /opt/PvMonit/bin/wks.py)
mosquitto_pub -h localhost -p 1883 -t wks -m "$RESULT"
делаем скрипт выполняемым

Код: Виділити все

chmod +x /opt/PvMonit/wks
делаем запускать каждую минуту в планировщик cron

Код: Виділити все

crontab -e
добавляем строку запуска

Код: Виділити все

*/1 * * * *  /opt/PvMonit/wks
сохраняем.
теперь все данные мы получим подписавшись на топик wps
если у Вас mqtt сервер имеет имя и пароль или Вы хотите изменить путь топика или чтобы значения запоминались то отредактируйте последнюю строку в файле /opt/PvMonit/wks соответствующим образом
Автор пишет что возможно подключить только одно устройство, проанализировав скрипт я думаю можно подключить больше устройств, для этого копируем файл

Код: Виділити все

cp /opt/PvMonit/bin/wks.py /opt/PvMonit/bin/wks2.py
и в файле /opt/PvMonit/bin/wks2.py меняем параметр interface = 1
сохраняем, и делаем по инструкции скрипт заменив имя файла который мы копировали.
immortal
Повідомлень: 57
З нами з: П'ят листопада 25, 2022 14:14
Ім'я: Сергей
Техніка: Автодом на базе Mercedes
Країна, місто: Luxembourg
Дякував (ла): 1 раз
Подякували: 52 рази
Контактна інформація:

Подключение оборудования к одноплатнику

Повідомлення immortal »

MPP-Solar или аналогичный инвертор
PIP-4048MS
IPS-4000WM
Voltronic Axpert MKS 5KVA
LV5048
JK BMS
JK-B2A24S (HW version 3.0)
JK-B1A24S (HW version 3.0)
Victron VE Direct Devices
Daly BMS
исходник тут
Устанавливается просто

Код: Виділити все

sudo pip3 install mppsolar
после установки варианты использования смотреть в консоли введя mpp-solar -h или jkbms -h
Відповісти

Повернутись до “Все про електрику”

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 3 гостей