mich interessiert es, einen Growatt Hybridwechselrichter mit HomeAssistant zu verbinden. Ich möchte damit sämtliche Daten, die der Wechselrichter liefert, in HA verarbeiten.
Ich habe bemerkt, dass es unzählige Diskussionen darüber gibt, aber leider zielen alle darauf ab, einen Shine-X WLAN Stick neu zu flashen oder eine Bastellösung über einen ESP32 zu verwenden.
Mir ist es jedoch sehr wichtig, WLAN zu vermeiden, daher verwende ich den Shine-X LAN Stick.
Ich habe hier im Forum gelesen, dass jemand dies über einen Proxy-Server gelöst hat, der die Daten an HomeAssistant weiterleitet. Leider kann ich dieses Posting dazu nicht mehr finden.
Gibt es jemanden, der mir mit dieser Lösung weiterhelfen kann?
Wenn du wlan vermeiden willst, könntest du ein esp32 lan modul verwenden.
So bleibt der shinestick unberührt, kann zur not original verwendet werden. Ich hab das über esp32 direkt an der rs485 schnittstelle, nicht über den usb port.
Nehme ne alte 5 V versorgung für Smartphone oder anderes elektronisches gerät, das schon längst verschrottet wurde. Ich hebe mir immer die spannungsversorgungen auf. Damit den esp32 versorgen.
Den esp code kann ich dir geben, im internet findet sich (fast) nur code für den usb port. Ich hab sau lange gesucht bis ich das hatte, dass es direkt an der rs485 schnittstelle funktioniert.
da der WR in der Garage installiert wird, werde ich dort auch LAN installieren. Mit WLAN komme ich da nicht rein und möchte das auch grundsätzlich vermeiden. Das heißt, ein AP wird dann in der Garage nur eingeschaltet, in der Zeit in der ich diese als Werkstatt verwende.
Ich könnte natürlich einen AccessPoint oder das von dir erwähnte ESP32 LAN Modul verwenden und durchgehend eingeschaltet lassen, aber ich bevorzuge eine direkte Verkabelung. So wenig Funk wie möglich.
Den Shine-X LAN Stick muss ich mir sowieso noch besorgen. Ich denke, den Shine-X WIFI Stick werde ich nicht benötigen.
Damit ich dich richtig verstehe: Du verwendest ein ESP32 Modul, das als Brücke von WLAN auf RS485 dient? WLAN -> ESP32 -> RS485 Modul -> WR, ist das dein Aufbau? Klingt sehr interessant.
Ich kann mir sehr gut vorstellen, dass du für den Aufbau sehr viel Zeit investiert hast.
Das ist ungefähr die verdrahtung. Es gibt statt dem esp8266 ein esp32. Da sind die pins natürlich andere. Ich habe ne alte 5V spannungsversorgung genommen, nicht wie im Bild die Spannung von einem usb Port.
Die Methode den Modbus für HomeAssistant abzugreifen finde ich schon interessant, das gefällt mir.
ESP8266, ESP32, ein Ethernetmodul für Arduino, RS485 Module und RS485 USB Adapter liegen alle parat und noch vieles mehr.
Dann kann ich das theoretisch aufbauen.
Ich verstehe, der ESP benötigt die passende Firmware damit er mit HA kompatibel ist, damit die Kommunikation funktioniert.
Wie würde das mit einem fertigen RS485 zu Ethernet Adapter aussehen? Den habe ich nicht, aber für das Verständnis würde ich das gerne wissen.
Alter , ich bin neugierig ob du bereits deine USB-Ports anderwertig belegt hast, weil du den Modbus abgreifst und ein externes 5V Netzgerät verwendest und nicht die Spannung über den USB-Port nützt?
Fehlendes Material kann ich natürlich jederzeit besorgen.
Der usb port vom growatt ist frei. Ich habe auch nen original shine wifi stick . Den habe ich nicht im einsatz.
Jeder von uns hat doch massig alte 5V Spannungsversorgungen von irgend alten Telefonen oder anderen Geräten. Stecker abschneiden, die polarität messen, an die leitungen die stecker löten, die an die pins vom esp modul passen. Die leerlaufspannung der spannungsversorgungen sind natürlich einiges höher als 5 V.
Das ist ok so.
Ich habe das über ein esp32 der wlan hat. Das esp32 modul mit lan anschluss sollte genauso funktionieren, die daten werden dann statt über wlan über lan gesendet.
Ich hab ein esp32 mit lan mdul bei mir rum liegen, habe das mal bei aliexpress zum rum spielen mit bestellt. Bis jetzt aber noch nicht benötigt.
Ich hab den growatt wechselrichter in home assistant. Läuft stabil und sehr gut. Der growatt schaltet im gegensatz zum victron inselwechselrichter aber ab, wenn keine Panelleistung vorhanden ist.
Servus Hase, bei mir liegen ebenfalls massig Netzteile herum. Ich bevorzuge aber Steckverbindungen, anstatt die Netzteile direkt anzulöten.
Ich baue mir meist gerne fliegende Prototypen und anschließend wenn die gut funktionieren wird eine Platine in Auftrag gegeben.
Bei aufwendigen Schaltungen wird gleich eine Platine erstellt.
Dann ist die RS485Schnittstelle wohl das beste um mit HA zu kommunizieren, vielen Dank für die Erleuchtung.
Abhängig wo ich dann den Einplatinencomputer aufstelle, wird entweder ein RS485 - USB Wandler oder ein RS485 - LAN Interface in Betracht gezogen.
Bei RS485 zu USB wird ja eine serielle Schnittstelle am Computer eingerichtet.
Wie das aber dann über Netzwerk (LAN/WLAN) eingerichtet wird, ist mir noch ein Rätsel, da muss wohl HA bestimmt ein Plugin hierfür haben?
Mit RS485 über Netzwerk habe ich noch keine Erfahrung, da kann ich dann aber bei euch hier im Forum nachhaken wenn es soweit ist - oder ich nicht weiter komme.
Ich nutze ein normales esp32 modul. Das hat wlan dabei und man gibt einfach im code den router ein. Ich vergebe meist eine feste ip adresse. Wenn ein eps32 modul mit verbauter lan schnittstelle genutzt wird, gibt man das im code an und das ding kommuniziert dann über lan statt wlan.
In home assistant gibt es esphome plugin. Damit kann man komfortabel alles esp platinen programmieren/verwalten.
Da kommt man nicht dran vorbei wenn man mit home assistant ein smart home system aufbaut. Das ist unglaublich günstig, läuft sehr stabil und ist vergleichsweise einfach einzurichten.
ich bin auch auf der Suche nach einer dauerhaften Lösung, um meinen Growatt WR im Homeassistant auszulesen.
Ich habe einen SPH 10000 TL3-BH.
Lösungen für den USB-Anschluss habe ich auch einige gefunden aber die andere Variante hört sich besser an. @alter-hase Könntest Du mir den Code für den ESP zusenden?
Danke!
esphome:
name: growatt
friendly_name: growatt
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "6lmLX0xxxxxxxxxxxxxxxxxxxxxxxxxxx"
ota:
- platform: esphome
password: "efxxxxxxxxxxxxxxxxxxxxxxxxxxx"
wifi:
ssid: !secret wifi_tplink_ssid
password: !secret wifi_tplink_password
manual_ip:
static_ip: 192.168.111.111
gateway: 192.168.111.1
subnet: 255.255.255.0
dns1: 192.168.111.1
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Growat32 Fallback Hotspot"
password: "TWxxxxxxxx"
web_server: # creates a web server where you can access all this stuff without home assistant (good for debugging or working headless (no HA))
port: 80
include_internal: true
ota: true
captive_portal:
time:
- platform: homeassistant
id: homeassistant_time
# uart für Growatt MIC
uart:
- id: modbus_uart_mic
#baud_rate: 115200
baud_rate: 9600
tx_pin: GPIO18
rx_pin: GPIO19
modbus:
- id: modbus_mic1
flow_control_pin: GPIO21
uart_id: modbus_uart_mic
modbus_controller:
- id: modbus_growatt_mic
## the Modbus device adds
address: 0x1
modbus_id: modbus_mic1
setup_priority: -10
update_interval: 5000ms
text_sensor:
- platform: wifi_info
ip_address:
name: IP Address
ssid:
name: Connected SSID
bssid:
name: Connected BSSID
mac_address:
name: Mac Wifi Address
- platform: template
name: Uptime Human Readable
id: uptime_human
icon: mdi:clock-start
update_interval: 10s
- platform: version
name: "ESPHome Version"
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC Firmware Version"
address: 9
register_count: 3
register_type: holding
#internal: true
entity_category: diagnostic
- platform: template
name: "Growatt MIC Status"
icon: mdi:eye
entity_category: diagnostic
lambda: |-
if (id(status).state == 1) {
return {"Normal"};
} else if (id(status).state == 0) {
return {"Waiting"};
} else {
return {"Fault!"};
}
# ------------------------------------------------------------------------------------#
sensor:
# ------------------------------------------------------------------------------------
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC status"
address: 0
register_type: "read"
internal: true
id: status
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC DcPower"
address: 3005 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC DcVoltage"
address: 3003 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC DcInputCurrent"
address: 3004 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC AcPower"
address: 3023 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC AcFrequency"
address: 3025 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC AcVoltage"
address: 3026 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC AcOutputCurrent"
address: 3027 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC AcPowerVA"
address: 3028 #40
register_type: "read"
unit_of_measurement: VA
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC EnergyToday"
address: 3049 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC EnergyTotal"
address: 3051 #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
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC 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
select:
- platform: modbus_controller
id: powermode
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC Power Mode"
address: 121
value_type: U_WORD
optionsmap:
"600": 6
"750": 7
"1000": 10
"1500": 15
"2000": 20
entity_category: config
switch:
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC OnOff"
address: 0
register_type: holding
bitmask: 1
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC Tracking Mode"
address: 124
register_type: holding
bitmask: 1
number:
- platform: modbus_controller
modbus_controller_id: modbus_growatt_mic
name: "Growatt MIC Max Output Power"
address: 3
value_type: U_WORD
min_value: 0
max_value: 100
entity_category: config
zu beachten ist: einen esp32 wroom mit ch340 Treiber kaufen, denn ESP Home unterstützt nur den ch340 Treiber in Windows.
Weiter wird noch eine RS485 Modul TTL zu RS-485 Platine benötigt.
Vielen Dank.
Die Hardware habe ich schon hier liegen.
Aber der Hinweis mit dem CH340 ist gut, sonst hätte ich mich evtl. gewundert, dass es nicht funktioniert.
Ich hab 10 esp8266, da ist kein ch340 chip drauf. Über umwege bekomm ich die auch in home assistant. Man muss dann in home assistant ein bin file generieren, das dann extern auf den esp8266 flashen. Danach ist das ding in home assistant, lässt sich dann aber nur über wlan ansprechen. Aber das macht man letzendlich sowieso, wenn das iwo im haus verbaut ist. Muss aber nicht sein, ich achte jetzt jedenfalls drauf, dass auf den esp ein ch340 chip verbaut ist.