ESP-Soyosource-Controller

Hi,

ich bin mir nicht mehr sicher, welche der Beispieldateien ich als Basis genommen habe.

Da ich nicht weis wie ich hier eine Datei anhängen kann, hier mein YAML-File:

substitutions:
name: soyosource-meter
device_description: "Monitor and control the WiFi version of the Soyosource GTN via the TTL-WIFI port and control the power output on demand via RS485"
external_components_source: github://syssi/esphome-soyosource-gtn-virtual-meter@main
tx_pin_ttl_wifi: GPIO14
rx_pin_ttl_wifi: GPIO12
tx_pin_rs485: GPIO4
rx_pin_rs485: GPIO5
esphome:
name: ${name}
comment: ${device_description}
project:
name: "syssi.esphome-soyosource-gtn-virtual-meter"
version: 1.1.0
esp8266:
board: d1_mini
external_components:
- source: ${external_components_source}
refresh: 0s
wifi:
ssid: "XYZ"
password: "XYZ"
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.178.76
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.178.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
ota:
password: "XXXXXX"
# MQTT Configuration
mqtt:
broker: 192.168.178.XX
port: 1883
username: MQTTUser
password: XXXXX
logger:
level: INFO
logs:
ota: WARN
sensor: WARN
# Please be careful: The display port has a logic level of 5V.
uart:
- id: uart0
baud_rate: 9600
tx_pin: ${tx_pin_ttl_wifi}
rx_pin: ${rx_pin_ttl_wifi}
- id: uart1
baud_rate: 4800
tx_pin: ${tx_pin_rs485}
rx_pin: ${rx_pin_rs485}
soyosource_modbus:
- id: modbus0
uart_id: uart1
soyosource_virtual_meter:
- id: virtualmeter
soyosource_modbus_id: modbus0
update_interval: 1s
# the state of this sensor (instantaneous power in watt) is used as source
power_id: powermeter
power_sensor_inactivity_timeout: 20s
power_demand_calculation: NEGATIVE_MEASUREMENTS_REQUIRED
min_power_demand: 0
max_power_demand: 500
# A positive buffer value (10) tries to avoid exporting power to the grid (demand - 10 watts)
# A negative buffer value (-10) exports power to the grid (demand + 10 watts)
buffer: 10
soyosource_display:
uart_id: uart0
update_interval: 1s
binary_sensor:
- platform: soyosource_display
fan_running:
name: "${name} fan running"
limiter_connected:
name: "${name} limiter connected"
button:
- platform: soyosource_display
restart:
name: "${name} restart"
number:
- platform: soyosource_display
start_voltage:
name: "${name} start voltage"
shutdown_voltage:
name: "${name} shutdown voltage"
# Maximum output power in limiter mode / Output power in constant power mode
output_power_limit:
name: "${name} output power limit"
start_delay:
name: "${name} start delay"
- platform: soyosource_virtual_meter
soyosource_virtual_meter_id: virtualmeter
manual_power_demand:
name: "${name} manual power demand"
- platform: soyosource_virtual_meter
soyosource_virtual_meter_id: virtualmeter
max_power_demand:
name: "${name} max power demand"
initial_value: 250
restore_value: true
select:
- platform: soyosource_display
operation_mode:
name: "${name} operation mode"
optionsmap:
1: "PV"
2: "Battery Constant Power"
17: "PV Limit"
18: "Battery Limit"
sensor:
- platform: soyosource_virtual_meter
power_demand:
name: "${name} power demand"
- platform: soyosource_display
error_bitmask:
name: "${name} error bitmask"
operation_mode_id:
name: "${name} operation mode id"
operation_status_id:
name: "${name} operation status id"
battery_voltage:
name: "${name} battery voltage"
battery_current:
name: "${name} battery current"
battery_power:
name: "${name} battery power"
ac_voltage:
name: "${name} ac voltage"
ac_frequency:
name: "${name} ac frequency"
temperature:
name: "${name} temperature"
output_power:
name: "${name} output power"
# mqtt subscribe example
- id: powermeter
internal: true
platform: mqtt_subscribe
name: "${name} instantaneous power consumption"
topic: "Soyosource/SOYO_77ee27/L1L2L3"
accuracy_decimals: 2
unit_of_measurement: W
device_class: power
filters:
- throttle_average: 5s
text_sensor:
- platform: soyosource_display
errors:
name: "${name} errors"
operation_mode:
name: "${name} operation mode"
operation_status:
name: "${name} operation status"

Da war ja auch der Fehler . Mit dem Netzteil verbrauchst du ja quasi auch den eigenen eingespeisten Strom vom Netzeil + Verluste . d. h. der Soyo fährt dann immer auch Max - Power hoch .

@christoph-d

Hi ... habe nochmal vielen Dank ... ich werde das ganze mal testen :wink:

