From d848f0b941851658f86579b5986454143e50db14 Mon Sep 17 00:00:00 2001 From: functionpointer Date: Mon, 27 Nov 2023 23:43:06 +0100 Subject: [PATCH] Add pylontech integration (#2841) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/images/pylontech.jpg | Bin 0 -> 45986 bytes components/images/rj45_pinout.jpg | Bin 0 -> 31886 bytes components/pylontech.rst | 197 ++++++++++++++++++++++++++++++ images/pylontech.jpg | Bin 0 -> 7569 bytes index.rst | 1 + 5 files changed, 198 insertions(+) create mode 100644 components/images/pylontech.jpg create mode 100644 components/images/rj45_pinout.jpg create mode 100644 components/pylontech.rst create mode 100644 images/pylontech.jpg diff --git a/components/images/pylontech.jpg b/components/images/pylontech.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06624cd9a308acd3b5e24b662f2efdf9e3b23fb4 GIT binary patch literal 45986 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�Yls9fTKFXyjEj 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 literal 0 HcmV?d00001 diff --git a/components/images/rj45_pinout.jpg b/components/images/rj45_pinout.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce898adeb1f49f9f791c43fc73c0c96a4149230a GIT binary patch literal 31886 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 literal 0 HcmV?d00001 diff --git a/components/pylontech.rst b/components/pylontech.rst new file mode 100644 index 000000000..547c85182 --- /dev/null +++ b/components/pylontech.rst @@ -0,0 +1,197 @@ +Pylontech Battery +================= + +.. seo:: + :description: Instructions for setting up Pylontech Battery in ESPHome. + :image: pylontech.jpg + +The Pylontech component allows you to pull data from Pylontech Batteries into ESPHome. +It uses :ref:`UART ` for communication. + +Once configured, you can use sensors as described below for your projects. + +.. figure:: images/pylontech.jpg + :align: center + :width: 50.0% + + Pylontech Batteries + +Hardware Setup +-------------- + +You can connect to Pylontech Batteries using the port labeled "Console". +Any connections via CAN or RS485 (e.g. to an inverter) are untouched and remain functional. + +The console port offers a RS232 interface using a RJ10 or RJ45 connector. +The voltage levels are *not* TTL-compatible. A RS232 transceiver must be placed between the Batteries and the ESPHome device. +MAX3232-based transceivers have been tested and work well. + +If you have multiple batteries you need to connect to the master battery's console port. + +.. list-table:: Pylontech RJ45 Console Port (US2000C, US3000C) + :header-rows: 1 + + * - RJ45 Pin + - Function + - Connect to + * - 3 + - Pylontech TX + - ESPHome RX via transceiver + * - 6 + - Pylontech RX + - ESPHome TX via transceiver + * - 8 + - GND + - GND + +.. figure:: images/rj45_pinout.jpg + :align: center + :width: 70.0% + + RJ45 pinout + +.. list-table:: Pylontech RJ10 Console Pinout (US2000B) + :header-rows: 1 + + * - RJ410 Pin + - Function + - Connect to + * - 2 + - Pylontech RX + - ESPHome TX via transceiver + * - 3 + - Pylontech TX + - ESPHome RX via transceiver + * - 4 + - GND + - GND + +Component/Hub +------------- + +.. code-block:: yaml + + # Example configuration entry + pylontech: + + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **id** (**Required**, :ref:`config-id`): The id to use for this Pylontech component. +- **uart_id** (*Optional*): The uart Bus ID +- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. + +Sensor +------ + +All values are reported for every Pylontech battery individually. + +.. code-block:: yaml + + # Example configuration entry + sensor: + - platform: pylontech + battery: 1 + + voltage: + name: "Battery1 Voltage" + current: + name: "Battery1 Current" + coulomb: + name: "Battery1 State of Charge" + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **pylontech_id** (*Optional*): Manually specify the ID of the pylontech instance if there are multiple. +- **battery** (**Required**): Which battery to monitor. 1 stands for the main battery, 2..6 for child batteries. +- **voltage** (*Optional*): Voltage of the battery. All options from :ref:`Sensor `. +- **current** (*Optional*): Current flowing into the battery. Negative when discharging. All options from :ref:`Sensor `. +- **coulomb** (*Optional*): State of Charge in percent. All options from :ref:`Sensor `. +- **temperature** (*Optional*): Temperature. All options from :ref:`Sensor `. +- **temperature_low** (*Optional*): Historic minimum temperature. All options from :ref:`Sensor `. +- **temperature_high** (*Optional*): Historic maximum temperature. All options from :ref:`Sensor `. +- **voltage_low** (*Optional*): Historic minimum voltage. All options from :ref:`Sensor `. +- **voltage_high** (*Optional*): Historic maximum voltage. All options from :ref:`Sensor `. +- **mos_temperature** (*Optional*): Temperature of the mosfets. All options from :ref:`Sensor `. + +Text Sensor +----------- + +.. code-block:: yaml + + # Example configuration entry + text_sensor: + - platform: pylontech + pylontech_id: pylontech0 + battery: 1 + + base_state: + id: bat1_base_state + name: "Battery1 Base State" + + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **pylontech_id** (**Optional**): Manually specify the ID of the pylontech instance if there are multiple. +- **battery** (**Required**): Which battery to monitor. 1 stands for the main battery, 2..6 for child batteries. +- **base_state** (*Optional*): Base state. Usually reads ``Dischg``, ``Charge`` or ``Idle``. All options from :ref:`Text Sensor `. +- **voltage_state** (*Optional*): Voltage state. Usually reads ``Normal``. All options from :ref:`Text Sensor `. +- **current_state** (*Optional*): Current state. Usually reads ``Normal``. All options from :ref:`Text Sensor `. +- **temperature_state** (*Optional*): Temperature state. Usually reads ``Normal``. All options from :ref:`Text Sensor `. + +Energy Monitoring +----------------- + +By combining :doc:`template sensors ` and :doc:`integration sensors ` +one can monitor the energy flowing into and out of all batteries combined, ready for `Homeassistant Energy Monitoring `__. + +.. code-block:: yaml + + sensor: + - platform: template + id: pylontech_power + name: "Pylontech power" + unit_of_measurement: W + lambda: |- + auto pwr1 = id(bat1_voltage).state * id(bat1_current).state; + auto pwr2 = id(bat2_voltage).state * id(bat2_current).state; + auto pwr = pwr1 + pwr2; + id(combined_charge_power).publish_state(max(pwr, 0.0f)); + id(combined_discharge_power).publish_state(max(-pwr, 0.0f)); + return pwr; + update_interval: 5s + device_class: power + state_class: measurement + + - platform: template + id: combined_charge_power + + - platform: template + id: combined_discharge_power + + - platform: integration + name: "Pylontech charging" + sensor: combined_charge_power + time_unit: h + state_class: total_increasing + device_class: energy + unit_of_measurement: "Wh" + + - platform: integration + name: "Pylontech discharging" + sensor: combined_discharge_power + time_unit: h + state_class: total_increasing + device_class: energy + unit_of_measurement: "Wh" + +See Also +-------- + +- `Pylontech-Battery-Monitoring `__ +- `nodered-pylontech-console-reader `__ +- :ref:`uart` +- :ghedit:`Edit` diff --git a/images/pylontech.jpg b/images/pylontech.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87925d645ee5eb46f18a4789802f4f406dd66f78 GIT binary patch literal 7569 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 G{{I2Gq3Wmr literal 0 HcmV?d00001 diff --git a/index.rst b/index.rst index f35cbc085..043912f93 100644 --- a/index.rst +++ b/index.rst @@ -511,6 +511,7 @@ Miscellaneous Hydreon Rain Sensor Binary Sensor, components/binary_sensor/hydreon_rgxx, hydreon_rg9.jpg Modbus Binary Sensor, components/binary_sensor/modbus_controller, modbus.png PipSolar - compatible PV Inverter, components/pipsolar, pipsolar.jpg + Pylontech Batteries, components/pylontech, pylontech.jpg Qwiic PIR Motion, components/binary_sensor/qwiic_pir, qwiic_pir.jpg Remote Receiver, components/remote_receiver, remote.svg, dark-invert Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg