Git Product home page Git Product logo

soyosource-powercontroller's Introduction

soyosource-powercontroller

Mit diesem Projekt ist es möglich die Einspeiseleistung einens SoyoSource GTN-1000W / GTN-1200W per Webinterface durch manuelle Steuerung, Zeitplan, MQTT oder mit einem Shelly EnergyMeter als Nulleinspeisung (3EM PRO, 3EM, EM, 1PM) zu steuern. Der SoyoSource kann die Energie DC-Seitig aus PV-Module oder aus einer Batterie beziehen. Die AC-Einspeiseleistung kann im Einstellmenü des SoyoSource als Festwert in Watt oder durch einen auf einer Phase angeschlossenen SoyoSource Limiter bereitgestellt werden. Der Limiter wird per RS485-Schnittstelle am SoyoSource angeschlossen und sendet dann die auf der Phase anliegende Leistung an den SoyoSource.

Hinweis. Die aktuellen Versionen der SoyoSource Einspeisewechselrichter geben keine Daten mehr über die RS485-Schnittstelle aus, somit ist ein Auslesen von SoyoSource Informationen nicht möglich. Leider liegen mir aktuell keine Informationen vor ob der Sendevorgang per Software/Hardware deaktiviert wurde oder ob es nur neue Parameter bedarf um den SoyoSource zum Senden zu bewegen.

Diese Steuerung in Verbindung mit der Schaltung aus Bild 1 ersetzt den SoyoSource Limiter. Damit die Leistungsvorgabe dieser Steuerung funktioniert, muss im Einstellmenü des SoyoSource der Limitermode aktiviert werden (Bild 2). Die manuelle Steuerung über das Webinterface sowie per MQTT oder Zeitplan funktionieren soweit, lediglich die Nulleinspeisung habe ich erst im Dezember 2023 mit eingebaut und kann diese erst im Frühjar 2024 testen und optimieren.

Achtung, ich überneheme keinerlei Haftung für Schäden an Personen oder Hardware die durch dieses Projekt entstehen. Arbeiten an Spannungen größer 24V sollten nur von Fachpersonal durchgeführt werden!

PlatformIO

Dieses Projet wurde von der Ardunino IDE zu PlatformIO portiert

Arduino IDE 2.1.0

Wer dieses Projekt weiterhin mit der Arduino IDE nutzen möchte muss die Datei main.cpp nach 'soyosource-powercontroller.ino' umbenennen und diese mit der html.h in einen Ordner mit den Namen 'soyosource-powercontroller' kopieren.

#benötigte Librarys

Hinweis ESPAsyncWebServer bei verwendung der Arduino IDE

Innerhalb der Library ist das Prozentzeichen '%' als Platzhalter definiert. Variablen die vom Platzhalter umschlossen sind können so später durch gesendeten Code vom Webserver ersetzt werden um z.B. Daten von Sensoren dazustellen. Leider interpretiert der Webserver aber auch das Prozentzeichen in CSS oder HTML Code falsch, so das z.B. bei der Angabe des property's wie xyz{ widht: 90%; } das % Zeichen entfernt wird. Dieses führt folglich zu Fehldarstellungen der Website. Als Workaround hilft Angaben mit Prozentzeichen immer doppelt anzugeben xyz{ width:90%%; } oder man ersetzt in der Library das Platzhalter Zeichen. Ich habe in meiner Library unter dem Library-Ordner ESP Async WebServer/src die Datei 'WebResponseImpl.h' angepasst und den Platzhalter ersetzt:

#define TEMPLATE_PLACEHOLDER '%'

durch

#define TEMPLATE_PLACEHOLDER '~'

ersetzen

Wer platformio nutzt brauch das % nicht ändern, da ist es in der platformi.ini als build flag hinterlegt

Schaltung

Bauteile

  • NodeMCU mit ESP8266 (ESP-12F) (4MB Flash)
  • RS485 Entwicklungsboard TTL zu RS485, MAX485

Hinweis: Das RS485 Entwicklungsboard verwendet einen MAX485 Pegelwandler der für eine Versorgungsspannung von 5V ausgelegt ist. Da die GPIO's des ESP8266 dauerhaft nur 3.3V vertragen wird die Spannung Vcc vom RS485 Entwicklungsboard am 3.3V Ausgang des NodeMCU abgegriffen. Das RS485 Etwicklungsboard arbeitet auch zuverlässig mit 3.3V. Die 5V Spannungsversorgung des NodeMCU kann entweder über USB oder den Anschlus-Pin VIN erfolgen.

Bild 1: Schaltung

Bild 2: Einstellmenü SoyoSource

Hier muss 'Bat AutoLimit Grid' auf Y stehen

Webif

soyosource-powercontroller's People

Contributors

matlen67 avatar matten67 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

soyosource-powercontroller's Issues

ESPAsync_WiFiManager (startet den AP-mode in laufenden betrieb.)

An anfang sah es noch gut aus nach der einrichtung des WLAN SSID/PW, nach ein Tag gab es auf einmal auch noch den Einrichtungsassistent zusätzlich unverschlüsselt in Wlan. (Eijeijei Datenschutz wird bei der lib kleingeschrieben.)

Ist halt wahrscheinlich so gedacht dass man sich nicht aussperrt wenn das eingerichtete Netz nicht verfügbar ist, danach startet er bei mir leider immer beide Netze.

Was ich hier so richtig gut finde ist die Quelloffene Software da wird alles möglich.

Die änderung in der lib/ESPAsync_WiFiManager

  • Nach einrichtung kein AP-modus mehr verfügbar außer man Drückt beim Webinterface auf (Delete WiFi Settings)
  • Keine Warnmeldungen von framework-arduinoespressif8266 @ 3.30102.0 (3.1.2)

Einfach in verzeichnis reinkopieren.

Wichtig ist..
lib/ESPAsync_WiFiManager-master
platformio.ini muß die Zeile khoih-prog/ESPAsync_WiFiManager@^1.15.1 raus.

soyosource

soyosource-powercontroller.zip

Html editor

First let me say fantastic program. Thank you for sharing.
I use homewizard instead of shelly so need to make few changes.
What do you use as a html editor

Homewizard

Added Homewizard meter.
Originally thought i would add something to the html file to add a separate box for the homewizard 3 phase meter.
Actually it works much the same as the shelly so finally decided to keep to your html code and add the code for homewizard.

I also have some ideas of options on how to switch the SoyoSource.
ie Use the tibber pricing to switch it on a high price and switch on a charger at low price.
I have most of that working as a separate program and will publish that separately in few days.
Idea is something like https://github.com/christian1980nrw/Spotmarket-Switcher
Thought this could be added quite easily as it is similar to what you already did in the Timers part.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.