Difference between revisions of "Instructions and HOWTO page"

From wiki.breedveld.net
Jump to: navigation, search
(Instructions:)
(Release Notes:)
Line 47: Line 47:
  
 
==Release Notes:==
 
==Release Notes:==
v0.91 2012-10-14 beta version
+
v0.91 2012-10-14 beta version
 
  initial test version
 
  initial test version
  
v0.92 2012-10-15 beta version
+
v0.92 2012-10-15 beta version
 
  introduced: -b option
 
  introduced: -b option
 
  this the same as -d (datacollecting) but extended with debug info.
 
  this the same as -d (datacollecting) but extended with debug info.
 
  debug info is send to stderr
 
  debug info is send to stderr
 
 
  Device-scan is now async, with a wait loop after it.
 
  Device-scan is now async, with a wait loop after it.
 
  This not optimal yet, but it is much faster
 
  This not optimal yet, but it is much faster
  
v0.93 2012-10-16 beta version
+
v0.93 2012-10-16 beta version
 
  max exit in detection waitloop, prevents for endless loop
 
  max exit in detection waitloop, prevents for endless loop
  
v0.94 2012-10-21 beta version
+
v0.94 2012-10-21 beta version
 
  mutiple inverters (-n)
 
  mutiple inverters (-n)
 
  improved debugging options
 
  improved debugging options
Line 68: Line 67:
 
  some minor bigfixes
 
  some minor bigfixes
  
v0.95 2012-10-24 beta version
+
v0.95 2012-10-24 beta version
 
  minor bugfixes
 
  minor bugfixes
 
  include yasdi libs in compiled version
 
  include yasdi libs in compiled version
 
  install.sh and make_distribution.sh scripts added
 
  install.sh and make_distribution.sh scripts added
  
v0.972 2012-11-28 beta version
+
v0.972 2012-11-28 beta version
 
  Pdc in stead of Pac (bug)
 
  Pdc in stead of Pac (bug)
 
  possible to do a synchronous call in stead off async.
 
  possible to do a synchronous call in stead off async.
Line 82: Line 81:
 
  requesting the daemon state
 
  requesting the daemon state
  
v0.980 2012-11-29 beta version
+
v0.980 2012-11-29 beta version
 
  deamon request for multiple sma inverters
 
  deamon request for multiple sma inverters
  
v0.981 2012-12-02 beta version
+
v0.981 2012-12-02 beta version
 
  minor bug-fix for 32bit compile
 
  minor bug-fix for 32bit compile
  
v0.982 2013-02-13 beta version
+
v0.982 2013-02-13 beta version
 
  not existing inverter in daemon mode will result as 0, - bugfix for coredump with some SMA models - detection of A or mA, output will be in Amps
 
  not existing inverter in daemon mode will result as 0, - bugfix for coredump with some SMA models - detection of A or mA, output will be in Amps
  
v1.000 2014-09-04 version
+
v1.000 2014-09-04 version
 
  New name, going to production version
 
  New name, going to production version
  

Revision as of 11:15, 1 December 2015

485solar-get
Instructions and HOWTO page

Instructions:

Command line options for 485solar-get
485solar-get for 123Solar
based on libyasdi from SMA Solar Technology ag
v1.000 2014-09-04 by roland@breedveld.net

Config file: /etc/yasdi.ini

Options:
-h show this help -d show data -b show debug information, written to errout -i show info -e show events -c show data with comments -a show alarms -s show possible status fields -r show state of Daemon -S synchrone detection, default is asynchrone -D start 485solar-get as daemon -m monitor loop -x send exit to daemon -n0-9 deviceNr, default -n0


485solar-get project: http://code.google.com/p/sma-get
123Solar project: http://www.123solar.org
YASDI software: http://www.sma.de/en/products/monitoring-systems/yasdi.html

When running 485solar-get as a daemon:

The client is communicating to the sever by shared memory, actually an IPC-socket, so both should run as the same user.

When starting daemon mode always give the highest device_nr in the command, otherwise it only communicates with the first inverter.
example if using 4 SMA inverters: 485solar-get -D -n3

