/* SolarMax Proxy (SMP)
* Version: 0.21
* Authors: acv
* Date: April 24, 2010
*
* The solarmax proxy is designed to abstract different power inverters for
* e.g. the solarview software written by M. Richter (manfred@amhamberg.de)
* and maybe other software that supports solarmax power inverters.
*
* I wrote this piece of software since I have sunways NT4000 power inverters
* and they have not been supported by the solarview software. Feel free to
* adapt the software to suit your needs. This software comes without warranty.
*
* If you find this software useful, if you can now watch your power inverters
* remotely and you cannot program (to help me adapting this software to more
* power inverter types, you can contribute to me, even small amounts help :-)
*
* paypal (avau@gmx.de - subject SolarMaxProxy)
*
* or contact me if you could help me developing this piece of software ....
*
*
* history:
*
* V0.01 - sunways nt4000 supported, tested with two inverters
* V0.12 - mipsel binary, daemonized, arguments
* V0.13 - clean up code, reconnect to inverter, connect when needed
* guess correct Model number from serial[6]
* V0.14 - checks if already running, sunways errors converted to
* solarmax in SYS, not tested yet
* V0.15 - error codes corrected (as discussed with Manfred Richter)
* kyr (yearly value) is calculated correctly now
* debug mode implemented
* logfile implemented
* V0.16 - connect behaviour, error code when wr not reachable
* kyr (yearly value) is calculated correctly now (2nd try :-)
* much more logging (-d necessary)
* pid file generation (-r changes default /var/run/smp)
* father/child processes created (father cares about child)
* V0.17 - sig handling improved, restarting of crashing child enabled
* socket handling comm_connect/comm_disconnect changed
* checks for NULL pointers added
* logging improved
* V0.18 - power setting (cmdline switch -w) introduced. This setting
* overwrites the default of 6950 KWp (my inverters). Currently
* it is not supported to set inverters of different power
* V0.19 - internal release
* V0.20 - comm process does not crash when answer timeout from WR
* -d switch extended (-d 0 (no debug), -d 1 (std debug), -d 2
* - (comm debug))
* retries sending request to inverter when no answer
* cuts answer when more then needed bytes to prevent error
* re-reads when not enough bytes received
* V0.20a- problem with -t parameter fixed
* V0.21 - problem solved, that unsuccessful query (timeout etc.) to
* inverter returns old (cached) data
*/
Das Programm heisst smp (SolarMax Proxy), abstrahiert Sunways Wechselrichter und
stellt ein SolarMax Interface zur Verfuegung. Es ist vorgesehen, dass Programm mit
Eurer Hilfe zu erweitern und viele andere Wechselrichtertypen zu unterstuetzen. Ich
werde nach erfolgreichen Tests den Sourcecode veroeffentlichen. SMP wird gratis sein.
Wer also Sunways Wechselrichter hat (imho geht NT10000 noch nicht) der koennte das mal
testen. Ich habe 2 NT4000 miteinander ueber RS485 verbunden, das dann auf RS232 umgesetzt
und dann mit einem Sena LS100 ser2ip Konverter auf ip. Damit kann der SMP auf beide
NT4000 zugreifen und diese abfragen. Der SMP wartet auf einem definierten port geduldig
auf Anfragen eines Datenloggers (getestet mit solarview-fb) und bedient die SolarMax
Anfragen. Somit koennte theorethisch jeder Datenlogger verwendet werden, der das SolarMax-
aber nicht das Sunwaysprotokoll unterstuetzt.
Was braucht ihr:
1) solarview@fritzbox (zum Beispiel, gibts hier: http://www.amhamberg.de/Solarlogger.shtml)
2) bei Verwendung von solarview@fritzbox eine fritzbox (oder mipsel kiste z.B. Sat receiver etc.)
4) smp, gibts hier (http://solar.voigt.ws/releases/smp-X.XX-mipsel.tar.gz)
5) mind. 1 sunways wechselrichter, die ueber ip erreichbar sind (ggf ser2ip adapter kaufen)
Viel Spass
Wenn ihr mir Gutes tun moechtet, oder Euch einfach freut dass ihr jetzt Eure Sunways abfragen
koennt, ueber paypal einfach ein paar Euro an avau@gmx.de schicken oder fragt via EMail nach
Kontodetails.
Ihr muesst nix kaufen, die Software ist gratis...
das mipsel binary bitte auf die FritzBox kopieren und dort starten...
smp [-h<host>] [-p<port>] [-c<count>] [-l<listenport>] [-f<logfile>] [-s] [-v]
[-r<pidfile>] [-d{0|1|2}] [-w power of inverter(s)]
host: ip/name of inverter or ser2ip adapter
port: port of inverter or ser2ip adapter
count: number of inverters
listenport: portnumber where smp listens for requests
logfile: file to log to (not yet implemented)
-v print version and exit
-s simulation mode (does not query inverter)
-d debug output 1-normal 2-comm 0-no log
-r pid file, default (/var/run/smp)
-w power in wp (nur f alle wr zu setzen)
(unterschiedliche inverter anstatt hier bitte bei solarview-fb konfigurieren)
-t timeout fuer antworten seitens der wechselrichter (1 default = 1s)