Benachrichtigungen
Alles löschen

Soyo GTN1000 WiFi cloudfrei machen

99 Beiträge
20 Benutzer
3 Reactions
10.7 K Ansichten
(@roecker)
Newbie
Beigetreten: Vor 3 Monaten
Beiträge: 4
 

@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"
Diese r Beitrag wurde geändert Vor 3 Monaten 2 mal von roecker

   
AntwortZitat
Sebastian
(@syssi)
Vorsichtiger Stromfühler
Beigetreten: Vor 3 Jahren
Beiträge: 101
 

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? Smile


   
roecker reacted
AntwortZitat
(@roecker)
Newbie
Beigetreten: Vor 3 Monaten
Beiträge: 4
 

@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.


   
AntwortZitat
Surolac
(@surolac)
Batterielecker
Beigetreten: Vor 11 Monaten
Beiträge: 373
 

@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 Smile   und man kann sich das ganze rs485 gedöns sparen.

Döp dö dö döp.


   
AntwortZitat
(@asathor)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 158
 

@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


   
AntwortZitat
(@asathor)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 158
 

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 


   
AntwortZitat
(@alfa-53)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 3
 

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

Diese r Beitrag wurde geändert Vor 1 Monat 2 mal von alfa-53

   
AntwortZitat
(@asathor)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 158
 

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.


   
AntwortZitat
(@alfa-53)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 3
 

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

Diese r Beitrag wurde geändert Vor 4 Wochen von alfa-53

   
AntwortZitat
Seite 7 / 7
Teilen: