Soyo GTN1000 WiFi cloudfrei machen

Hallo zusammen,
ich stelle mich zu blöd an, um mich an dem Ding anzumelden. ?
Mein Stick ist auch Version 1.7, liegt schon 2-3 Monate hier rum. Im AP-Modus ist das WLAN Soyo_SUxxxxxxx immer nur gelegentlich zu sehen. Ganz selten ist er auch mal verbunden (ohne Internet, ist ja klar) Habe auch schon ein älteres Handy probiert.
Das mit dem Umschalten zwischen AP und nicht-AP funktioniert. Gibt es da noch andere Tastendruck-Timing Kombinationen oder nur die 4 sekunden und 3x hintereinander drücken?
Spielt es eine Rolle, welches WPA eingestellt wird? (WPA/WPA2 personal, WPA2 Enterprise, WPA TKIP. Oder ist das egal?
Aber wenn er ab und zu mal eine Verbindung bekommt die nicht stabil ist, müsste doch mit dem grundsätzlichen Anmelden alles ok sein.
Hat vielleicht der Dongel einen Schuss?
Auch im 'nicht-AP-Modus' klappt nichts. Habe den Router schon auf 6 meter an das Teil herangetragen, nichts geht. Ich bin im Moment etwas genervt.
Hat noch jemand eventuell einen Tipp für mich?
Ich habe im Moment keinen Level-Shifter rumliegen, sonst würde ich glaube ich schon mal was flashen....

Viele Grüße, Norbert

So, die Firmware ist scheinbar der letzte Scheiß. Habe jetzt nach installation von Python, ESPtool (zum Backup), GIT und ESPHome (zum flashen) eine neue FW drauf. Verbindung ins WLAN klappte sofort. Dachte schon der Dongle wäre vielleicht nicht ganz ok. Mal sehen wie es jetzt weiter geht.

Am nervigsten war die Fehlermeldung beim compilieren das keine Quellen im Sourceverzeichnis des GIT-Clones wären.
(Error: Nothing to build. Please put your source code files to the 'D:+Projects\Smart Home - IoT - Heimautomation\ESPHome.esphome\build\soyosource-wifi-dongle-tec\src' folder
Nur ein ganz kleine doppeltes Leerzeichen im Verzeichnis-Namen ?

Update: Nachdem ich noch einmal geflasht habe um den Browserzugang (im ersten Post erwähnt) zu aktivieren, kann ich jetzt auch die Betriebsart umschalten und komme allgemein prima rauf. Im Vergleich zu der China-Software lüppt das auf anhieb. Wirklich ein tolles Projekt!!!!! {green}:starryeyes:

Auch bei mir läuft seit heute die cloudfrei Software. Ich habe den original-Stick in Ruhe gelassen und nutze einen ESP2866.
Die Verbindung zum Soyo kommt ohne Levelshifter aus und besteht nur jeweils aus einem 3,9k Widerstand in den RX und TX Leitungen. Der ESP2866 soll an den GPIOs 5V-tolerant sein. Bisher kann ich das bestätigen.
Als Limiter-Input nutze ich einen Shelly 3EM, der per HTTP direkt ausgelesen wird, so wie das auch die Software vom BavarianSuperGuy macht. Dankenswerter Weise wurde diese Möglichkeit vor kurzem ergänzt.
Vielen Dank vor allem an Sebastian (syssi) für dieses Projekt und auch die schnelle Projektpflege!

Hallo,

kann mir jemand erklären was ich machen muss damit ich das so (Siehe Anhang) in HA sehen kann ?

Ich glaube den Original Stick flashen bin aber nicht ganz sicher.

Soyosource 1000W ohne Display

Ich habe einen Wemos D1 geflasht und an den RS485 Port angeschlossen, leider bekomme ich keine Daten kann aber Werte Setzten.

Nach dem flashen bekomme ich diese meldung:

Ist mein RS485 Port defekt ?

Danke

Marcel

Hallo idz,

ich habe die Datei D1mini-esp8266-display-example-ok-legacy.bin von dir verwendet und es funktioniert einwandfrei. Da ich ein SoyoSource Grid Tie Power Inverter 1000W 24V habe, wollte ich die Datei esp8266-wifi-dongle-limiter-example.yaml mit Python kompilieren. Leider habe ich von Python keine Ahnung. Ich habe alles Mögliche installiert und ausprobiert.

Auch habe ich nicht die Werte von mqtt:

If you use Home Assistant please remove this mqtt section and uncomment the api component!

The native API has many advantages over MQTT: Native API Component - ESPHome - Smart Home Made Simple

mqtt:

broker: !secret mqtt_host

username: !secret mqtt_username

password: !secret mqtt_password

id: mqtt_client

Kannst du mir sagen, woher ich den username und password von mqtt bekomme?

Diese Befehle habe ich bei cmd in der Kommandozeile eingegeben:

python -m venv esphome-venv

.\esphome-venv\Scripts\activate

pip3 install wheel

pip3 install esphome

esphome run esp8266-wifi-dongle-limiter-example.yaml

Es kommen immer irgendwelche Fehler.

Vielleicht kannst du mir auch sagen, was ich bei Python falsch mache, damit ich die bin-Datei erhalte.

Nochmals vielen Dank für deine Informationen

mikfm

Die Konsole cmd

Werte von deinem Programm D1mini-esp8266-display-example-ok-legacy bei dir:

Erst einmal Hallo zusammen :raised_hand_with_fingers_splayed:

ich hole mal das "alte" Topic nach oben, da meine Frage hier wohl am passensten ist.

Zuerst zum Hintergrund und Vorhaben:

Ich habe seit ca. 10 Monaten 3 Stk. Soyo GTN1200 ohne Display / mit Wifi mit der Steuerung vom BavarianGuy am laufen (fertig geflashed gekauft). Regelung über den Shelly funktioniert einwandfrei.

Siet kurzem befasse ich mich mit dem Thema Home Assistant und bin auf dieses Topic gestossen.

Ich würde gerne die Soyos in Home Assistant einbinden. Je öfter ich mir jedoch das Thema durchlese, umso mehr ??? stellen sich mir. Die originalen W-Lan Stick würde ich gerne im originalen Zustand belassen. Daher kommt für mich nur die Variante mit flashen eines ESP8266 in Frage. Das Ganze traue ich mir auch zu, nur weiss ich nicht so recht welche Hardware ich benötige. Manchmal wird von einem USB TTL Adapter gesprochen, dann wieder von einem Levelshifter?

Würde es ausreichen wenn ich folgende Komponenten kaufe?

Zur Verbindung des ESP8266 mit dem "USB" Anschluß des Soyo:

Und diesen ESP8266 für die Software:

@syssi, welche yaml würdest du dann nehmen?

Sorry für die vermutlich "DAU" Fragen, aber ich sehe irgendwie den Wald vor lauter Bäumen nicht mehr.

@roecker Jetzt bin ich auch verwirrt. Mein Projekt (esphome-soyosource-gtn-virtual-meter) benötigt genau die gleichen Systemvoraussetzungen, wie das Projekt von BavarianGuy. Theoretisch wuerde es genuegen die ESPs, wo aktuell die BavarianGuy-Software drauf laeuft mit meinem Projekt zu ueberschreiben.

Kannst du dein Ziel noch einmal beschreiben? Du moechtest du bestehenden ESPs lieber nicht veraendern und stattdessen Neue kaufen?

@syssi

mir dreht es sich nur um die Visualisierung der Einstellungen des Soyo in Home Assistant. Keine Regelung oder ähnliches.
Die Nulleinspeisung über die ESP vom Klausli möchte ich behalten, lediglich die eingestellten Werte der einzelnen Soyos in Home Assistant anzeigen lassen.

mein Ziel ist es am USB Port des Soyo dessen eingestellte Werte abzugreifen und in HA darzustellen so wie hier von dir beschrieben:

Link entfernt

Rs485 ist ja schon belegt, daher muss ich über den USB Anschluss des Soyo gehen.

gelöscht

@asathor

gehen wirklich nicht beide gleichzeitig? Ich habe die Steuerung vom BavarianGuy am RS485 Port angeschlossen. Der USB Port ist demnach ja auch nur ein RS485, hier könnte ich die Daten doch einfach separat abgreifen (wie es der Original WiFi Dongle im AP Mode ja auch macht).

Ich habe die im vorigen Post verlinkten Komponenten jetzt mal gekauft und geflashed. Der ESP8266 wird erkannt, nur bekomme ich keine Daten in Home Assistant angezeigt. Der ESP hängt über den UART TTL USB Adapter am Soyo und gibt die 3,3V mit RX,TX an den ESP weiter. Nur kommen leider keine Daten an.

Habe ich hier grundlegend einen Denkfehler?

@syssi

hier mal meine yaml (ich habe xxx bei den Passwörten eingesetzt)

substitutions:
name: soyosource-wifi-dongle
device_description: "Monitor and control the WiFi version of the Soyosource GTN using the OEM WiFi dongle with a custom firmware"
external_components_source: github://syssi/esphome-soyosource-gtn-virtual-meter@main
esphome:
name: soyo-nr-1
friendly_name: Soyo Nr. 1
comment: ${device_description}
min_version: 2024.6.0
project:
name: "syssi.esphome-soyosource-gtn-virtual-meter"
version: 2.1.0
esp8266:
board: esp01_1m
# Enable logging
logger:
baud_rate: 0
level: INFO
# Enable Home Assistant API
api:
encryption:
key: "xxx"
ota:
- platform: esphome
password: "xxx"
wifi:
ssid: "xxx"
password: "xxx"
manual_ip:
# Set this to the IP of the ESP
static_ip: xxx
# Set this to the IP address of the router. Often ends with .1
gateway: xxx
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Soyo-Nr-1 Fallback Hotspot"
password: "xxx"
captive_portal:
external_components:
- source: ${external_components_source}
refresh: 0s
# If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component!
# The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt
#api:
uart:
- id: uart_0
baud_rate: 9600
tx_pin: GPIO1
rx_pin: GPIO3
soyosource_display:
- uart_id: uart_0
protocol_version: SOYOSOURCE_WIFI_VERSION
update_interval: 5s
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"
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_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"
total_energy:
name: "${name} total energy"
output_power:
name: "${name} output power"
text_sensor:
- platform: soyosource_display
errors:
name: "${name} errors"
operation_mode:
name: "${name} operation mode"
operation_status:
name: "${name} operation status"

Zu Beginn möchte ich ein kleines Missverständnis aufklären: Auf der grünen Buchse am Soyosource wird RS485 gesprochen. Auf der USB-Buchse des Soyosource wird weder RS485 noch USB-Data gesprochen, sondern die Buchse wurde lediglich benutzt um ein UART-TTL-Signal (mit 0V/5V Pegel) und eine Spannungsversorgung für das Dingle (5V+GND) nach draussen zu führen.

Sobald wir an einem ESP genügend freie GPIOs besitzen um insg. zwei uarts (serielle Schnittstellen) zu betreiben, koennen wir mit beiden Steckplaetzen des Inverters sprechen. Der RS485-Steckplatz (bei deinem Modell) versteht nur eine einzige Nachricht sie lautet "Produziere bitte x Watt". Diese Nachricht muss periodisch (1x pro Sekunde) an den Inverter geschickt werden ansonsten hoert er auf zu arbeiten. Diese Aufforderung kann sowohl Klaus sein Projekt, als auch meins an den Inverter senden.

Die andere Schnittstelle nenne ich für gewöhnlich Display-Port. In Wirklichkeit hat hier naemlich der Hersteller einfach kein Display verbaut und stattdessen die Kabel die normalerweise zum Display fuehren nach draussen gefuehrt. Ueber das Display kann man normalerweise Status-Informationen sehen und die Einstellungen des Inverter betreten & veraendern. Genau das ist auch ueber mein Projekt mit Hilfe der soyosource_display-Komponente möglich. Diese Implementierung fragt den Inverter periodisch nach Status-Informationen und in der Lage die Einstellungen abzurufen und zu veraendern. Also genau die gleichen Dinge, welche auch ueber das WiFi-Dongle des Herstellers moeglich sind.

Nun zur Frage "Kann ich mit dem ESP direkt mit dem Display-Port sprechen"? Die Antwortet lautet: Ja, aber! :wink: In der Regel ist man ängstlich und hat die Sorge, dass die GPIOs eines ESP8266 keinen 5V Pegel aushalten. Stattdessen sind sie für 3.3V konzipiert. Gleichzeitig hat man Angst, dass bei einer versehentlichen gemeinsamen Masse Ströme an Stellen fließen, wo keine Ströme fließen sollten. Deshalb gibt es die folgenden Möglichkeiten:

  1. Das "Ich gehe volles Risiko ein"-Setup: Man verdrahtet den ESP mit drei Kabeln direkt an den Dispay-Port (GND, TXD, RXD). Der ESP sendet mit 3.3V. Der Inverter antwortet mit 5V Pegeln. Mit Strom versorgt wird der ESP über ein USB-Ladegerät. Hoffentlich kriecht niemals Strom über Leitungen, wo er nicht kriechen sollte.

  2. Das "Ich risikiere nur das Leben des ESP"-Setup: Man verdrahtet den ESP mit drei Kabeln direkt an den Display-Port (GND, TXD, RXD), wie im ersten Beispiel. Zusätzlich zieht man aber auch noch eine Verbindung vom 5V Pin den ESPs zum 5V Pin der USB-Buchse. Der ESP wird also vom Inverter versorgt. Die Common-Ground-Problematik gibt es so nicht. Wir fahren nur das Risiko, dass der 5V Pegel langfristig den GPIO des ESPs röstet.

  3. Das "ich gehe kein Risiko ein"-Setup: Man nutzt einen digitalen Isolator, welcher gleichzeitig auch das Problem der unterschiedlichen Pegel (Spannungen) löst. Das sieht dann so aus:

In diesem Fall erhält der ESP nur Nachrichten mit einem 3.3V Pegel und sendet mit 3.3V Pegel. Auf der anderen Seite wird das Modul mit 5V gespeist, deshalb sendet es mit einem 5V Pegel. Wie man das Setup speist ist wegen der optischen Isolation nun egal. In den obigen Fotos wurde die Spannungsversorgung des Inverters verwendet um ein Netzteil zu sparen.

Gibt es noch Unklarheiten? :slight_smile:

2 „Gefällt mir“

@syssi

das erklärt jetzt einiges warum bei github immer display port steht. Ich dachte mir immer da gibt es bei der Display Version des Soyo einen weiteren Port.

@syssi

Beim "grünen port" ist intern im soyo ein gesteckter rs485 wandler. Diesen kann man rausnehmen und hat dann rx, tx, gnd und 5V. Mach ich so.

Galvanische trennung ist dann per wifi :slight_smile: und man kann sich das ganze rs485 gedöns sparen.

@syssi

Ich nutze die Gelegenheit, dass du hier so viel Unterstützung gibst, um meine offenen Fragen zu stellen. Vorab vielen Dank für deine tollen Projekte und geduldige Unterstützung.

Ich verstehe ESP Home leider nur soweit, dass es ausreicht deine fertigen Projekte zu verwenden. Home Assistent nutze ich nicht.

Ich habe drei Soyo Source mit Display in Betrieb. Das funktioniert seit langem gut allerdings nur die Limiter Funktion über RS485.

Was mein Wunsch wäre:

Die Displays weiter nutzen können aber auch Werte lesen/setzen sowie das Powermeter nicht über den Umweg mqtt sondern direkt per http lesen ( Wie bei BSG AutoJSONHttp)

Kann der Port auf dem der RS 485 Adapter sitzt nur für die Limiter Werte genutzt werden oder wie das Display Port?

Kann ich das Display und das ESP parallel anschließen?

Wie sähe der Codeschnipsel aus für den Http request?

Vielen Dank

Könnte mir sonst jemand evtl. helfen, wie die Yaml mit einem http requests auf ein Tasmota Zähler aussehen müsste?

bekomme es nicht zum laufen.

Danke euch

Verzweifelter Hilferuf eines Laien.

Hallo an alle und dank an die Ersteller.

Bin Laie und habe alles mehrfach gelesen, und es mit dem D1mini – ESP8266MOD nachgebaut. Cloudfrei als auch BSG.

Vorhanden: mehrere Soyos, 24V, 48V und 72V, Tracer und Esmart Laderegler sowie Lifepo Batterien in 48V.

Bei mir,

wie auch bei Andreas (@darcman) 28. März 2024 7:12

Mein ESP hat die letzte FW Version 1.0.3.3. Ich habe nun schon Einiges an Hardware und Firmware hin und her getauscht. Auch andere Netzteile verwendet. Immer wieder regelt das System gegen "0" oder schaltet einfach ab.“,

sagt die Soyo-App, auch über das nachgebaute Interface von Syssi (<a href=" Link entfernt ">esphome-soyosource-gtn-virtual-meter), dass der Limitter-connect dauernd auf off – (on) geht.

Unverständnis meinerseits, TTL Pegel des original Limiters 5V, ESP 3,3V ???

Die D1mini-esp8266-display-example-ok.zip yamel lässt sich bei mir nicht kompilieren, Fehler: uart1, und die includierte bin macht ja meine Shelly nicht.

Mein Wunsch währe es, über USB mit einem ESP8266 die Soyos von meiner Shelly regeln zu lassen, was mir bis jetzt noch nicht gelang.

Eine bin und yaml sowie schaltung währe mir schön.

Mit der Bitte um Hilfe, sodass es auch bei mir läuft

LG Bernhard

Habe dir im anderen Faden ausführlich geantwortet:

Über das "USB" TTL kann man nur die Daten lesen und schreiben, die auch das Display kann. Limiterwerte müssen den den RS485 Port bzw. dessen TTL Port gesendet werden.

Hallo Asathor,

danke für deine schnelle Antwort. Mit dem Elko für BSG werde ich morgen noch mal testen. Hatte die 5V Seite mit elko versehen, da mit mcro usb versorgt.

Zu Syssi Sebastian, gefällt mir betr. 5V vom usb auch viel besser. Beim lesen der einzelnen yamels verwirren mich, die jeweils anderen GPIOs,

wenn ich meine Shelly abfragen (IP Eingabe in der WebSite)

und durch ausgeben (GPIO ?) über TTL-Modul (mit grünen A B Klemmen) an die rs485 (grün) an den soyo übergeben könnte,

mit zusätzlich noch einer freien Nahmensvergabe, da eben mehrere Soyo's, in der Website,

wäre das super.

Aber wie? (brauche ja noch den powermeter-Wert der Shelly 3em, ohne Homeassist)

LG Bernhard

Hallo,

kann man bei der Version mit Display den ESP gleichzeitig an den Displayport klemmen oder muss das Display dann entfallen?

Bzw. alternativ gibt es jetzt wohl eine Version mit Display und Wifi-Dongle. Wäre die Frage ob das dort parallel angeschlossen ist oder eine weitere Schnittstelle programmiert wurde.
https://de.aliexpress.com/item/1005007341781854.html