A client process, such as "485solar-get -d", always looks if a daemon is running, if not, it will communicate directly to the SMA device.

The daemon will shutdown when communication to one of the inverters is interrupted.
This is because the initialization to all invertes should be done again, after one is comming back online again.

Release Notes:

v0.91 2012-10-14 beta version

initial test version

v0.92 2012-10-15 beta version

introduced: -b option
this the same as -d (datacollecting) but extended with debug info.
debug info is send to stderr
Device-scan is now async, with a wait loop after it.
This not optimal yet, but it is much faster

v0.93 2012-10-16 beta version

max exit in detection waitloop, prevents for endless loop

v0.94 2012-10-21 beta version

mutiple inverters (-n)
improved debugging options
date and events printout with comments (-c)
show possible status fields (-s)
some minor bigfixes

v0.95 2012-10-24 beta version

minor bugfixes
include yasdi libs in compiled version
install.sh and make_distribution.sh scripts added

v0.972 2012-11-28 beta version

Pdc in stead of Pac (bug)
possible to do a synchronous call in stead off async.
deamon mode, will speed-up requests
monitor mode added
much more debugging
send stop signal to the daemon
requesting the daemon state

v0.980 2012-11-29 beta version

deamon request for multiple sma inverters

v0.981 2012-12-02 beta version

minor bug-fix for 32bit compile

v0.982 2013-02-13 beta version

not existing inverter in daemon mode will result as 0, - bugfix for coredump with some SMA models - detection of A or mA, output will be in Amps

v1.000 2014-09-04 version

New name, going to production version

485solar-get Installation:

Install 485solar-get needed packages: libaio for Ubuntu 12.04LTS also tested on Ubuntu 10.04LTS download the latest compiled 485solar-get <version>_x86_64_Ubuntu_12_04.tgz from this site, (or for 32bit systems 485solar-get_<version>_i386_Ubuntu_12_04.tgz) place is somewhere like /tmp extract it: tar xzvf 485solar-get_<version>_x86_64_Ubuntu_12_04.tgz run the install script: sudo ./install.sh For other Linux distributions: compiling and installing YASDI needed packages: gcc cmake libaio Download YASDI from the SMA site: http://www.sma.de/en/products/monitoring-systems/yasdi.html extract it to /usr/local/src/libyasdi_1_8_1 cd /usr/local/src/libyasdi_1_8_1/ cd projects/generic-cmake mkdir build-gcc cd build-gcc cmake .. make sudo make install export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib sudo ldconfig /usr/local/lib

test it: yasdishell /etc/yasdi.ini

compiling and installing 485solar-get download the latest 485solar-get_<version>_sources.tgz source from this site extract it: cd /usr/local/src/libyasdi_1_8_1/ tar xzvf <location>/485solar-get_<version>_sources.tgz cd /usr/local/src/libyasdi_1_8_1/sma_485solar-get_<version> sudo ./make.sh example for /etc/yasdi.ini [DriverModules] Driver0=yasdi_drv_serial [COM1] Device=/dev/ttyUSB0 Media=RS485 Baudrate=1200 Protocol=SMANet [Misc] DebugOutput=/dev/stderr compiling, installing and generating your own distribution download the latest 485solar-get_<version>_sources.tgz source from this site extract it: cd /usr/local/src/libyasdi_1_8_1/ tar xzvf <location>/485solar-get_<version>_sources.tgz cd /usr/local/src/libyasdi_1_8_1/485solar-get_<version> change PACKAGE_PAD in make_distribution.sh to your own choice sudo ./make_distribution.sh

Problem Solving:

