├── .github └── workflows │ ├── hacsaction.yml │ ├── hassfest.yaml │ └── validate.yaml ├── README.md ├── custom_components └── HA-FoxESS-Modbus │ ├── configuration.yaml │ ├── manifest.json │ ├── modbusH3USB.yaml │ ├── modbusLAN-H3.yaml │ ├── modbusLAN.yaml │ └── modbusUSB.yaml └── hacs.json /.github/workflows/hacsaction.yml: -------------------------------------------------------------------------------- 1 | name: HACS Action 2 | 3 | on: 4 | push: 5 | pull_request: 6 | schedule: 7 | - cron: "0 0 * * *" 8 | 9 | jobs: 10 | hacs: 11 | name: HACS Action 12 | runs-on: "ubuntu-latest" 13 | steps: 14 | - name: HACS Action 15 | uses: "hacs/action@main" 16 | with: 17 | category: "integration" 18 | -------------------------------------------------------------------------------- /.github/workflows/hassfest.yaml: -------------------------------------------------------------------------------- 1 | name: Validate with hassfest 2 | 3 | on: 4 | push: 5 | pull_request: 6 | schedule: 7 | - cron: "0 0 * * *" 8 | 9 | jobs: 10 | validate: 11 | runs-on: "ubuntu-latest" 12 | steps: 13 | - uses: "actions/checkout@v2" 14 | - uses: home-assistant/actions/hassfest@master 15 | -------------------------------------------------------------------------------- /.github/workflows/validate.yaml: -------------------------------------------------------------------------------- 1 | name: Validate 2 | 3 | on: 4 | push: 5 | workflow_dispatch: 6 | pull_request: 7 | schedule: 8 | - cron: "0 0 * * *" 9 | 10 | jobs: 11 | validate: 12 | runs-on: "ubuntu-latest" 13 | steps: 14 | - uses: "actions/checkout@v2" 15 | - name: HACS validation 16 | uses: "hacs/action@main" 17 | with: 18 | category: "integration" 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **. ➡ This Fork is not updated any more as I recommend using the HA Integration by @Nathan Marlor [https://github.com/nathanmarlor/foxess_modbus](https://github.com/nathanmarlor/foxess_modbus) for H3 inverters. 👍 .** 2 |
3 | 4 |

5 | FoxESS and Home Assistant integration via Modbus RS485 6 |

7 | 8 |
9 |

10 | 11 | 12 | **A community maintained Home Assistant integration using local native polling of Modbus data using RS485 to enable near realtime data access, with no reliance on the FoxESS cloud portal** 13 | 14 | ![image](https://user-images.githubusercontent.com/6324545/166502285-eb0ca405-05a3-4722-a698-36e3e6b0f60d.png) 15 | 16 | 17 | --- 18 | 19 | Connecting your H3 inverter can be acheived by: 20 | 21 | * Connecting to the (RasPi's) COM port using a [RS485 to USB](https://www.reichelt.de/raspberry-pi-usb-rs485-schnittstelle-ch340c-rpi-usb-rs485-p242783.html?&nbc=1) (Approved) 22 | * Connecting to the home WiFi using a RS485 to WiFi dongle like the 'Elfin EW11A RS485 to WIFI converter'. [HowTo in the Wiki.](https://github.com/rsaemann/HA-FoxESS-H3-Modbus/wiki/RS485-via-Wifi) (Connects the RS485 pins on your inverter. This does not use the inverter's build-in WiFi or Ethernet connection.) 23 | 24 | * ⚠️ Using the inverter's Ethernet LAN port or dongle to connect to your router/switch via Ethernet does **not** work for H3 inverters, yet. Port 502 is not open. This solution might be fixed with future firmware. It is not possible with firmware version Master 1.25-1.57, Slave 1.02, Manager 1.29 ⚠️ 25 | 26 | 27 | 28 | --- 29 | 30 | 31 | ## Supported Hardware 32 | This fork adds support for the
33 | **Hybrid Series H3**
34 | Tested with
35 | ✅ H3-5.0-E
36 | ✅ H3-6.0-E
37 | ✅ H3-8.0-E
38 | ✅ H3-10.0-E
39 | ✅ H3-12.0-E
40 |
41 | 42 | The [origin project](https://github.com/StealthChesnut/HA-FoxESS-Modbus) supports 1-phase Inverters 43 | **Hybrid Series**
44 | ✅ H1-3.0-E
45 | ✅ H1-3.7-E
46 | ✅ H1-4.6-E
47 | ✅ H1-5.0-E
48 | ✅ H1-6.0-E
49 | **AC Series**
50 | ✅ AC-3.0-E
51 | ✅ AC-3.7-E
52 | ✅ AC-4.6-E
53 | ✅ AC-5.0-E
54 | ✅ AC-6.0-E
55 | **AIO Series**
56 | ✅ AIO-H1-3.0
57 | ✅ AIO-H1-3.7
58 | ✅ AIO-H1-4.6
59 | ✅ AIO-H1-5.0
60 | ✅ AIO-H1-6.0
61 | 62 | **For T Series - See [this alternative project](https://github.com/assembly12/Foxess-T-series-ESPHome-Home-Assistant) by [assembly12](https://github.com/assembly12)**
63 | 64 | --- 65 | 66 |

The aim of this project is to enable the full use of the Energy dashboard in Home Assistant and is a fully functional replacement of the FoxESS App for reporting needs.

67 | 68 | ## ⚠️ Installation via HACS does not work for this fork due to naming convention 69 | 70 | ## Manual Specific installation 71 | * Create the directory structure /config/custom_components/HA-FoxESS-Modbus/ (use the "file editor" addon of HA) 72 | * Copy the required modbus file to /config/custom_components/HA-FoxESS-Modbus/ 73 | * if you go with serial cable to USB connection use /config/custom_components/HA-FoxESS-Modbus/modbusH3USB.yaml 74 | * if you go with wifi to RS485 dongle use /config/custom_components/HA-FoxESS-Modbus/modbusLAN-H3.yaml 75 | 76 | ## Then, Common Installation Steps 77 | 78 | * Create a full backup of your HA instance including the configuration.yaml file 79 | * Copy the required modbus line (USB or Wifi) and following contents of the [configuration.yaml](https://github.com/rsaemann/HA-FoxESS-H3-Modbus/blob/main/custom_components/HA-FoxESS-Modbus/configuration.yaml) file to your config file 80 | * Check your config is valid, then Restart HA 81 | * Map energy dashboard as per below example and enjoy configuring dashboards using near realtime data. 82 | 83 | 84 | [Step by step walkthrough of the setup (for the H1 inverter fork)](https://youtu.be/uMPr0V6lTHg) 85 | ![image](https://user-images.githubusercontent.com/6324545/166504169-81fd77e8-df5b-40f0-9c1f-9735e59b2723.png) 86 | 87 | ## Engergy Dashboard Configuration 88 | 89 | ![image](https://user-images.githubusercontent.com/6324545/166470207-44236718-3f6c-4995-99fe-0a214eda49e6.png) 90 | 91 | 92 | ### Energy Dashboard Values 93 | 94 | **Grid Consumption** 95 | - meter_consumption_energy_daily (only when SmartMeter is connected to inverter) 96 | - inv_load_energy_daily (inverter's output. use for island system) 97 | 98 | **Return to Grid** 99 | - meter_feed_in_energy_daily (only when SmartMeter is connected to inverter) 100 | 101 | **Solar Panels** 102 | 103 | - pv1_daily 104 | - pv2_daily 105 | 106 | As an alternative: 107 | - pv_energy_daily (direct cumulative PV1+PV2 from inverter) 108 | 109 | **Home Batteries** 110 | 111 | - battery_charge_energy_daily 112 | - battery_discharge_energy_daily 113 | 114 | ## Provided Entities 115 | 116 | **Registers** 117 | **The [H3 registers wiki](https://github.com/rsaemann/HA-FoxESS-H3-Modbus/wiki/H3-Modbus-Registers) has references for the 3-phase registers.** 118 | 119 | **The [H1 registers wiki](https://github.com/StealthChesnut/HA-FoxESS-Modbus/wiki/Data-Register-Reference---H1-AC1) shows the 1-phase registers.** 120 | 121 | 122 |
123 |
124 | 125 | --- 126 | 127 | Please read and understand before using this plugin: 128 | 129 | > This plugin has been developed as a personal project, with no connection to the official brand of FoxESS, use of this plugin is intended for use by the community without fee but has no warrenty or liability should any damage, harm or undesired results happen as a result of using this plugin. We strongly recommend that only competently trained individuals attempt to wire the additional connections required for this plugin to function. There is a risk of personal or device damage/harm. 130 | You have been warned! 131 | > This modbus integration is read-only. You cannot change the behaviour of your inverter or set any values. 132 | --- 133 | ## Troubleshooting 134 | 135 | If you encounter modbus reading errors: 136 | - Disable unneeded sensors by commenting all lines, or delete the entries. [It was found](https://github.com/StealthChesnut/HA-FoxESS-Modbus/issues/62) that ``battery_voltage`` and ``battery_current`` are two sensors that do not respond to status requests correctly. 137 |
Comment out in the modbusH3USB.yaml file 138 |

139 | 140 | ``` 141 | # - name: "Battery Voltage" 142 | # unique_id: foxess_inv1_battery_voltage 143 | # scan_interval: 30 144 | # address: 31034 145 | # state_class: measurement 146 | # unit_of_measurement: "V" 147 | # data_type: int16 148 | # scale: 0.1 149 | # precision: 1 150 | # device_class: voltage 151 | # input_type: holding 152 | # - name: "Battery Current" 153 | # unique_id: foxess_inv1_battery_current 154 | # scan_interval: 30 155 | # address: 31035 156 | # state_class: measurement 157 | # unit_of_measurement: "A" 158 | # data_type: int16 159 | # scale: 0.1 160 | # precision: 1 161 | # input_type: holding 162 | # device_class: current 163 | ``` 164 | 165 |

166 |
167 | 168 | - Increase the ``scan_interval`` for sensors that are not needed. The HA modbus integration requests every sensor register with a single call. If you have a large number of sensors here, the calls might interfere with each other. 169 | -------------------------------------------------------------------------------- /custom_components/HA-FoxESS-Modbus/configuration.yaml: -------------------------------------------------------------------------------- 1 | # FoxESS Modbus H3 Plugin - Configuration and Sensor Mappings 2 | # Adapted by: https://github.com/rsaemann/HA-FoxESS-H3-Modbus 3 | # Original Source https://github.com/StealthChesnut/HA-FoxESS-Modbus 4 | # This file isn't a valid configuration file! 5 | 6 | # Instructions: 7 | # copy the custom_components directory to your HA custom_components directory 8 | # Add the modbus: lines to your configuration.yaml 9 | # Add the sensors below to your configuration.yaml sensor section 10 | # 11 | 12 | # This defines where your HA looks up the credentials and sensor definition for the inverter 13 | # Only use ONE of the following two lines: 14 | modbus: !include custom_components/HA-FoxESS-Modbus/modbusH3USB.yaml #if you go with RS485 cable to usb 15 | modbus: !include custom_components/HA-FoxESS-Modbus/modbusLAN-H3.yaml #if you go with RS485 WiFi 16 | 17 | #Sensors turn power values into power/hour values for meters 18 | sensor: 19 | - method: left 20 | name: pv1_sum 21 | platform: integration 22 | round: 2 23 | source: sensor.pv1_power 24 | unit_time: h 25 | - method: left 26 | name: pv2_sum 27 | platform: integration 28 | round: 2 29 | source: sensor.pv2_power 30 | unit_time: h 31 | 32 | #Templates enable math operations against states/values to give us better data 33 | template: 34 | - sensor: #Sensors without triggers change every time when a participating state changes 35 | - name: "Battery Discharge" #absolute value. 0 when charging 36 | device_class: "power" 37 | unit_of_measurement: "W" 38 | state: > 39 | {% if (states('sensor.battery_discharge_power') | float(default=0) ) > 0 %} 40 | {{ states('sensor.battery_discharge_power') | float(default=0) * 1 }} 41 | {% else %} 42 | 0 43 | {% endif %} 44 | - name: "Battery Charge" #absolute value. 0 when discharging 45 | device_class: "power" 46 | unit_of_measurement: "W" 47 | state: > 48 | {% if (states('sensor.battery_discharge_power') | float(default=0) ) < 0 %} 49 | {{ states('sensor.battery_discharge_power') | float(default=0) * -1 }} 50 | {% else %} 51 | 0 52 | {% endif %} 53 | 54 | - name: "Inverter Feed In Power" #positive or zero 55 | device_class: "power" 56 | unit_of_measurement: "W" 57 | state: > 58 | {% if (states('sensor.inverter_load_power') | float(default=0) ) > 0 %} 59 | {{ states('sensor.inverter_load_power') | float(default=0) }} 60 | {% else %} 61 | 0 62 | {% endif %} 63 | - name: "Inverter Grid Consumption" #positive or zero 64 | device_class: "power" 65 | unit_of_measurement: "W" 66 | state: > 67 | {% if (states('sensor.inverter_load_power') | float(default=0) ) < 0 %} 68 | {{ states('sensor.inverter_load_power') | float(default=0) * -1 }} 69 | {% else %} 70 | 0 71 | {% endif %} 72 | 73 | - name: "Inverter State String" 74 | unique_id: foxess_inv1_state_string 75 | state: > 76 | {% if (states('sensor.inverter_state_code')) == "0" %} 77 | Waiting 78 | {% elif (states('sensor.inverter_state_code')) == "1"%} 79 | Selfcheck 80 | {% elif (states('sensor.inverter_state_code')) == "2"%} 81 | Ongrid 82 | {% elif (states('sensor.inverter_state_code')) == "3"%} 83 | EPS 84 | {% elif (states('sensor.inverter_state_code')) == "4"%} 85 | Fault 86 | {% elif (states('sensor.inverter_state_code')) == "5"%} 87 | Fault 88 | {% elif (states('sensor.inverter_state_code')) == "6"%} 89 | Idle 90 | {% else%} 91 | Unknown 92 | {% endif %} 93 | 94 | - trigger: 95 | - platform: state 96 | entity_id: sensor.battery_discharge_power 97 | sensor: 98 | 99 | - trigger: 100 | - platform: time_pattern 101 | seconds: "20" 102 | sensor: 103 | - name: "PV Power Now" 104 | unique_id: foxess_inv1_pv_power_now 105 | device_class: "power" 106 | unit_of_measurement: "W" 107 | state: > 108 | {{ (states('sensor.pv1_power') | float(default=0) + states('sensor.pv2_power') | float(default=0) ) }} 109 | - name: "Inverter Load power" 110 | device_class: "power" 111 | unit_of_measurement: "W" 112 | state: > 113 | {{ (states('sensor.load_power_r') | float(default=0) 114 | + states('sensor.load_power_s') | float(default=0) 115 | + states('sensor.load_power_t') | float(default=0)) | round(2) }} 116 | - name: "Inverter EPS power" 117 | unique_id: foxess_inv1_eps_power 118 | device_class: "power" 119 | unit_of_measurement: "W" 120 | state: > 121 | {{ (states('sensor.eps_power_r') | float(default=0) 122 | + states('sensor.eps_power_s') | float(default=0) 123 | + states('sensor.eps_power_t') | float(default=0)) | round(1) }} 124 | - name: "Inverter Out power" 125 | unique_id: foxess_inv1_out_power 126 | device_class: "power" 127 | unit_of_measurement: "W" 128 | state: > 129 | {{ (states('sensor.inv_power_r') | float(default=0) 130 | + states('sensor.inv_power_s') | float(default=0) 131 | + states('sensor.inv_power_t') | float(default=0)) | round(1) }} 132 | - name: "Meter Power" 133 | unique_id: foxess_meter_power 134 | device_class: "power" 135 | unit_of_measurement: "W" #negative=consumption/importing from grid 136 | state: > 137 | {{ states('sensor.meter_power_r') | float(default=0) 138 | + states('sensor.meter_power_s') | float(default=0) 139 | + states('sensor.meter_power_t') | float(default=0) 140 | }} 141 | - name: "House load Power" 142 | unique_id: house_load 143 | device_class: "power" 144 | unit_of_measurement: "W" 145 | state: > 146 | {{(states('sensor.meter_power')|float(default=0))*-1 147 | +states('sensor.inverter_out_power')|float(default=0)}} 148 | - name: "Inverter System Losses" 149 | unique_id: foxess_inv1_system_losses 150 | device_class: "power" 151 | unit_of_measurement: "W" 152 | state: > 153 | {{ ((states('sensor.pv1_power') | float(default=0) 154 | + states('sensor.pv2_power') | float(default=0) 155 | + states('sensor.battery_discharge_power') | float(default=0) 156 | - states('sensor.inverter_eps_power') | float(default=0) ) 157 | - states('sensor.inverter_out_power') | float(default=0)) | round(2) }} 158 | - name: "EPS remaining time" 159 | device_class: "duration" 160 | unit_of_measurement: "hours" 161 | # hardcoded values here: 20% minimum SoC (not usable), 14kWh battery total capacity -> 140 kwh/% strange unit 162 | state: > 163 | {{ (((states('sensor.battery_soc') | float(default=0)) -20)*140 164 | / (states('sensor.inverter_load_power') | float(default=0))) | round(2) }} 165 | 166 | - trigger: 167 | - platform: time_pattern 168 | minutes: "5" 169 | sensor: 170 | - name: autarky 171 | unique_id: pv_autarky 172 | unit_of_measurement: "%" 173 | #precision: 1 174 | state: > 175 | {{((1-((states('sensor.meter_consumption_energy_daily')|float(default=0))/ 176 | ((states('sensor.inv_load_energy_daily')|float(default=0.0))+(states('sensor.inverter_input_energy_daily')|float(default=0))) 177 | ))*100)| round(1)}} 178 | 179 | # Utility Meters - Provides meters to be used with the energy dashboard and reset daily 180 | utility_meter: 181 | pv1_daily: 182 | source: sensor.pv1_sum 183 | cycle: daily 184 | pv2_daily: 185 | source: sensor.pv2_sum 186 | cycle: daily 187 | # losses_daily: 188 | # source: sensor.losses_sum 189 | # cycle: daily 190 | -------------------------------------------------------------------------------- /custom_components/HA-FoxESS-Modbus/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "domain": "foxess", 3 | "name": "FoxESS Community Modbus Integration", 4 | "documentation": "https://github.com/StealthChesnut/HA-FoxESS-Modbus", 5 | "issue_tracker": "https://github.com/StealthChesnut/HA-FoxESS-Modbus/issues", 6 | "dependencies": [], 7 | "codeowners": ["@StealthChesnut"], 8 | "requirements": [], 9 | "iot_class": "local_polling", 10 | "version": "1.0.0" 11 | } 12 | -------------------------------------------------------------------------------- /custom_components/HA-FoxESS-Modbus/modbusH3USB.yaml: -------------------------------------------------------------------------------- 1 | # v0.1 2 | # Modbus Config for Fox ESS Hybrid H3 Inverter 3 | # Adapted by https://github.com/rsaemann/HA-FoxESS-H3-Modbus 4 | # Original for H1 inverters Created by https://github.com/StealthChesnut/HA-FoxESS-Modbus 5 | 6 | # ---------------------------RS485 Connection---------------------------------------- 7 | # For use when connecting to RS485 port of inverter 8 | # 9 | - name: HA-FoxESS-H3-Modbus-USB 10 | type: serial 11 | baudrate: 9600 12 | bytesize: 8 13 | method: rtu 14 | parity: N 15 | port: /dev/ttyUSB0 #This depends on your used USB-to-RS485 dongle 16 | stopbits: 1 17 | # 18 | # --------------------------------------------------------------------------- 19 | # Device ID ("Slave", standard: 247) can be set in inverter menu configuration->communication->RS485->DeviceID 20 | 21 | sensors: 22 | - name: "PV1-Voltage" 23 | unique_id: foxess_inv1_pv1_voltage 24 | scan_interval: 30 25 | slave: 247 26 | address: 31000 27 | state_class: measurement 28 | unit_of_measurement: "V" 29 | data_type: int16 30 | scale: 0.1 31 | precision: 1 32 | input_type: holding 33 | device_class: voltage 34 | - name: "PV1-Current" 35 | unique_id: foxess_inv1_pv1_current 36 | scan_interval: 30 37 | slave: 247 38 | address: 31001 39 | state_class: measurement 40 | unit_of_measurement: "A" 41 | data_type: int16 42 | scale: 0.1 43 | precision: 1 44 | input_type: holding 45 | device_class: current 46 | - name: "PV1-Power" 47 | unique_id: foxess_inv1_pv1_power 48 | scan_interval: 30 49 | slave: 247 50 | address: 31002 51 | state_class: measurement 52 | unit_of_measurement: "W" 53 | data_type: int16 54 | scale: 1 55 | precision: 0 56 | input_type: holding 57 | device_class: power 58 | - name: "PV2-Voltage" 59 | unique_id: foxess_inv1_pv2_voltage 60 | scan_interval: 30 61 | slave: 247 62 | address: 31003 63 | state_class: measurement 64 | unit_of_measurement: "V" 65 | data_type: int16 66 | scale: 0.1 67 | precision: 1 68 | input_type: holding 69 | device_class: voltage 70 | - name: "PV2-Current" 71 | unique_id: foxess_inv1_pv2_current 72 | scan_interval: 30 73 | slave: 247 74 | address: 31004 75 | state_class: measurement 76 | unit_of_measurement: "A" 77 | data_type: int16 78 | scale: 0.1 79 | precision: 1 80 | input_type: holding 81 | device_class: current 82 | - name: "PV2-Power" 83 | unique_id: foxess_inv1_pv2_power 84 | scan_interval: 30 85 | slave: 247 86 | address: 31005 87 | state_class: measurement 88 | unit_of_measurement: "W" 89 | data_type: int16 90 | scale: 1 91 | precision: 0 92 | input_type: holding 93 | device_class: power 94 | #section main grid output 95 | - name: "Grid Voltage R" # Grid Voltage formerly named: "Volt L1" 96 | unique_id: foxess_inv1_grid_voltage_R 97 | scan_interval: 30 98 | slave: 247 99 | address: 31006 100 | state_class: measurement 101 | unit_of_measurement: "V" 102 | data_type: uint16 103 | precision: 1 104 | scale: 0.1 105 | input_type: holding 106 | device_class: voltage 107 | - name: "Grid Voltage S" # Grid Voltage formerly named: "Volt L2" 108 | unique_id: foxess_inv1_grid_voltage_S 109 | scan_interval: 30 110 | slave: 247 111 | address: 31007 112 | state_class: measurement 113 | unit_of_measurement: "V" 114 | data_type: uint16 115 | precision: 1 116 | scale: 0.1 117 | input_type: holding 118 | device_class: voltage 119 | - name: "Grid Voltage T" # Grid Voltage formerly named: "Volt L3" 120 | unique_id: foxess_inv1_grid_voltage_T 121 | scan_interval: 30 122 | slave: 247 123 | address: 31008 124 | state_class: measurement 125 | unit_of_measurement: "V" 126 | data_type: uint16 127 | precision: 1 128 | scale: 0.1 129 | input_type: holding 130 | device_class: voltage 131 | - name: "Inv Current R" #Main out current L1 132 | unique_id: foxess_inv1_inv_current_R 133 | scan_interval: 30 134 | slave: 247 135 | address: 31009 136 | state_class: measurement 137 | unit_of_measurement: "A" 138 | data_type: int16 139 | scale: 0.1 140 | precision: 1 141 | input_type: holding 142 | device_class: current 143 | - name: "Inv Current S" #Main out current L2 144 | unique_id: foxess_inv1_inv_current_S 145 | scan_interval: 30 146 | slave: 247 147 | address: 31010 148 | state_class: measurement 149 | unit_of_measurement: "A" 150 | data_type: int16 151 | scale: 0.1 152 | precision: 1 153 | input_type: holding 154 | device_class: current 155 | - name: "Inv Current T" #Main out current L3 156 | unique_id: foxess_inv1_inv_current_T 157 | scan_interval: 30 158 | slave: 247 159 | address: 31011 160 | state_class: measurement 161 | unit_of_measurement: "A" 162 | data_type: int16 163 | scale: 0.1 164 | precision: 1 165 | input_type: holding 166 | device_class: current 167 | - name: "Inv Power R" 168 | unique_id: foxess_inv1_inv_power_R 169 | scan_interval: 30 170 | slave: 247 171 | address: 31012 172 | state_class: measurement 173 | unit_of_measurement: "W" 174 | data_type: int16 175 | scale: 1 176 | precision: 0 177 | input_type: holding 178 | device_class: power 179 | - name: "Inv Power S" 180 | unique_id: foxess_inv1_inv_power_S 181 | scan_interval: 30 182 | slave: 247 183 | address: 31013 184 | state_class: measurement 185 | unit_of_measurement: "W" 186 | data_type: int16 187 | scale: 1 188 | precision: 0 189 | input_type: holding 190 | device_class: power 191 | - name: "Inv Power T" 192 | unique_id: foxess_inv1_inv_power_T 193 | scan_interval: 30 194 | slave: 247 195 | address: 31014 196 | state_class: measurement 197 | unit_of_measurement: "W" 198 | data_type: int16 199 | scale: 1 200 | precision: 0 201 | input_type: holding 202 | device_class: power 203 | - name: "Grid Frequency" # Grid Frequency 204 | unique_id: foxess_inv1_grid_frequency 205 | scan_interval: 30 206 | slave: 247 207 | address: 31015 208 | state_class: measurement 209 | unit_of_measurement: "Hz" 210 | data_type: uint16 211 | scale: 0.01 212 | precision: 2 213 | input_type: holding 214 | device_class: frequency 215 | 216 | #section EPS output 217 | - name: "EPS Voltage R" 218 | unique_id: foxess_inv1_eps_voltage_R 219 | scan_interval: 30 220 | slave: 247 221 | address: 31016 222 | state_class: measurement 223 | unit_of_measurement: "V" 224 | data_type: uint16 225 | precision: 1 226 | scale: 0.1 227 | input_type: holding 228 | device_class: voltage 229 | - name: "EPS Voltage S" 230 | unique_id: foxess_inv1_eps_voltage_S 231 | scan_interval: 30 232 | slave: 247 233 | address: 31017 234 | state_class: measurement 235 | unit_of_measurement: "V" 236 | data_type: uint16 237 | precision: 1 238 | scale: 0.1 239 | input_type: holding 240 | device_class: voltage 241 | - name: "EPS Voltage T" 242 | unique_id: foxess_inv1_eps_voltage_T 243 | scan_interval: 30 244 | slave: 247 245 | address: 31018 246 | state_class: measurement 247 | unit_of_measurement: "V" 248 | data_type: uint16 249 | precision: 1 250 | scale: 0.1 251 | input_type: holding 252 | device_class: voltage 253 | - name: "EPS Current R" 254 | unique_id: foxess_inv1_eps_current_R 255 | scan_interval: 30 256 | slave: 247 257 | address: 31019 258 | state_class: measurement 259 | unit_of_measurement: "A" 260 | data_type: int16 261 | scale: 0.1 262 | precision: 1 263 | input_type: holding 264 | device_class: current 265 | - name: "EPS Current S" 266 | unique_id: foxess_inv1_eps_current_S 267 | scan_interval: 30 268 | slave: 247 269 | address: 31020 270 | state_class: measurement 271 | unit_of_measurement: "A" 272 | data_type: int16 273 | scale: 0.1 274 | precision: 1 275 | input_type: holding 276 | device_class: current 277 | - name: "EPS Current T" 278 | unique_id: foxess_inv1_eps_current_T 279 | scan_interval: 30 280 | slave: 247 281 | address: 31021 282 | state_class: measurement 283 | unit_of_measurement: "A" 284 | data_type: int16 285 | scale: 0.1 286 | precision: 1 287 | input_type: holding 288 | device_class: current 289 | - name: "EPS Power R" # eps power formerly named:"L1 Power" 290 | unique_id: foxess_inv1_eps_power_R 291 | scan_interval: 30 292 | slave: 247 293 | address: 31022 294 | state_class: measurement 295 | unit_of_measurement: "W" 296 | data_type: int16 297 | scale: 1 298 | precision: 0 299 | input_type: holding 300 | device_class: power 301 | - name: "EPS Power S" # eps power formerly named:"L2 Power" 302 | unique_id: foxess_inv1_eps_power_S 303 | scan_interval: 30 304 | slave: 247 305 | address: 31023 306 | state_class: measurement 307 | unit_of_measurement: "W" 308 | data_type: int16 309 | scale: 1 310 | precision: 0 311 | input_type: holding 312 | device_class: power 313 | - name: "EPS Power T" # eps power formerly named:"L3 Power" 314 | unique_id: foxess_inv1_eps_power_T 315 | scan_interval: 30 316 | slave: 247 317 | address: 31024 318 | state_class: measurement 319 | unit_of_measurement: "W" 320 | data_type: int16 321 | scale: 1 322 | precision: 0 323 | input_type: holding 324 | device_class: power 325 | 326 | - name: "EPS Frequency" # Grid Frequency formerly named: "Freq" 327 | unique_id: foxess_inv1_eps_frequency 328 | scan_interval: 30 329 | slave: 247 330 | address: 31025 331 | state_class: measurement 332 | unit_of_measurement: "Hz" 333 | data_type: uint16 334 | scale: 0.01 335 | precision: 2 336 | input_type: holding 337 | device_class: frequency 338 | #section Smartmeter current values 339 | # only active, if smart meter is connected 340 | - name: "Meter Power R" 341 | unique_id: foxess_meter1_power_r 342 | scan_interval: 30 343 | slave: 247 344 | address: 31026 345 | state_class: measurement 346 | unit_of_measurement: "W" #negative value= consumption/import 347 | data_type: int16 348 | scale: 1 349 | precision: 0 350 | input_type: holding 351 | device_class: power 352 | - name: "Meter Power S" 353 | unique_id: foxess_meter1_power_s 354 | scan_interval: 30 355 | slave: 247 356 | address: 31027 357 | state_class: measurement 358 | unit_of_measurement: "W" #negative value= consumption/import 359 | data_type: int16 360 | scale: 1 361 | precision: 0 362 | input_type: holding 363 | device_class: power 364 | - name: "Meter Power T" 365 | unique_id: foxess_meter1_power_t 366 | scan_interval: 30 367 | slave: 247 368 | address: 31028 369 | state_class: measurement 370 | unit_of_measurement: "W" #negative value= consumption/import 371 | data_type: int16 372 | scale: 1 373 | precision: 0 374 | input_type: holding 375 | device_class: power 376 | 377 | # Load = Main+EPS 378 | - name: "Load Power R" 379 | unique_id: foxess_inv1_load_power_r 380 | scan_interval: 30 381 | slave: 247 382 | address: 31029 383 | state_class: measurement 384 | unit_of_measurement: "W" 385 | data_type: int16 386 | scale: 1 387 | precision: 0 388 | input_type: holding 389 | device_class: power 390 | - name: "Load Power S" 391 | unique_id: foxess_inv1_load_power_s 392 | scan_interval: 30 393 | slave: 247 394 | address: 31030 395 | state_class: measurement 396 | unit_of_measurement: "W" 397 | data_type: int16 398 | scale: 1 399 | precision: 0 400 | input_type: holding 401 | device_class: power 402 | - name: "Load Power T" 403 | unique_id: foxess_inv1_load_power_t 404 | scan_interval: 30 405 | slave: 247 406 | address: 31031 407 | state_class: measurement 408 | unit_of_measurement: "W" 409 | data_type: int16 410 | scale: 1 411 | precision: 0 412 | input_type: holding 413 | device_class: power 414 | #Temperatures 415 | - name: "Inv Temperature" 416 | unique_id: foxess_inv1_inverter_temperature 417 | scan_interval: 30 418 | slave: 247 419 | address: 31032 420 | state_class: measurement 421 | unit_of_measurement: "°C" 422 | data_type: int16 423 | scale: 0.1 424 | precision: 1 425 | device_class: temperature 426 | input_type: holding 427 | - name: "Inner Temperature" 428 | unique_id: foxess_inv1_internal_temperature 429 | scan_interval: 30 430 | slave: 247 431 | address: 31033 432 | state_class: measurement 433 | unit_of_measurement: "°C" 434 | data_type: int16 435 | scale: 0.1 436 | precision: 1 437 | device_class: temperature 438 | input_type: holding 439 | 440 | #Battery 441 | - name: "Battery Voltage" 442 | unique_id: foxess_inv1_battery_voltage 443 | scan_interval: 30 444 | slave: 247 445 | address: 31034 446 | state_class: measurement 447 | unit_of_measurement: "V" 448 | data_type: int16 449 | scale: 0.1 450 | precision: 1 451 | device_class: voltage 452 | input_type: holding 453 | - name: "Battery Current" 454 | unique_id: foxess_inv1_battery_current 455 | scan_interval: 30 456 | slave: 247 457 | address: 31035 458 | state_class: measurement 459 | unit_of_measurement: "A" 460 | data_type: int16 461 | scale: 0.1 462 | precision: 1 463 | input_type: holding 464 | device_class: current 465 | - name: "Battery Discharge Power" #negative values=charging battery 466 | unique_id: foxess_inv1_battery_power 467 | scan_interval: 30 468 | slave: 247 469 | address: 31036 470 | state_class: measurement 471 | unit_of_measurement: "W" 472 | data_type: int16 473 | scale: 1 474 | precision: 0 475 | input_type: holding 476 | device_class: power 477 | - name: "Battery Temperature" 478 | unique_id: foxess_inv1_battery_temperature 479 | scan_interval: 60 480 | slave: 247 481 | address: 31037 482 | state_class: measurement 483 | unit_of_measurement: "°C" 484 | scale: 0.1 485 | precision: 1 486 | data_type: int16 487 | input_type: holding 488 | device_class: temperature 489 | - name: "Battery SoC" 490 | unique_id: foxess_inv1_battery_soc 491 | scan_interval: 30 492 | slave: 247 493 | address: 31038 494 | state_class: measurement 495 | unit_of_measurement: "%" 496 | data_type: uint16 497 | input_type: holding 498 | device_class: battery 499 | - name: "Battery maximum Charge Current" 500 | unique_id: foxess_inv1_battery_maximum_charge_current 501 | scan_interval: 30 502 | slave: 247 503 | address: 31039 504 | state_class: measurement 505 | unit_of_measurement: "A" 506 | data_type: uint16 507 | scale: 0.1 508 | precision: 1 509 | input_type: holding 510 | device_class: current 511 | - name: "Battery maximum Discharge Current" 512 | unique_id: foxess_inv1_battery_maximum_discharge_current 513 | scan_interval: 30 514 | slave: 247 515 | address: 31040 516 | state_class: measurement 517 | unit_of_measurement: "A" 518 | data_type: uint16 519 | scale: 0.1 520 | precision: 1 521 | input_type: holding 522 | device_class: current 523 | # Status and Errors 524 | - name: "Inverter State Code" 525 | unique_id: foxess_inv1_state_code 526 | scan_interval: 60 527 | slave: 247 528 | address: 31041 529 | state_class: measurement 530 | data_type: uint16 531 | input_type: holding 532 | - name: "Inverter Fault 1 Code" 533 | unique_id: foxess_inv1_fault1_code 534 | scan_interval: 60 535 | slave: 247 536 | address: 31044 537 | state_class: measurement 538 | data_type: uint16 539 | input_type: holding 540 | - name: "Inverter Fault 2 Code" 541 | unique_id: foxess_inv1_fault2_code 542 | scan_interval: 60 543 | slave: 247 544 | address: 31045 545 | state_class: measurement 546 | data_type: uint16 547 | input_type: holding 548 | - name: "Inverter Fault 3 Code" 549 | unique_id: foxess_inv1_fault3_code 550 | scan_interval: 60 551 | slave: 247 552 | address: 31046 553 | state_class: measurement 554 | data_type: uint16 555 | input_type: holding 556 | # Name 557 | - name: "Inverter Model" 558 | unique_id: foxess_inv1_model 559 | scan_interval: 600 560 | slave: 247 561 | address: 30000 562 | count: 16 563 | state_class: measurement 564 | data_type: string 565 | input_type: holding 566 | #cumulative values of Energy 567 | - name: "PV Energy total" 568 | unique_id: foxess_inv1_total_pv_energy 569 | scan_interval: 60 570 | slave: 247 571 | address: 32000 572 | count: 2 573 | state_class: total_increasing 574 | unit_of_measurement: "kWh" 575 | scale: 0.1 576 | precision: 1 577 | data_type: uint32 578 | input_type: holding 579 | device_class: energy 580 | - name: "PV Energy daily" 581 | unique_id: foxess_inv1_daily_pv_energy 582 | scan_interval: 60 583 | slave: 247 584 | address: 32002 585 | state_class: total_increasing 586 | unit_of_measurement: "kWh" 587 | scale: 0.1 588 | precision: 1 589 | data_type: uint16 590 | input_type: holding 591 | device_class: energy 592 | 593 | - name: "Battery Charge Energy total" 594 | unique_id: foxess_inv1_total_charge_energy 595 | scan_interval: 60 596 | slave: 247 597 | address: 32003 598 | count: 2 599 | state_class: total_increasing 600 | unit_of_measurement: "kWh" 601 | scale: 0.1 602 | precision: 1 603 | data_type: uint32 604 | input_type: holding 605 | device_class: energy 606 | - name: "Battery Charge Energy daily" 607 | unique_id: foxess_inv1_daily_charge_energy 608 | scan_interval: 60 609 | slave: 247 610 | address: 32005 611 | state_class: total_increasing 612 | unit_of_measurement: "kWh" 613 | scale: 0.1 614 | precision: 1 615 | data_type: uint16 616 | input_type: holding 617 | device_class: energy 618 | 619 | - name: "Battery Discharge Energy total" 620 | unique_id: foxess_inv1_total_discharge_energy 621 | scan_interval: 60 622 | slave: 247 623 | address: 32006 624 | count: 2 625 | state_class: total_increasing 626 | unit_of_measurement: "kWh" 627 | scale: 0.1 628 | precision: 1 629 | data_type: uint32 630 | input_type: holding 631 | device_class: energy 632 | - name: "Battery Discharge Energy daily" 633 | unique_id: foxess_inv1_daily_discharge_energy 634 | scan_interval: 60 635 | slave: 247 636 | address: 32008 637 | state_class: total_increasing 638 | unit_of_measurement: "kWh" 639 | scale: 0.1 640 | precision: 1 641 | data_type: uint16 642 | input_type: holding 643 | device_class: energy 644 | # registers working with a connected smart meter only: 645 | # 32009-32020 646 | # 647 | - name: "Meter Feed-in Energy total" 648 | unique_id: foxess_sm1_total_feedin_energy 649 | scan_interval: 60 650 | slave: 247 651 | address: 32009 652 | count: 2 653 | state_class: total_increasing 654 | unit_of_measurement: "kWh" 655 | scale: 0.1 656 | precision: 1 657 | data_type: uint32 658 | input_type: holding 659 | device_class: energy 660 | - name: "Meter Feed-in Energy daily" 661 | unique_id: foxess_sm1_daily_feedin_energy 662 | scan_interval: 60 663 | slave: 247 664 | address: 32011 665 | state_class: total_increasing 666 | unit_of_measurement: "kWh" 667 | scale: 0.1 668 | precision: 1 669 | data_type: uint16 670 | input_type: holding 671 | device_class: energy 672 | - name: "Meter Consumption Energy total" 673 | unique_id: foxess_sm1_total_consumption_energy 674 | scan_interval: 60 675 | slave: 247 676 | address: 32012 677 | count: 2 678 | state_class: total_increasing 679 | unit_of_measurement: "kWh" 680 | scale: 0.1 681 | precision: 1 682 | data_type: uint32 683 | input_type: holding 684 | device_class: energy 685 | - name: "Meter Consumption Energy daily" 686 | unique_id: foxess_sm1_daily_consumption_energy 687 | scan_interval: 60 688 | slave: 247 689 | address: 32014 690 | state_class: total_increasing 691 | unit_of_measurement: "kWh" 692 | scale: 0.1 693 | precision: 1 694 | data_type: uint16 695 | input_type: holding 696 | device_class: energy 697 | - name: "Meter Output Energy total" 698 | unique_id: foxess_sm1_total_output_energy 699 | scan_interval: 60 700 | slave: 247 701 | address: 32015 702 | count: 2 703 | state_class: total_increasing 704 | unit_of_measurement: "kWh" 705 | scale: 0.1 706 | precision: 1 707 | data_type: uint32 708 | input_type: holding 709 | device_class: energy 710 | - name: "Meter Output Energy daily" 711 | unique_id: foxess_sm1_daily_output_energy 712 | scan_interval: 60 713 | slave: 247 714 | address: 32017 715 | state_class: total_increasing 716 | unit_of_measurement: "kWh" 717 | scale: 0.1 718 | precision: 1 719 | data_type: uint16 720 | input_type: holding 721 | device_class: energy 722 | - name: "Meter Input Energy total" 723 | unique_id: foxess_sm1_total_input_energy 724 | scan_interval: 60 725 | slave: 247 726 | address: 32018 727 | count: 2 728 | state_class: total_increasing 729 | unit_of_measurement: "kWh" 730 | scale: 0.1 731 | precision: 1 732 | data_type: uint32 733 | input_type: holding 734 | device_class: energy 735 | - name: "Meter Input Energy daily" 736 | unique_id: foxess_sm1_daily_input_energy 737 | scan_interval: 60 738 | slave: 247 739 | address: 32020 740 | state_class: total_increasing 741 | unit_of_measurement: "kWh" 742 | scale: 0.1 743 | precision: 1 744 | data_type: uint16 745 | input_type: holding 746 | device_class: energy 747 | #Grid+EPS values? officially: "Load" energy 748 | - name: "Inv Load Energy total" #formerly named: "EPS Energy total" 749 | unique_id: foxess_inv1_total_load_energy 750 | scan_interval: 60 751 | slave: 247 752 | address: 32021 753 | count: 2 754 | state_class: total_increasing 755 | unit_of_measurement: "kWh" 756 | scale: 0.1 757 | precision: 1 758 | data_type: uint32 759 | input_type: holding 760 | device_class: energy 761 | - name: "Inv Load Energy daily" #formerly named: "EPS Energy daily" 762 | unique_id: foxess_inv1_daily_load_energy 763 | scan_interval: 60 764 | slave: 247 765 | address: 32023 766 | state_class: total_increasing 767 | unit_of_measurement: "kWh" 768 | scale: 0.1 769 | precision: 1 770 | data_type: uint16 771 | input_type: holding 772 | device_class: energy 773 | 774 | -------------------------------------------------------------------------------- /custom_components/HA-FoxESS-Modbus/modbusLAN-H3.yaml: -------------------------------------------------------------------------------- 1 | # v0.1 2 | # Modbus Config for Fox ESS Hybrid H3 Inverter via TCP / Ethernet / WIFI 3 | # Adapted by https://github.com/rsaemann/HA-FoxESS-H3-Modbus 4 | # Original for H1 inverters Created by https://github.com/StealthChesnut/HA-FoxESS-Modbus 5 | # Tested with Elfin EW11A RS485 to WIFI converter 6 | # ---------------------------RS485 Connection---------------------------------------- 7 | # For use when connecting to RS485 port of inverter 8 | # 9 | - name: HA-FoxESS-Modbus-LAN 10 | type: tcp 11 | host: 192.168.178.189 # set to USR devices ip address 12 | port: 502 13 | # 14 | # --------------------------------------------------------------------------- 15 | # Device ID ("Slave", standard: 247) can be set in inverter menu configuration->communication->RS485->DeviceID 16 | 17 | sensors: 18 | - name: "PV1-Voltage" 19 | unique_id: foxess_inv1_pv1_voltage 20 | scan_interval: 30 21 | slave: 247 22 | address: 31000 23 | state_class: measurement 24 | unit_of_measurement: "V" 25 | data_type: int16 26 | scale: 0.1 27 | precision: 1 28 | input_type: holding 29 | device_class: voltage 30 | - name: "PV1-Current" 31 | unique_id: foxess_inv1_pv1_current 32 | scan_interval: 30 33 | slave: 247 34 | address: 31001 35 | state_class: measurement 36 | unit_of_measurement: "A" 37 | data_type: int16 38 | scale: 0.1 39 | precision: 1 40 | input_type: holding 41 | device_class: current 42 | - name: "PV1-Power" 43 | unique_id: foxess_inv1_pv1_power 44 | scan_interval: 30 45 | slave: 247 46 | address: 31002 47 | state_class: measurement 48 | unit_of_measurement: "W" 49 | data_type: int16 50 | scale: 1 51 | precision: 0 52 | input_type: holding 53 | device_class: power 54 | - name: "PV2-Voltage" 55 | unique_id: foxess_inv1_pv2_voltage 56 | scan_interval: 30 57 | slave: 247 58 | address: 31003 59 | state_class: measurement 60 | unit_of_measurement: "V" 61 | data_type: int16 62 | scale: 0.1 63 | precision: 1 64 | input_type: holding 65 | device_class: voltage 66 | - name: "PV2-Current" 67 | unique_id: foxess_inv1_pv2_current 68 | scan_interval: 30 69 | slave: 247 70 | address: 31004 71 | state_class: measurement 72 | unit_of_measurement: "A" 73 | data_type: int16 74 | scale: 0.1 75 | precision: 1 76 | input_type: holding 77 | device_class: current 78 | - name: "PV2-Power" 79 | unique_id: foxess_inv1_pv2_power 80 | scan_interval: 30 81 | slave: 247 82 | address: 31005 83 | state_class: measurement 84 | unit_of_measurement: "W" 85 | data_type: int16 86 | scale: 1 87 | precision: 0 88 | input_type: holding 89 | device_class: power 90 | #section main grid output 91 | - name: "Grid Voltage R" # Grid Voltage formerly named: "Volt L1" 92 | unique_id: foxess_inv1_grid_voltage_R 93 | scan_interval: 30 94 | slave: 247 95 | address: 31006 96 | state_class: measurement 97 | unit_of_measurement: "V" 98 | data_type: int16 99 | precision: 2 100 | scale: 0.1 101 | input_type: holding 102 | device_class: voltage 103 | - name: "Grid Voltage S" # Grid Voltage formerly named: "Volt L2" 104 | unique_id: foxess_inv1_grid_voltage_S 105 | scan_interval: 30 106 | slave: 247 107 | address: 31007 108 | state_class: measurement 109 | unit_of_measurement: "V" 110 | data_type: int16 111 | precision: 2 112 | scale: 0.1 113 | input_type: holding 114 | device_class: voltage 115 | - name: "Grid Voltage T" # Grid Voltage formerly named: "Volt L3" 116 | unique_id: foxess_inv1_grid_voltage_T 117 | scan_interval: 30 118 | slave: 247 119 | address: 31008 120 | state_class: measurement 121 | unit_of_measurement: "V" 122 | data_type: int16 123 | precision: 2 124 | scale: 0.1 125 | input_type: holding 126 | device_class: voltage 127 | - name: "Inv Current R" #Main out current L1 128 | unique_id: foxess_inv1_inv_current_R 129 | scan_interval: 30 130 | address: 31009 131 | state_class: measurement 132 | unit_of_measurement: "A" 133 | data_type: int16 134 | scale: 0.1 135 | precision: 1 136 | input_type: holding 137 | device_class: current 138 | - name: "Inv Current S" #Main out current L2 139 | unique_id: foxess_inv1_inv_current_S 140 | scan_interval: 30 141 | address: 31010 142 | state_class: measurement 143 | unit_of_measurement: "A" 144 | data_type: int16 145 | scale: 0.1 146 | precision: 1 147 | input_type: holding 148 | device_class: current 149 | - name: "Inv Current T" #Main out current L3 150 | unique_id: foxess_inv1_inv_current_T 151 | scan_interval: 30 152 | address: 31011 153 | state_class: measurement 154 | unit_of_measurement: "A" 155 | data_type: int16 156 | scale: 0.1 157 | precision: 1 158 | input_type: holding 159 | device_class: current 160 | - name: "Inv Power R" 161 | unique_id: foxess_inv1_inv_power_R 162 | scan_interval: 30 163 | slave: 247 164 | address: 31012 165 | state_class: measurement 166 | unit_of_measurement: "W" 167 | data_type: int16 168 | scale: 1 169 | precision: 0 170 | input_type: holding 171 | device_class: power 172 | - name: "Inv Power S" 173 | unique_id: foxess_inv1_inv_power_S 174 | scan_interval: 30 175 | slave: 247 176 | address: 31013 177 | state_class: measurement 178 | unit_of_measurement: "W" 179 | data_type: int16 180 | scale: 1 181 | precision: 0 182 | input_type: holding 183 | device_class: power 184 | - name: "Inv Power T" 185 | unique_id: foxess_inv1_inv_power_T 186 | scan_interval: 30 187 | slave: 247 188 | address: 31014 189 | state_class: measurement 190 | unit_of_measurement: "W" 191 | data_type: int16 192 | scale: 1 193 | precision: 0 194 | input_type: holding 195 | device_class: power 196 | - name: "Grid Frequency" # Grid Frequency 197 | unique_id: foxess_inv1_grid_frequency 198 | scan_interval: 30 199 | slave: 247 200 | address: 31015 201 | state_class: measurement 202 | unit_of_measurement: "Hz" 203 | data_type: int16 204 | scale: 0.01 205 | precision: 2 206 | input_type: holding 207 | device_class: frequency 208 | 209 | #section EPS output 210 | - name: "EPS Power R" # eps power formerly named:"L1 Power" 211 | unique_id: foxess_inv1_eps_power_R 212 | scan_interval: 30 213 | slave: 247 214 | address: 31022 215 | state_class: measurement 216 | unit_of_measurement: "W" 217 | data_type: int16 218 | scale: 1 219 | precision: 0 220 | input_type: holding 221 | device_class: power 222 | - name: "EPS Power S" # eps power formerly named:"L2 Power" 223 | unique_id: foxess_inv1_eps_power_S 224 | scan_interval: 30 225 | slave: 247 226 | address: 31023 227 | state_class: measurement 228 | unit_of_measurement: "W" 229 | data_type: int16 230 | scale: 1 231 | precision: 0 232 | input_type: holding 233 | device_class: power 234 | - name: "EPS Power T" # eps power formerly named:"L3 Power" 235 | unique_id: foxess_inv1_eps_power_T 236 | scan_interval: 30 237 | slave: 247 238 | address: 31024 239 | state_class: measurement 240 | unit_of_measurement: "W" 241 | data_type: int16 242 | scale: 1 243 | precision: 0 244 | input_type: holding 245 | device_class: power 246 | 247 | - name: "EPS Frequency" # Grid Frequency formerly named: "Freq" 248 | unique_id: foxess_inv1_eps_frequency 249 | scan_interval: 30 250 | slave: 247 251 | address: 31025 252 | state_class: measurement 253 | unit_of_measurement: "Hz" 254 | data_type: int16 255 | scale: 0.01 256 | precision: 2 257 | input_type: holding 258 | device_class: frequency 259 | #section Smartmeter current values 260 | # only active, if smart meter is connected 261 | - name: "Meter Power R" 262 | unique_id: foxess_meter1_power_r 263 | scan_interval: 30 264 | slave: 247 265 | address: 31026 266 | state_class: measurement 267 | unit_of_measurement: "W" #negative value= consumption/import 268 | data_type: int16 269 | scale: 1 270 | precision: 0 271 | input_type: holding 272 | device_class: power 273 | - name: "Meter Power S" 274 | unique_id: foxess_meter1_power_s 275 | scan_interval: 30 276 | slave: 247 277 | address: 31027 278 | state_class: measurement 279 | unit_of_measurement: "W" #negative value= consumption/import 280 | data_type: int16 281 | scale: 1 282 | precision: 0 283 | input_type: holding 284 | device_class: power 285 | - name: "Meter Power T" 286 | unique_id: foxess_meter1_power_t 287 | scan_interval: 30 288 | slave: 247 289 | address: 31028 290 | state_class: measurement 291 | unit_of_measurement: "W" #negative value= consumption/import 292 | data_type: int16 293 | scale: 1 294 | precision: 0 295 | input_type: holding 296 | device_class: power 297 | 298 | # Load = Main+EPS 299 | - name: "Load Power R" 300 | unique_id: foxess_inv1_load_power_r 301 | scan_interval: 30 302 | slave: 247 303 | address: 31029 304 | state_class: measurement 305 | unit_of_measurement: "W" 306 | data_type: int16 307 | scale: 1 308 | precision: 0 309 | input_type: holding 310 | device_class: power 311 | - name: "Load Power S" 312 | unique_id: foxess_inv1_load_power_s 313 | scan_interval: 30 314 | slave: 247 315 | address: 31030 316 | state_class: measurement 317 | unit_of_measurement: "W" 318 | data_type: int16 319 | scale: 1 320 | precision: 0 321 | input_type: holding 322 | device_class: power 323 | - name: "Load Power T" 324 | unique_id: foxess_inv1_load_power_t 325 | scan_interval: 30 326 | slave: 247 327 | address: 31031 328 | state_class: measurement 329 | unit_of_measurement: "W" 330 | data_type: int16 331 | scale: 1 332 | precision: 0 333 | input_type: holding 334 | device_class: power 335 | #Temperatures 336 | - name: "Inv Temperature" 337 | unique_id: foxess_inv1_inverter_temperature 338 | scan_interval: 30 339 | slave: 247 340 | address: 31032 341 | state_class: measurement 342 | unit_of_measurement: "°C" 343 | data_type: int16 344 | scale: 0.1 345 | precision: 1 346 | device_class: temperature 347 | input_type: holding 348 | - name: "Inner Temperature" 349 | unique_id: foxess_inv1_internal_temperature 350 | scan_interval: 30 351 | slave: 247 352 | address: 31033 353 | state_class: measurement 354 | unit_of_measurement: "°C" 355 | data_type: int16 356 | scale: 0.1 357 | precision: 1 358 | device_class: temperature 359 | input_type: holding 360 | 361 | #Battery 362 | - name: "Battery Voltage" 363 | unique_id: foxess_inv1_battery_voltage 364 | scan_interval: 30 365 | address: 31034 366 | state_class: measurement 367 | unit_of_measurement: "V" 368 | data_type: int16 369 | scale: 0.1 370 | precision: 1 371 | device_class: voltage 372 | input_type: holding 373 | - name: "Battery Current" 374 | unique_id: foxess_inv1_battery_current 375 | scan_interval: 30 376 | address: 31035 377 | state_class: measurement 378 | unit_of_measurement: "A" 379 | data_type: int16 380 | scale: 0.1 381 | precision: 1 382 | input_type: holding 383 | device_class: current 384 | - name: "Battery Discharge Power" #negative values=charging battery 385 | unique_id: foxess_inv1_battery_power 386 | scan_interval: 30 387 | slave: 247 388 | address: 31036 389 | state_class: measurement 390 | unit_of_measurement: "W" 391 | data_type: int16 392 | scale: 1 393 | precision: 0 394 | input_type: holding 395 | device_class: power 396 | - name: "Battery Temperature" 397 | unique_id: foxess_inv1_battery_temperature 398 | scan_interval: 60 399 | slave: 247 400 | address: 31037 401 | state_class: measurement 402 | unit_of_measurement: "°C" 403 | scale: 0.1 404 | precision: 1 405 | data_type: int16 406 | input_type: holding 407 | device_class: temperature 408 | - name: "Battery SoC" 409 | unique_id: foxess_inv1_battery_soc 410 | scan_interval: 30 411 | slave: 247 412 | address: 31038 413 | state_class: measurement 414 | unit_of_measurement: "%" 415 | data_type: int16 416 | input_type: holding 417 | device_class: battery 418 | # Status and Errors 419 | - name: "Inverter State Code" 420 | unique_id: foxess_inv1_state_code 421 | scan_interval: 60 422 | slave: 247 423 | address: 31041 424 | state_class: measurement 425 | data_type: uint16 426 | input_type: holding 427 | - name: "Inverter Fault 1 Code" 428 | unique_id: foxess_inv1_fault1_code 429 | scan_interval: 60 430 | slave: 247 431 | address: 31044 432 | state_class: measurement 433 | data_type: uint16 434 | input_type: holding 435 | - name: "Inverter Fault 2 Code" 436 | unique_id: foxess_inv1_fault2_code 437 | scan_interval: 60 438 | slave: 247 439 | address: 31045 440 | state_class: measurement 441 | data_type: uint16 442 | input_type: holding 443 | - name: "Inverter Fault 3 Code" 444 | unique_id: foxess_inv1_fault3_code 445 | scan_interval: 60 446 | slave: 247 447 | address: 31046 448 | state_class: measurement 449 | data_type: uint16 450 | input_type: holding 451 | # Name 452 | - name: "Inverter Model" 453 | unique_id: foxess_inv1_model 454 | scan_interval: 600 455 | slave: 247 456 | address: 30000 457 | count: 16 458 | state_class: measurement 459 | data_type: string 460 | input_type: holding 461 | #cumulative values of Energy 462 | - name: "PV Energy total" 463 | unique_id: foxess_inv1_total_pv_energy 464 | scan_interval: 60 465 | slave: 247 466 | address: 32001 467 | state_class: total_increasing 468 | unit_of_measurement: "kWh" 469 | scale: 0.1 470 | precision: 1 471 | data_type: int16 472 | input_type: holding 473 | device_class: energy 474 | - name: "PV Energy daily" 475 | unique_id: foxess_inv1_daily_pv_energy 476 | scan_interval: 60 477 | slave: 247 478 | address: 32002 479 | state_class: total_increasing 480 | unit_of_measurement: "kWh" 481 | scale: 0.1 482 | precision: 1 483 | data_type: int16 484 | input_type: holding 485 | device_class: energy 486 | 487 | - name: "Battery Charge Energy total" 488 | unique_id: foxess_inv1_total_charge_energy 489 | scan_interval: 60 490 | slave: 247 491 | address: 32004 492 | state_class: total_increasing 493 | unit_of_measurement: "kWh" 494 | scale: 0.1 495 | precision: 1 496 | data_type: int16 497 | input_type: holding 498 | device_class: energy 499 | - name: "Battery Charge Energy daily" 500 | unique_id: foxess_inv1_daily_charge_energy 501 | scan_interval: 60 502 | slave: 247 503 | address: 32005 504 | state_class: total_increasing 505 | unit_of_measurement: "kWh" 506 | scale: 0.1 507 | precision: 1 508 | data_type: int16 509 | input_type: holding 510 | device_class: energy 511 | 512 | - name: "Battery Discharge Energy total" 513 | unique_id: foxess_inv1_total_discharge_energy 514 | scan_interval: 60 515 | slave: 247 516 | address: 32007 517 | state_class: total_increasing 518 | unit_of_measurement: "kWh" 519 | scale: 0.1 520 | precision: 1 521 | data_type: int16 522 | input_type: holding 523 | device_class: energy 524 | - name: "Battery Discharge Energy daily" 525 | unique_id: foxess_inv1_daily_discharge_energy 526 | scan_interval: 60 527 | slave: 247 528 | address: 32008 529 | state_class: total_increasing 530 | unit_of_measurement: "kWh" 531 | scale: 0.1 532 | precision: 1 533 | data_type: int16 534 | input_type: holding 535 | device_class: energy 536 | # registers working with a connected smart meter only: 537 | # 32009-32020 538 | # 539 | - name: "Meter Feed-in Energy total" 540 | unique_id: foxess_sm1_total_feedin_energy 541 | scan_interval: 60 542 | slave: 247 543 | address: 32010 544 | state_class: total_increasing 545 | unit_of_measurement: "kWh" 546 | scale: 0.1 547 | precision: 1 548 | data_type: int16 549 | input_type: holding 550 | device_class: energy 551 | - name: "Meter Feed-in Energy daily" 552 | unique_id: foxess_sm1_daily_feedin_energy 553 | scan_interval: 60 554 | slave: 247 555 | address: 32011 556 | state_class: total_increasing 557 | unit_of_measurement: "kWh" 558 | scale: 0.1 559 | precision: 1 560 | data_type: int16 561 | input_type: holding 562 | device_class: energy 563 | - name: "Meter Consumption Energy total" 564 | unique_id: foxess_sm1_total_consumption_energy 565 | scan_interval: 60 566 | slave: 247 567 | address: 32013 568 | state_class: total_increasing 569 | unit_of_measurement: "kWh" 570 | scale: 0.1 571 | precision: 1 572 | data_type: int16 573 | input_type: holding 574 | device_class: energy 575 | - name: "Meter Consumption Energy daily" 576 | unique_id: foxess_sm1_daily_consumption_energy 577 | scan_interval: 60 578 | slave: 247 579 | address: 32014 580 | state_class: total_increasing 581 | unit_of_measurement: "kWh" 582 | scale: 0.1 583 | precision: 1 584 | data_type: int16 585 | input_type: holding 586 | device_class: energy 587 | - name: "Meter Output Energy total" 588 | unique_id: foxess_sm1_total_output_energy 589 | scan_interval: 60 590 | slave: 247 591 | address: 32016 592 | state_class: total_increasing 593 | unit_of_measurement: "kWh" 594 | scale: 0.1 595 | precision: 1 596 | data_type: int16 597 | input_type: holding 598 | device_class: energy 599 | - name: "Meter Output Energy daily" 600 | unique_id: foxess_sm1_daily_output_energy 601 | scan_interval: 60 602 | slave: 247 603 | address: 32017 604 | state_class: total_increasing 605 | unit_of_measurement: "kWh" 606 | scale: 0.1 607 | precision: 1 608 | data_type: int16 609 | input_type: holding 610 | device_class: energy 611 | - name: "Meter Input Energy total" 612 | unique_id: foxess_sm1_total_input_energy 613 | scan_interval: 60 614 | slave: 247 615 | address: 32019 616 | state_class: total_increasing 617 | unit_of_measurement: "kWh" 618 | scale: 0.1 619 | precision: 1 620 | data_type: int16 621 | input_type: holding 622 | device_class: energy 623 | - name: "Meter Input Energy daily" 624 | unique_id: foxess_sm1_daily_input_energy 625 | scan_interval: 60 626 | slave: 247 627 | address: 32020 628 | state_class: total_increasing 629 | unit_of_measurement: "kWh" 630 | scale: 0.1 631 | precision: 1 632 | data_type: int16 633 | input_type: holding 634 | device_class: energy 635 | #Grid+EPS values? officially: "Load" energy 636 | - name: "Inv Load Energy total" #formerly named: "EPS Energy total" 637 | unique_id: foxess_inv1_total_load_energy 638 | scan_interval: 60 639 | slave: 247 640 | address: 32022 641 | state_class: total_increasing 642 | unit_of_measurement: "kWh" 643 | scale: 0.1 644 | precision: 1 645 | data_type: int16 646 | input_type: holding 647 | device_class: energy 648 | - name: "Inv Load Energy daily" #formerly named: "EPS Energy daily" 649 | unique_id: foxess_inv1_daily_load_energy 650 | scan_interval: 60 651 | slave: 247 652 | address: 32023 653 | state_class: total_increasing 654 | unit_of_measurement: "kWh" 655 | scale: 0.1 656 | precision: 1 657 | data_type: int16 658 | input_type: holding 659 | device_class: energy 660 | -------------------------------------------------------------------------------- /custom_components/HA-FoxESS-Modbus/modbusLAN.yaml: -------------------------------------------------------------------------------- 1 | # v0.9 2 | # Created by https://github.com/StealthChesnut/HA-FoxESS-Modbus 3 | # Modbus Config for Fox ESS Hybrid H1 Inverter 4 | 5 | # ---------------------------Direct LAN Connection---------------------------------------- 6 | # For use when connecting direct to LAN port of inverter 7 | # 8 | #- name: HA-FoxESS-Modbus-LAN 9 | type: tcp 10 | host: !secret FoxESSInverterIP # set to USR devices ip address 11 | port: 502 12 | # 13 | # --------------------------------------------------------------------------- 14 | # Uncomment the sensors you wish to use 15 | 16 | sensors: 17 | - name: "PV1-Voltage" 18 | scan_interval: 30 19 | slave: 247 20 | address: 31000 21 | state_class: measurement 22 | unit_of_measurement: "V" 23 | data_type: int16 24 | scale: 0.1 25 | precision: 1 26 | input_type: holding 27 | device_class: voltage 28 | - name: "PV1-Current" 29 | scan_interval: 30 30 | slave: 247 31 | address: 31001 32 | state_class: measurement 33 | unit_of_measurement: "A" 34 | data_type: int16 35 | scale: 0.1 36 | precision: 1 37 | input_type: holding 38 | device_class: current 39 | - name: "PV1-Power" 40 | scan_interval: 5 41 | slave: 247 42 | address: 31002 43 | state_class: measurement 44 | unit_of_measurement: "kW" 45 | data_type: int16 46 | scale: 0.001 47 | precision: 3 48 | input_type: holding 49 | device_class: power 50 | - name: "PV2-Voltage" 51 | scan_interval: 30 52 | slave: 247 53 | address: 31003 54 | state_class: measurement 55 | unit_of_measurement: "V" 56 | data_type: int16 57 | scale: 0.1 58 | precision: 1 59 | input_type: holding 60 | device_class: voltage 61 | - name: "PV2-Current" 62 | scan_interval: 30 63 | slave: 247 64 | address: 31004 65 | state_class: measurement 66 | unit_of_measurement: "A" 67 | data_type: int16 68 | scale: 0.1 69 | precision: 1 70 | input_type: holding 71 | device_class: current 72 | - name: "PV2-Power" 73 | scan_interval: 5 74 | slave: 247 75 | address: 31005 76 | state_class: measurement 77 | unit_of_measurement: "kW" 78 | data_type: int16 79 | scale: 0.001 80 | precision: 3 81 | input_type: holding 82 | device_class: power 83 | 84 | - name: "RVolt" # Grid Voltage 85 | scan_interval: 30 86 | slave: 247 87 | address: 31006 88 | state_class: measurement 89 | unit_of_measurement: "V" 90 | data_type: int16 91 | precision: 2 92 | scale: 0.1 93 | input_type: holding 94 | device_class: voltage 95 | - name: "RCurrent" # Generated AC Current ? 96 | scan_interval: 30 97 | slave: 247 98 | address: 31007 99 | state_class: measurement 100 | unit_of_measurement: "A" 101 | data_type: int16 102 | scale: 0.1 103 | precision: 1 104 | input_type: holding 105 | device_class: current 106 | - name: "31008" # Generated AC Watts ? 107 | scan_interval: 5 108 | slave: 247 109 | address: 31008 110 | state_class: measurement 111 | unit_of_measurement: "kW" 112 | data_type: int16 113 | scale: 0.001 114 | precision: 3 115 | input_type: holding 116 | device_class: power 117 | - name: "RFreq" # Grid Frequency 118 | scan_interval: 30 119 | slave: 247 120 | address: 31009 121 | state_class: measurement 122 | unit_of_measurement: "Hz" 123 | data_type: int16 124 | scale: 0.01 125 | precision: 3 126 | input_type: holding 127 | device_class: frequency 128 | 129 | - name: "Grid CT" 130 | scan_interval: 5 131 | address: 31014 132 | state_class: measurement 133 | unit_of_measurement: "kW" 134 | data_type: int16 135 | scale: 0.001 136 | precision: 3 137 | input_type: holding 138 | device_class: power 139 | - name: "Load Power" 140 | scan_interval: 5 141 | address: 31016 142 | state_class: measurement 143 | unit_of_measurement: "kW" 144 | data_type: int16 145 | scale: 0.001 146 | precision: 3 147 | input_type: holding 148 | device_class: power 149 | 150 | - name: "AmbTemp" 151 | scan_interval: 30 152 | slave: 247 153 | address: 31018 154 | state_class: measurement 155 | unit_of_measurement: "°C" 156 | data_type: int16 157 | scale: 0.1 158 | precision: 1 159 | device_class: temperature 160 | input_type: holding 161 | - name: "InvTemp" 162 | scan_interval: 30 163 | slave: 247 164 | address: 31019 165 | state_class: measurement 166 | unit_of_measurement: "°C" 167 | data_type: int16 168 | scale: 0.1 169 | precision: 1 170 | device_class: temperature 171 | input_type: holding 172 | 173 | 174 | 175 | - name: "BatVolt" 176 | scan_interval: 30 177 | address: 31020 178 | state_class: measurement 179 | unit_of_measurement: "V" 180 | data_type: int16 181 | scale: 0.1 182 | precision: 1 183 | device_class: voltage 184 | input_type: holding 185 | - name: "BatCurrent" 186 | scan_interval: 30 187 | address: 31021 188 | state_class: measurement 189 | unit_of_measurement: "A" 190 | data_type: int16 191 | scale: 0.1 192 | precision: 1 193 | input_type: holding 194 | device_class: current 195 | - name: "Battery-Discharge-Power" 196 | scan_interval: 5 197 | slave: 247 198 | address: 31022 199 | state_class: measurement 200 | unit_of_measurement: "kW" 201 | data_type: int16 202 | scale: 0.001 203 | precision: 3 204 | input_type: holding 205 | device_class: power 206 | - name: "Battery-Temp" 207 | scan_interval: 60 208 | slave: 247 209 | address: 31023 210 | state_class: measurement 211 | unit_of_measurement: "°C" 212 | scale: 0.1 213 | precision: 1 214 | data_type: int16 215 | input_type: holding 216 | device_class: temperature 217 | - name: "Battery-SoC" 218 | scan_interval: 30 219 | slave: 247 220 | address: 31024 221 | state_class: measurement 222 | unit_of_measurement: "%" 223 | data_type: int16 224 | input_type: holding 225 | device_class: battery 226 | 227 | 228 | # Below here to be confirmed 229 | 230 | 231 | -------------------------------------------------------------------------------- /custom_components/HA-FoxESS-Modbus/modbusUSB.yaml: -------------------------------------------------------------------------------- 1 | # Created by https://github.com/StealthChesnut/HA-FoxESS-Modbus 2 | # Modbus Config for Fox ESS Hybrid H1 Inverter 3 | # Adjust port setting to match USB port in use 4 | # "slave" setting can be changed on Inverter Menu - Settings, Communication, RS485 but is default to 247 from factory 5 | 6 | # ---------------------------USB/Serial-------------------------------------- 7 | - name: FoxESSInverterModbus 8 | type: serial 9 | baudrate: 9600 10 | bytesize: 8 11 | method: rtu 12 | parity: N 13 | port: /dev/ttyUSB0 14 | stopbits: 1 15 | # --------------------------------------------------------------------------- 16 | 17 | # ---------------------------WIFI/LAN---------------------------------------- 18 | # If using USR Wifi converter, remove lines 6 through 13 and uncomment the following 19 | # 20 | #- name: FoxESSInverterModbus 21 | # type: tcp 22 | # host: 192.168.XXX.XXX # set to USR devices ip address 23 | # port: 502 24 | # --------------------------------------------------------------------------- 25 | 26 | sensors: 27 | - name: "PV1-Voltage" 28 | scan_interval: 30 29 | slave: 247 30 | address: 11000 31 | state_class: measurement 32 | unit_of_measurement: "V" 33 | data_type: int16 34 | scale: 0.1 35 | precision: 1 36 | input_type: input 37 | device_class: voltage 38 | - name: "PV1-Current" 39 | scan_interval: 30 40 | slave: 247 41 | address: 11001 42 | state_class: measurement 43 | unit_of_measurement: "A" 44 | data_type: int16 45 | scale: 0.1 46 | precision: 1 47 | input_type: input 48 | device_class: current 49 | - name: "PV1-Power" 50 | scan_interval: 5 51 | slave: 247 52 | address: 11002 53 | state_class: measurement 54 | unit_of_measurement: "kW" 55 | data_type: int16 56 | scale: 0.001 57 | precision: 3 58 | input_type: input 59 | device_class: power 60 | - name: "PV2-Voltage" 61 | scan_interval: 30 62 | slave: 247 63 | address: 11003 64 | state_class: measurement 65 | unit_of_measurement: "V" 66 | data_type: int16 67 | scale: 0.1 68 | precision: 1 69 | input_type: input 70 | device_class: voltage 71 | - name: "PV2-Current" 72 | scan_interval: 30 73 | slave: 247 74 | address: 11004 75 | state_class: measurement 76 | unit_of_measurement: "A" 77 | data_type: int16 78 | scale: 0.1 79 | precision: 1 80 | input_type: input 81 | device_class: current 82 | - name: "PV2-Power" 83 | scan_interval: 5 84 | slave: 247 85 | address: 11005 86 | state_class: measurement 87 | unit_of_measurement: "kW" 88 | data_type: int16 89 | scale: 0.001 90 | precision: 3 91 | input_type: input 92 | device_class: power 93 | - name: "Battery-SoC" 94 | scan_interval: 30 95 | slave: 247 96 | address: 11036 97 | state_class: measurement 98 | unit_of_measurement: "%" 99 | data_type: int16 100 | input_type: input 101 | device_class: battery 102 | - name: "Battery-Temp" 103 | scan_interval: 60 104 | slave: 247 105 | address: 11038 106 | state_class: measurement 107 | unit_of_measurement: "°C" 108 | scale: 0.1 109 | precision: 1 110 | data_type: int16 111 | input_type: input 112 | device_class: temperature 113 | - name: "Battery-Discharge-Power" 114 | scan_interval: 5 115 | slave: 247 116 | address: 11008 117 | state_class: measurement 118 | unit_of_measurement: "kW" 119 | data_type: int16 120 | scale: 0.001 121 | precision: 3 122 | input_type: input 123 | device_class: power 124 | - name: "Load Power" 125 | scan_interval: 5 126 | slave: 247 127 | address: 11023 128 | state_class: measurement 129 | unit_of_measurement: "kW" 130 | data_type: int16 131 | scale: 0.001 132 | precision: 3 133 | input_type: input 134 | device_class: power 135 | - name: "InvBatVolt" 136 | scan_interval: 30 137 | slave: 247 138 | address: 11006 139 | state_class: measurement 140 | unit_of_measurement: "V" 141 | data_type: int16 142 | scale: 0.1 143 | precision: 1 144 | input_type: input 145 | - name: "InvBatPower" 146 | scan_interval: 5 147 | slave: 247 148 | address: 11007 149 | state_class: measurement 150 | unit_of_measurement: "kW" 151 | data_type: int16 152 | scale: 0.01 153 | precision: 2 154 | input_type: input 155 | - name: "RVolt" 156 | scan_interval: 30 157 | slave: 247 158 | address: 11009 159 | state_class: measurement 160 | unit_of_measurement: "V" 161 | data_type: int16 162 | scale: 0.1 163 | precision: 1 164 | input_type: input 165 | device_class: voltage 166 | - name: "RCurrent" 167 | scan_interval: 30 168 | slave: 247 169 | address: 11010 170 | state_class: measurement 171 | unit_of_measurement: "A" 172 | data_type: int16 173 | scale: 0.1 174 | precision: 1 175 | input_type: input 176 | device_class: current 177 | - name: "RFreq" 178 | scan_interval: 30 179 | slave: 247 180 | address: 11014 181 | state_class: measurement 182 | unit_of_measurement: "Hz" 183 | data_type: int16 184 | scale: 0.01 185 | precision: 3 186 | input_type: input 187 | device_class: frequency 188 | - name: "EPS RVolt" 189 | scan_interval: 30 190 | slave: 247 191 | address: 11015 192 | state_class: measurement 193 | unit_of_measurement: "V" 194 | data_type: int16 195 | scale: 0.1 196 | precision: 1 197 | input_type: input 198 | - name: "Grid CT" 199 | scan_interval: 5 200 | slave: 247 201 | address: 11021 202 | state_class: measurement 203 | unit_of_measurement: "kW" 204 | data_type: int16 205 | scale: 0.001 206 | precision: 3 207 | input_type: input 208 | - name: "CT2 Meter" 209 | scan_interval: 1 210 | slave: 247 211 | address: 11022 212 | state_class: measurement 213 | unit_of_measurement: "kW" 214 | data_type: int16 215 | scale: 0.001 216 | precision: 3 217 | input_type: input 218 | - name: "InvTemp" 219 | scan_interval: 30 220 | slave: 247 221 | address: 11024 222 | state_class: measurement 223 | unit_of_measurement: "°C" 224 | data_type: int16 225 | scale: 0.1 226 | precision: 1 227 | device_class: temperature 228 | input_type: input 229 | - name: "AmbTemp" 230 | scan_interval: 30 231 | slave: 247 232 | address: 11025 233 | state_class: measurement 234 | unit_of_measurement: "°C" 235 | data_type: int16 236 | scale: 0.1 237 | precision: 1 238 | device_class: temperature 239 | input_type: input 240 | - name: "BatVolt" 241 | scan_interval: 30 242 | slave: 247 243 | address: 11034 244 | state_class: measurement 245 | unit_of_measurement: "V" 246 | data_type: int16 247 | scale: 0.1 248 | precision: 1 249 | device_class: voltage 250 | input_type: input 251 | - name: "Temp" 252 | scan_interval: 30 253 | slave: 247 254 | address: 11035 255 | state_class: measurement 256 | unit_of_measurement: "°C" 257 | data_type: int16 258 | scale: 0.1 259 | precision: 1 260 | device_class: temperature 261 | input_type: input 262 | 263 | # !include sensors.yaml 264 | -------------------------------------------------------------------------------- /hacs.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "name": "FoxESS Community Modbus Integration", 4 | "country": "GB", 5 | "render_readme": true 6 | } 7 | --------------------------------------------------------------------------------