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?
hier mal meine yaml (ich habe xxx bei den Passwörten eingesetzt)
substitutions:name: soyosource-wifi-dongledevice_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@mainesphome:name: soyo-nr-1friendly_name: Soyo Nr. 1comment: ${device_description}min_version: 2024.6.0project:name: "syssi.esphome-soyosource-gtn-virtual-meter"version: 2.1.0esp8266:board: esp01_1m# Enable logginglogger:baud_rate: 0level: INFO# Enable Home Assistant APIapi:encryption:key: "xxx"ota:- platform: esphomepassword: "xxx"wifi:ssid: "xxx"password: "xxx"manual_ip:# Set this to the IP of the ESPstatic_ip: xxx# Set this to the IP address of the router. Often ends with .1gateway: 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 failsap: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_0baud_rate: 9600tx_pin: GPIO1rx_pin: GPIO3soyosource_display:- uart_id: uart_0protocol_version: SOYOSOURCE_WIFI_VERSIONupdate_interval: 5sbinary_sensor:- platform: soyosource_displayfan_running:name: "${name} fan running"limiter_connected:name: "${name} limiter connected"button:- platform: soyosource_displayrestart:name: "${name} restart"number:- platform: soyosource_displaystart_voltage:name: "${name} start voltage"shutdown_voltage:name: "${name} shutdown voltage"# Maximum output power in limiter mode / Output power in constant power modeoutput_power_limit:name: "${name} output power limit"start_delay:name: "${name} start delay"select:- platform: soyosource_displayoperation_mode:name: "${name} operation mode"optionsmap:1: "PV"2: "Battery Constant Power"17: "PV Limit"18: "Battery Limit"sensor:- platform: soyosource_displayerror_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_displayerrors: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 `uart`s (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! 😉 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:
https://github.com/syssi/esphome-soyosource-gtn-virtual-meter/tree/main/docs/wifi-version
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?
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.
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 und man kann sich das ganze rs485 gedöns sparen.
Döp dö dö döp.
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