UPS (With RTC & Coulometer) For Raspberry Pi SKU: EP-0118 - connect to Home asssistant

Hello
it is possible to integrate this hw module into the home assistant:

EP-0118 - 52Pi Wiki

If so, does anyone have any instructions.
And what could the home assistant read from the module?
Thanks

1 Like

Good afternoon, did you manage to somehow connect this board with HA?

1 Like

Another owner of this small ups board. Possibly new plugin may be created?

Нашел решение:
HACS → Интеграции → Пользовательские репозитории → Добавить ссылку GitHub - mykhailog/hacs_waveshare_ups_hat: Waveshare UPS Hat integration for Home Assistant. → Установить

В папку Packages закинуть файл raspberry_ups.yaml

Включите интерфейс I2c с помощью утилиты настройки Raspberry Pi:
sudo raspi-config
Выберите Interfacing options->I2C, выберите и нажмите Enter, затем перейдите к Finish, и вам будет предложено перезагрузить компьютер.

Установите зависимости для использования модуля smbus-cffi и разрешите вашему пользователю homeassistant(pi) присоединиться к группе i2c:
sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev

Пользовательская среда pi: добавьте пользователя homeassistant(pi) в группу i2c
sudo addgroup pi i2c

Пользовательская среда pi: перезагрузите Raspberry Pi, чтобы применить изменения
sudo reboot

Проверьте i2c-адрес датчика
После установки i2c-tools доступна новая утилита для сканирования адресов подключенных датчиков:

/usr/sbin/i2cdetect -y 1
Он выведет такую таблицу:

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00: – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: 40 – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – 68 – – – – – – –
70: – – – – – – – –

где 0x40 это адрес INA219 (Цифровой датчик тока и напряжения)
0x68 это адрес DS1307 (Модуль Real Time Clock)

В config/custom_components/waveshare_ups_hat/ изменить адреса для модуля INA219

binary_sensor.py → строка self._ina219 = INA219(addr=0x40)
sensor.py → строка self._ina219 = INA219(addr=0x40)

1 Like

Содержимое файла raspberry_ups.yaml:

raspberry_ups:

  binary_sensor:
    - platform: waveshare_ups_hat


  sensor:
    - platform: waveshare_ups_hat


  template:
    - sensor:
        - name: UPS Capacity
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'capacity' )}}"
          unit_of_measurement: '%'

        - name: UPS PSU Voltage
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'psu_voltage' )}}"
          unit_of_measurement: 'v'

        - name: UPS Load Voltage
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'load_voltage' )}}"
          unit_of_measurement: 'v'

        - name: UPS Shunt Voltage
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'shunt_voltage' )}}"
          unit_of_measurement: 'v'

        - name: UPS Current
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'current' )}}"
          unit_of_measurement: 'mA'

        - name: UPS Power
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'power' )}}"
          unit_of_measurement: 'W'

        - name: UPS Power Calculated
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'power_calculated' )}}"
          unit_of_measurement: 'W'

        - name: UPS Charging
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'charging' )}}"
          unit_of_measurement: ''

        - name: UPS Online
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'online' )}}"
          unit_of_measurement: ''

        - name: UPS Low Battery
          state: "{{ state_attr('sensor.waveshare_ups_hat', 'low_battery' )}}"
          unit_of_measurement: ''


  homeassistant:
    customize:

        # Файл для переименовывания объектов без уникального ID
        # Источник бесперебойного питания для RP4

        sensor.ups_capacity:
          friendly_name: ИБП Ёмкость
          icon: mdi:battery-charging

        sensor.ups_psu_voltage:
          friendly_name: ИБП Напряжение блока питания
          unit_of_measurement: "В"
          icon: mdi:alpha-v-box-outline

        sensor.ups_load_voltage:
          friendly_name: ИБП Напряжение нагрузки
          unit_of_measurement: "В"
          icon: mdi:alpha-v-box-outline

        sensor.ups_shunt_voltage:
          friendly_name: ИБП Напряжение шунта
          unit_of_measurement: "В"
          icon: mdi:alpha-v-box-outline

        sensor.ups_current:
          friendly_name: ИБП Ток шины
          unit_of_measurement: "мА"
          icon: mdi:alpha-a-box-outline

        sensor.ups_power:
          friendly_name: ИБП Мощность
          unit_of_measurement: "Вт"
          icon: mdi:lightning-bolt-outline

        sensor.ups_power_calculated:
          friendly_name: ИБП Мощность расчетная
          unit_of_measurement: "Вт"
          icon: mdi:lightning-bolt-outline

        sensor.ups_charging:
          friendly_name: ИБП Зарядка
          icon: mdi:battery-charging

        sensor.ups_online:
          friendly_name: ИБП Онлайн
          icon: mdi:battery-charging-100

        sensor.ups_low_battery:
          friendly_name: ИБП Низкий заряд батареи
          icon: mdi:battery-low

The author of the original waveshare_ups_hat integration seems to have abandoned the project, so I forked it: GitHub - odya/hass-ina219-ups-hat: Home Assistant UPS Hat integration. Waveshare and others based on INA219

  • Refactored the integration. Now it automatically creates all the sensors; there’s no need to create templates from attributes.
  • Reworked the “remaining time” calculation - originally, it constantly returned ~24 minutes for me.
  • Added smoothing of data using SMA (Simple Moving Average).
  • Added automation examples to the repository.

Hello, Andrey.
I was tryin to use your mod on my RaspberryPi3, but can’t figure out how to set up it propperly. First of all, my I2C address of the shield was 0x42 instead of 0x41 (hardcoded in your scripts). But after I changed it — some sensors appears in HA, but logs was full of errors and sensors was not operable.
Could you help me a little (same address error was also noticed by another user on GitHub, but he changed to 0x40 and got working sensor).

Thank you for input anyway!

If anyone would like just the ina219 module on the RPI.
Instructions in Slovak here:
https://www.homeassistant-cz.cz/viewtopic.php?p=12487&hilit=INA219#p12487