That is really nice work!! Thank you for sharing!
Is the rs485 connected to the com port on pin 3 and 4? And the USB is only for power the TTL converter and the D1 mini? Or is the ground connected to the com plug also?
That is really nice work!! Thank you for sharing!
Is the rs485 connected to the com port on pin 3 and 4? And the USB is only for power the TTL converter and the D1 mini? Or is the ground connected to the com plug also?
Correct, in my case, the USB is just for power.
The green/white wires are cut and donât connect into the USB-A connector.
Instead, they connect the RS485 converter to pin 3&4 of the COM port.
Red and black take 5v from the USB-A, over to the D1-mini and the RS485 converter.
This was the RS485 converter I used: Stable UART Serial Port to RS485 Converter Function Module RS485 to TTL Module k | eBay
And this is how its wired:
I had previously tried the ESPHOME âgrowatt_solarâ sensor platform with this hardware.
On my 1500TL-X, it read one or two values. But most were NaN.
However, with the code here, it populates all values perfectly.
substitutions:
device_name: growatt-mic-1500tl-x
device_description: "Growatt Solar Inverter Monitoring"
friendly_name: Growatt MIC 1500TL X
esphome:
name: '${device_name}'
comment: '${device_description}'
esp8266:
board: d1_mini
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
ota:
safe_mode: true
reboot_timeout: 10min
num_attempts: 5
web_server:
port: 80
auth:
username: !secret esphome_web_username
password: !secret esphome_web_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Optional manual IP
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: '${device_name}'
password: !secret fallback_password
captive_portal:
time:
- platform: homeassistant
id: homeassistant_time
uart:
id: mod_bus
tx_pin: 1
rx_pin: 3
baud_rate: 9600
#baud_rate: 115200
modbus:
id: modbus1
uart_id: mod_bus
modbus_controller:
- id: growatt
# the Modbus device addr
address: 0x1
modbus_id: modbus1
setup_priority: -10
sensor:
- platform: modbus_controller
name: "${device_name} DcPower"
address: 5
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} DcVoltage"
address: 3
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} DcInputCurrent"
address: 4
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} AcFrequency"
address: 37
register_type: "read"
unit_of_measurement: Hz
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "${device_name} AcVoltage"
address: 38
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} AcOutputCurrent"
address: 39
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} AcPower"
address: 40
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} EnergyToday"
address: 53
register_type: "read"
unit_of_measurement: kWh
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} EnergyTotal"
address: 55
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Temperature"
address: 3093
register_type: "read"
unit_of_measurement: C
device_class: temperature
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
Internal: false needs to be added to all exposed sensors as of the last esphome version
Thank you for keeping an eye on the topic! In this case it is only about the homeassistant platform. So no worries.
Sure? Itâs says All sensors. Not in line with the title of the issue
Yes im sure. The GitHub pr is a little misleading. I updated my device today and it is al fineđ
I found a way to upload to pvoutput.org, from home assistant.
PVOuput Uploader - #26 by rieschard
Next step is to do it in esphome. That shouldnt be too hard
Is this code also working on three-phase inverters?
Iâm preparing to test it out on a Growatt MOD 5000TL3-X with ShineWifi-X in a few weeks, when the inverter is powered up
Yes. Get the code for de X Growatt/shinewifi-x.yaml at 696aab77c35bceb7e72333253cfb7fa8c6d04c1e ¡ WilbertVerhoeff/Growatt ¡ GitHub if you need help, please let me know.
For everyone that is using my previous code. This is better and far more accurate and reliable.
Grid Power Today can be used for incoming old power if youâre grid connected (input)
AC Output Today is all AC Output from the device.
Charge Power (today) is how much AC charging from the grid.
This lets you put in accurate values into the Energy tab. Iâve tested all of these values against a calibrated meter and theyâre within like 1-2% of real. Let me know if there are any other values anyone would find useful. (for other inverters there are data points for multiple PV inputs etc. and this should work for all âoff gridâ inverters. It wonât work for grid connected.
substitutions:
device_name: growatt
friendly_name: "Growatt Inverter"
esphome:
name: ${device_name}
platform: ESP8266
board: esp01_1m
# Enable Home Assistant API
api:
ota:
password: !secret esphome_ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
captive_portal:
logger:
level: DEBUG
baud_rate: 0
web_server:
port: 80
time:
- platform: homeassistant
id: homeassistant_time
output:
# Blue Led
- id: light_bl
platform: gpio
pin: 16
# Green Led
- id: light_gr
platform: gpio
pin: 0
# Red Led
- id: light_rd
platform: gpio
pin: 2
uart:
- id: mod_bus
baud_rate: 9600
tx_pin: GPIO1
rx_pin: GPIO3
modbus:
id: modbus1
uart_id: mod_bus
flow_control_pin: GPIO4
modbus_controller:
- id: growatt
address: 0x1
modbus_id: modbus1
setup_priority: -10
text_sensor:
- platform: template
name: "${friendly_name} Status"
icon: mdi:eye
entity_category: diagnostic
update_interval: 10s
lambda: |-
if ((id(status).state) == 1) {
return {"Normal"};
} else if ((id(status).state) == 0) {
return {"Standby"};
} else if ((id(status).state) == 2) {
return {"Discharge"};
} else if ((id(status).state) == 3) {
return {"Fault"};
} else if ((id(status).state) == 4) {
return {"Flash"};
} else if ((id(status).state) == 5) {
return {"PV Charging"};
} else if ((id(status).state) == 6) {
return {"AC Charging"};
} else if ((id(status).state) == 7) {
return {"Combined Charging"};
} else if ((id(status).state) == 8) {
return {"Combined Charging & Bypass"};
} else if ((id(status).state) == 9) {
return {"PV Charging & Bypass"};
} else if ((id(status).state) == 10) {
return {"AC Charging & Bypass"};
} else if ((id(status).state) == 11) {
return {"Bypass"};
} else if (id(status).state == 12) {
return {"PV Charge and Discharge"};
} else {
return {"Unknown"};
}
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
- platform: modbus_controller
address: 0
register_type: "read"
internal: true
accuracy_decimals: 0
id: status
- platform: modbus_controller
name: "${friendly_name} Solar Energy Today"
address: 48
register_type: "read"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Discharge Energy Today"
address: 60
register_type: "read"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AC Charge Energy Today"
address: 56
register_type: "read"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: total_daily_energy
name: "${friendly_name} Grid Energy Today"
power_id: grid_power
unit_of_measurement: kWh
icon: mdi:counter
accuracy_decimals: 1
min_save_interval: 1h
restore: true
filters:
- multiply: 0.001
- platform: total_daily_energy
name: "${friendly_name} AC Ouput Energy Today"
power_id: ac_output_power
unit_of_measurement: kWh
icon: mdi:counter
accuracy_decimals: 2
min_save_interval: 1h
restore: true
filters:
- multiply: 0.001
- platform: modbus_controller
id: "solar_voltage"
name: "${friendly_name} Solar Voltage"
address: 1
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
id: "solar_current"
name: "${friendly_name} Solar Current"
address: 7
register_type: "read"
unit_of_measurement: A
device_class: current
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.02
- platform: modbus_controller
name: "${friendly_name} Solar Power"
address: 3
register_type: "read"
unit_of_measurement: W
device_class: energy
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AC Output Hz"
address: 23
register_type: "read"
unit_of_measurement: Hz
entity_category: diagnostic
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "${friendly_name} AC Output Voltage"
address: 22
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
entity_category: diagnostic
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AC Output Current"
address: 34
register_type: "read"
unit_of_measurement: A
device_class: current
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AC Output Power"
id: ac_output_power
address: 9
register_type: "read"
unit_of_measurement: W
device_class: energy
state_class: measurement
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 2
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Grid Hz"
address: 21
register_type: "read"
unit_of_measurement: Hz
entity_category: diagnostic
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "${friendly_name} Grid Voltage"
address: 20
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
entity_category: diagnostic
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Grid Current"
address: 68
register_type: "read"
unit_of_measurement: A
device_class: current
entity_category: diagnostic
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
id: grid_power
name: "${friendly_name} Grid Power"
address: 36
register_type: "read"
unit_of_measurement: W
device_class: current
state_class: measurement
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 2
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Power"
address: 77
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
entity_category: diagnostic
icon: mdi:flash
value_type: S_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "${friendly_name} Load %"
address: 27
register_type: "read"
unit_of_measurement: percent
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery SoC %"
address: 18
register_type: "read"
unit_of_measurement: percent
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
- platform: modbus_controller
name: "${friendly_name} Inverter Temperature"
address: 25
register_type: "read"
unit_of_measurement: °C
device_class: temperature
entity_category: diagnostic
state_class: measurement
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} PV Temperature"
address: 32
register_type: "read"
unit_of_measurement: °C
device_class: temperature
state_class: measurement
entity_category: diagnostic
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Bus Voltage"
address: 19
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
entity_category: diagnostic
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
Iâve modified @pasarnâs code for the ShineWiFi-X to include PV1 and PV2 power.
As it turns out DcPower presents only presents the power of string 1 (PV1). If you have a dual string inverter like me (Growatt MIN 5000TL XE), you can include the following code in the sensor part to get the DcPower of string 2 (PV2) as well.
- platform: modbus_controller
name: "${devicename} DcPowerPV2"
address: 10
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
I would also suggest to rename DcPower (from @pasarnâs code) to DcPowerPV1 if you have a dual string inverter.
Hi, I have a Growatt 750TL-X and a spare D1 mini and Iâm trying to make the cable from @chopwood so that I can read values off my inverter with ESPHome.
Iâve just noticed my TTL to RS485 converter has different labels on it though? Yours has VCC, TXD, RXD & GND on the left, mine has DI, DE, RE, R0 on the left. Did I buy the wrong thing?
Okay after a bit of research I think I connect DE & RE together and also to the GPIO defined as the modbus flow_control_pin. DI goes to RX, RO goes to TX. Cross fingers.
Here is my configuration for a 3 phase Growatt inverter MOD 8000TL3-X-AU with 3 string input (even though it only appears as 2 DC inputs)
Pretty straight forward to flash on a Shine-wifi-x, just pop off the cover and connect your programmer to the header inside. Flash with ESPhome and load the code via OTA after that. I bought a second wifi-x module off ebay so I didnât mess up the registered one for service/repairs.
here is the doc I used to figure out the modbus registers.
http://www.photovoltaicsolar.in/Growatt_Manual/MAX%20Series%20Modbus%20RTU%20Protocol.pdf
Just a note, where there is a high and low in the modbus map - ie the power values, you want to select the address for high (the lower address), and make sure you read as double word value_type: U_DWORD
all the others will just be a single word value_type: U_WORD
I checked what values I wanted from the shinephone app, select the datalogger, all parameters, then other data. these values match up to the modbus map perfectly. from here I could see the 3 strings, strangely it was stings 1, 3 and 4
esphome:
name: growatt-esphome
substitutions:
devicename: Growatt
esp8266:
board: esp07s
# Disable logging on Serial port
logger:
baud_rate: 0
# Enable Home Assistant API
api:
encryption:
key: "xxxx"
ota:
password: "xxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Growatt-Esphome Fallback Hotspot"
password: "xxxx"
captive_portal:
time:
- platform: homeassistant
id: homeassistant_time
output:
# Blue Led
- id: light_bl
platform: gpio
pin: 16
# Green Led
- id: light_gr
platform: gpio
pin: 0
# Red Led
- id: light_rd
platform: gpio
pin: 2
uart:
id: mod_bus
tx_pin: 1
rx_pin: 3
baud_rate: 115200
modbus:
id: modbus1
uart_id: mod_bus
modbus_controller:
- id: growatt
# the Modbus device addr
address: 0x1
modbus_id: modbus1
setup_priority: -10
sensor:
- platform: uptime
name: "${devicename} Uptime Sensor"
id: uptime_sensor
update_interval: 60s
- platform: modbus_controller
name: "${devicename} PV1 DcPower"
address: 5
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV1 DcVoltage"
address: 3
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV1 DcInputCurrent"
address: 4
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV2 DcPower"
address: 9
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV2 DcVoltage"
address: 7
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV2 DcInputCurrent"
address: 8
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcFrequency"
address: 37
register_type: "read"
unit_of_measurement: Hz
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "${devicename} AcVoltage VAC1"
address: 38
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcOutputCurrent IAC1"
address: 39
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcPower PAC1"
address: 40
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcVoltage VAC2"
address: 42
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcOutputCurrent IAC2"
address: 43
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcPower PAC2"
address: 44
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcVoltage VAC3"
address: 46
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcOutputCurrent IAC3"
address: 47
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} AcPower PAC3"
address: 48
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} Total Power"
address: 35
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} Total Energy Today"
address: 53
register_type: "read"
unit_of_measurement: kWh
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} Total Energy Lifetime"
address: 55
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV1 Energy Today"
address: 59
register_type: "read"
unit_of_measurement: kWh
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV1 Energy Lifetime"
address: 61
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV2 Energy Today"
address: 63
register_type: "read"
unit_of_measurement: kWh
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} PV2 Energy Lifetime"
address: 65
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} Temperature"
address: 93
register_type: "read"
unit_of_measurement: C
device_class: temperature
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} V String 1"
address: 142
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} I String 1"
address: 143
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} V String 3"
address: 146
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} I String 3"
address: 147
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} V String 4"
address: 148
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${devicename} I String 4"
address: 149
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
i try to flash my shinewifi-x via esphome. but it is not working. the first question is do you flash it whitin home assistants esphome orw with a different flasher (esptools or somthing). and then you need set de gpio0 to GND on the x self or do you need fom gpio0 to de gnd on the usb to ttl module?
AFAIK (just managed to flash my wifi-s) I connected ground and gpio0 and connected the pins to my usb-serial converter. Had to fiddle with rx tx, but then lo and behold, it worked.
And oh, I used the USB port on my home assistant/esphome host. Flashed it through de web server.
Hope that helps?
I use a USB to serial flashing device. They are pretty cheap, and I just used jumper cables to connect to the wifi-x terminals. They are pretty clearly marked. And the gpio0 was connected between the wifi-x and the USB programmer
I did have issues jumping it to the download mode⌠canât remember exactly, but I think only 2 of the 3 leds are on⌠Or maybe all 3 were on in the end⌠i was in a rush to get it done before school pickup. But I just kept hitting download and power cycling till it worked.
As the new version of ESPhome is out⌠and its nighttime⌠i decided its a great time to open up the unit and flash it via USB. this is whats inside
to flash you need to jumper GPIO0 and GND together and then plug in the USB. only 2 LED should be lit. no need for an external programmer
And dont be an idiot like me and spend 10min trying to get USB logs out of the thing to make sure its working⌠they are disabled! it worked instantly with wireless logs
Now that I know whatâs inside and have a better idea of whatâs inside I think any ESP device with USB should work, like a $7.50 d1-mini. Seems a waste to spend $75 to get the pretty unit unless you need the water resistance the cover offers.
perhaps one day someone will work out the RTC and make some pretty status lights. i think it would be wise to set the time in the inverter for error logging.
i have try it but it fails it say Failed to initialize. Try resetting your device or holding the BOOT button while selecting your serial port until it starts preparing the installation. but i have try to upload the firmware to a esp8266, and that works great it runs now for 2 days and its amazing. thanks all for your help.
Yeah I did get that message a lot, then I just kept plugging in and out till it worked.
Did you get the 2 ledâs or were all 3 lit? Or sometimes all were off
The most consistent way was to bridge gpio0 and gnd then plug in the USB.