ich habe hier nochmal nen Link mit einer Beschreibung auf deutsch wie man es per Kommandozeile machen kann ...

Hat jemand einen Tipp, wie man das abändern könnte, so dass "total_power" direkt von der Shell 3EM Statusseite ausgelesen wird? Dann könnte man sich wie bei Klaus' Lösung den MQTT Broker sparen.

Geht bestimmt, aber so gut kenne ich mich bei ESPhome nicht aus. Ich bin froh, dass ich das hier und das JK-BMS zum laufen gebracht habe.

Gruß

Christoph

@p69 Ich habe leider auch Probleme mit des Registrierung und bekomme den zur Config notwendigen USB-Dongle nicht angemeldet. Der gewählte User/Pw besteht aus Nummern und Kleinbuchstaben (keine Leer- oder Sonderzeichen), die erste Registrierung mit der Dongle SN in der Soyosource APP hat geklappt. Dennoch erhalte ich jetzt nur Fehlermeldungen. Ich weis zu 100%, dass ich keinen Vertipper habe, denn ich hab nen Screenshot beim Registrieren gemacht.
Login in Soyosource APP: "Error! Username Exists"
Registered in Soyosource APP: "Error! Registration failed, please try again or contact the administrator!"
Login auf Webseite web.soyo-dg.com: "Login failed. Please check username and password."
Registered auf Webseite web.soyo-dg.com: "Please register frequently"
Hat hier jemand Erfahrungen? In einem engl. Forum gabs eine Andeutung, dass Usernamen mit Zahlen zu einer fehlerhaften Registrierung führen. Doch es gibt keine Möglichkeit das zurückzusetzen. Außerdem gabs dort noch einen Hinweis, dass WLAN SSID mit Leerschritten (wie bei Fritzbox üblich) ebenfalls nicht funktionieren.
Nach stundenlangen Versuchen bin ich echt am verzweifeln und der Händler antwortet nicht.

@derflo21

Guck mal hier:

Das mit dem Wifi Stick war damals bei mir auch ein fürchterliches Gewurschtel.

Vielleicht hilft Dir der Link.

Gruß

Thomas

Hallo liebe Community,

ich benötige eure Hilfe.

Habe jetzt die Software von BavarianSuperGuy auf meinen ESP geflasht und wollte mit einen Tasmota SML Reader verbinden. Habe die Schritte auf Github befolgt und die JSON HTML eingegeben. Aber bei Verbrauch wird nichts angezeigt. Wo liegt der Fehler?

Gruß

Florian

@gamerflo

Ich habe einen Hitchi IR Lesekopf mit daran angeschlossenem D1mini mit Tasmota.

Mit folgenden Einstellungen läuft das bei mir:

Auto JsonHttpClient klicken.

Bei HttpGetUrl:

http://192.168.2.56/cm?cmnd=status+10

eintragen.(Ip von Deinem Tamota)

Bei JsonValuePath:

StatusSNS.SML.curr_w

eintragen.

Versuchs mal.

@andy-aus-b Hallo Andy, ich hab das identische Fehlerbild: Soyo source zeigt nach reset des D1 für ein paar Sekunden diesen blauen RS485 Schriftzug und fängt an zu regeln. Anschließend verschwindet RS485 auf dem Display und die Leistung geht auf 0W. Hast du den Fehler bei dir behoben ? Grüße Freedz

