├── .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 | 
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 | 
86 |
87 | ## Engergy Dashboard Configuration
88 |
89 | 
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 |
--------------------------------------------------------------------------------