general
When encountering issues, first every should be fine without using the Daemon mode.
stop the daemon with
485solar-get -x
be shure there are no alter commands running, so stop all software which is using the same interface, like 123solar, etc.
bind address in use
If you change the user which 485solar-get (and Daemon) runs, you have to remove the socket file:
rm -f /var/tmp/485solar-get_socket
debug 485solar-get
use the -b option to show debug output:
485solar-get -s -b 
or:
485solar-get -b -d -i -e -a -s 
try synchronous detection, by adding the -S option
first test Yasdi itself, while 485solar-get is using its library's
yasdishell /etc/yasdi.ini
b1
when device is detected:
z
look at the outputs of:
d
a1
p1
t1 (probably empty)
When the rs485 interface won't respond, try to zero it:
setserial -z /dev/ttyUSB0
Get state of rs485 device:
setserial -G /dev/ttyUSB0
this wil give something like:
/dev/ttyUSB0 uart unknown port 0x0000 irq 0 baud_base 24000000 spd_normal low_latency
Check baudrate:
stty -F /dev/ttyUSB0
Set baudrate:
stty -F /dev/ttyUSB0 1200
cannot open shared object
if you get this message after installing the binary version:
485solar-get: error while loading shared libraries: libyasdimaster.so.1: cannot open shared object file: No such file or directory
This means /usr/local/lib is not in the library path.
there are 2 solutions:
setting the path before running, only for this session:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Make it permanent:
sudo ldconfig /usr/local/lib
Debugging and tracing
If you can't get enough data from the -b (debug) option, you can use strace:
strace -f -o 485solar-get.strace 485solar-get -d -b
All trace info will be written to 485solar-get.strace
For monitoring the serial data:
strace -s9999 -o 485solar-get.strace -eread,write,ioctl 485solar-get -d -b

Output Examples:

  1. output examples for 485solar-get

485solar-get -d (request data) 20130712-15:32:55 172.000000 3.107000 534.404000 0.000000 0.000000 0.000000 234.400003 2.083000 488.000000 49.989999 91.364437 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 889.486042 0.000000 OK

485solar-get -d -c (request data in column format) Date 20130712-15:39:04 Upv-Ist V 172.000000 Ipv A 3.494000 Pdc 600.968000 dummy 0.000000 dummy 0.000000 dummy 0.000000 Uac V 234.000003 Iac-Ist A 2.346000 Pac W 549.000000 Fac Hz 49.989999 Effcy 91.346629 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 E-Total kWh 889.537042 dummy 0.000000 State OK

485solar-get -e (events) 169.000000 169.000000 0.000000 0.000000 169.000000 0.000000 0.000000 3.000000 233.900003 233.900003 233.900003 49.989999 1200.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 466.000000 0.000000 0.000000 0.000000 0.000000 0.000000 OK

485solar-get -c -e (events in column format) Upv-Ist 172.000000 Upv-Ist 172.000000 dummy 0.000000 dummy 0.000000 Upv-Ist 172.000000 dummy 0.000000 dummy 0.000000 Riso 3.000000 Uac 234.000003 Uac 234.000003 Uac 234.000003 Fac 49.959999 Plimit 1200.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 Pac 582.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 dummy 0.000000 State OK

485solar-get -i (info) 1 WR12-061 SN:2002116358 Software-BFR 4.090000 SMA-SN 2002116358.000000 Default 8.000000 BE/C10/11 Status Mpp Betriebsart Mpp-Betrieb 485solar-get v1.000 daemon: Running 485solar-get -a (alarms) Fehler -------

485solar-get -s (possible status fields) All possible status texts for Status: ( 0): 'Offset' ( 1): 'Stop' ( 2): 'Netzueb.' ( 3): 'Warten' ( 4): 'U-Konst' ( 5): 'Turbine' ( 6): 'Mpp-Such' ( 7): 'Mpp' ( 8): 'Stoer.' ( 9): 'Fehler' (10): 'Mpp-Peak' (11): 'Derating' All possible status texts for Fehler: ( 0): '-------' ( 1): 'NUW-UAC' ( 2): 'NUW-FAC' ( 3): 'B3' ( 4): 'K1-Trenn' ( 5): 'B5' ( 6): 'EEPROM dBh' ( 7): 'ROM' ( 8): 'B8' ( 9): 'B9' (10): 'B10' (11): 'B11' (12): 'B12' (13): 'EeRestore' (14): 'B14' (15): 'B15' (16): 'B16' (17): 'B17' (18): 'AC'