Moin alle zusammen, bin neu hier und wollte mal hallo sagen. Ich habe mir die Tage einen SoyoSource 1000W (FW: STC8-2022-801) zugelegt, die Schaltung nachgebaut und die Soft vom BSG draufgebügelt. Anstelle des D1 mini nutze ich nen NodeMCU mit ESP8266 da ich diesen über VIN mit 5V versorgen kann (Ja VCC des RS485 (Modul2) liegt an 3.3V. Ich hatte per Kommentar im BSG YT-Video gefragt ob die Schaltung an dem 1000er läuft da immer vom 1200er die Rede war, was bejahrt wurde, und dann zugeschlagen. Grundsätzlich funktioniert die Regelung. Allerdings sendet der Soyo wohl mit neuer FW keine Daten. Dazu kommt das wenn MQTT konfiguriert der NodeMCU nach einigen Stunden nicht mehr erreichbar ist und nur noch ein Neustart hilft. Ohne MQTT läuft der NodeMCU nun schon 2 Tage durch aber heute beim rumtesten hat der Soyo auch nix eingespeist (obwohl ESP Herzschlag dauernd blinkt.)

Um nun selber zu forschen habe ich mir nun ein kleines eigenes Projekt aufgesetzt. Ich benötige nur eine Regelung damit ich über iobroker per MQTT die Einspeiseleistung steuern kann. Zur schnellen manuellen Regelung der Leistung bin ich dabei eine kleines Webif zu erstellt. So für heute reicht es werde berichten wenn es am Soyo läuft.

Edit. Kann wohl keine Bilder hier anfügen

 Link entfernt 

Guten Morgen,

@matlen67: Habe ich mit FW 1.0.2.8 auch auf dem NodeMCU mit MQTT laufen, ohne Probleme.

Meine Frage: Gibt es einen Webhook für den "Notaus" bzw. den "MaxPower?"

Danke.

Moin,

mal ne blöde Frage, hat ggf. schonmal jemand versucht auch mit einem SoyoSource GTN-500 kontakt via serieller Schnittstelle aufzunehmen?

Das CPU Board sieht mir sehr ähnlich aus, auf der Haupt-PCB gibt es einen (unbestückten) 5 poligen Port der mit "RS-485" beschriftet ist.

Die RX/TX Pin's sind bis zum SoC durch verdrahtet, liefern 5 Volt, ein weiterer Pin scheint ein Takt auszugeben, und wenn man mit einem Python Script für den Großen dran geht bekommt man Antworten, welche sich je nach Poti-Stellung, auch ändern.

Direkt via ESP und der hier vorgestellten Firmware passiert aber nix.

Wie gesagt, blöde Frage.

Ich habe diesen Wechselrichter 'SOGTICPS 1000W' von Amadings genommen. Funktioniert mit dem Controller von Klaus einwandfrei. Bin begeistert.

Gruß, Gerd

ich glaube damit habe ich mal rumprobiert ... da kam was, aber nicht brauchbar. Vielleicht war ich auch zu blöd:

https://www.akkudoktor.net/forum/migrated-forums-balkonsolar/nulleinspeisung-diy-mit-balkonsolar/paged/7/#post-67978

Hallo an Alle,

habe schon fleißig mitgelesen.Habe den SOGTICPS 1000W bei Amazxx bestellt.Geliefert wurde ein SoyoSource 1000W.Firmware des WR: STC8-22-1025
Laut diversen Aussagen liefern die neueren Firmware Stände keine oder unvollständige Daten.
Habe einen D1 Mini ESP8266 und TTL->RS485 Wandler ( alle 2 Modelle) getestet mit den Files von Klaus(BavarianSuperGuy) und den von syssi
Link entfernt mit den zwei TTL->RS485 Wandler.
Ergebniss:

  • Die Leistung kann ich einstellen,wie viel eingespeist werden soll
  • Not Aus Ein/Aus geht
  • Ein/Ausschalten geht
  • Die Aktuelle WR-Leistung wird angezeigt
  • keine Batteriespannung;Batteriestrom usw.

Ich habe eine 24V 100Ah LifePo4 Akku/Batterie .
Was muß ich in dem SoyoSource einstellen ?

  • Bat Start Voltage ?
  • Bat Off Voltage ?
    Ich hab zum Testen einen 24V Trafo angeschlossen und das Menü verstellt......................
    CU-Martin

@christoph-d

Hallo Christoph,welche Pegelwandler hast du genommen? Hast du Batterie Spannungsanzeigen ,Batteriestrom usw. ?

Dann benützt du RS485 gar nicht ? Liest die Daten über die Serielle Schnittstelle wo die RS485 Platine eingesteckt war? Und der D1 Mini hat doch gar kein Vin(5V) .MfG

Welch Firmware hat dein Soyo ? Meiner hat STC8-22-1025 . Geht da auch was ?

Hast du Bilder gemacht?

Vielen Dank schon mal

CU Martin

@easyman,

habe heute mein Soyo 1000W/24V bekommen und gleich mit dem ESP-Controller getestet.

Das Set hat gut den Verbrauch ausgeregelt, hatte aber auch keine DC (Batt,PV) Daten in der Aneige von dem ESP.

Jetzt nach dem der 24V Akku leer ist, und zum aufladen abgeklemmt wurde, habe ich plötzlich Daten in der DC Anzeige

vom ESP die aber irrsinig sind.

Mein Set:

Schelly3EM

D1 mini Pro (mit externer Antenne)

RS485 TTL Modul 2 (mit den 5 Anschlußdrähten)

Soyo1000W/24V Firmware STC8-22-1025

Wollte noch ein Bild mit anfügen, keine Ahnung wie das hier geht!!!!!

Bis das mit den Bilder geht, hier die Daten:

DC(Bat,Pv)
3038.80 V 1638.40 A 4978770.00 W ????

tilltec

Glückwunsch! Das sind genau die Leistungsdaten, wie ich sie mir von so einem Wechselrichter vorstelle! {green}:starryeyes:

@tilltec

Mit was hast du probiert auf dem ESP: Den Herzschlag oder esphome-soyosource-gtn-virtual-meter ?