Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

ik heb recentelijk een energy meter van sma aangeschaft.

Nu live data uitlezen lukt wel met behulp van volgende tool:

https://github.com/datenschuft/SMA-EM

Maar een fout treedt op als je onderstaand script laat lopen
....
import sys, time
from daemon3x import daemon3x
from configparser import SafeConfigParser
import smaem

#read configuration
parser = SafeConfigParser()
parser.read('/etc/smaemd/config')

smaemserials=parser.get('SMA-EM', 'serials')
serials=smaemserials.split(' ')
smavalues=parser.get('SMA-EM', 'values')
values=smavalues.split(' ')
pidfile=parser.get('DAEMON', 'pidfile')

class MyDaemon(daemon3x):
def run(self):
emparts = {}
while True:
emparts=smaem.readem()
for serial in serials:
#print(serial)
#print(emparts['serial'])
if serial==format(emparts['serial']):
#print("match")
for value in values:
file = open("/run/shm/em-"+format(serial)+"-"+format(value), "w")
file.write('%.4f' % emparts[value])
file.close()

if __name__ == "__main__":
daemon = MyDaemon(pidfile)
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print ("Unknown command")
sys.exit(2)
sys.exit(0)
else:
print ("usage: %s start|stop|restart" % sys.argv[0])
print (pidfile)
sys.exit(2)
hieronder de config file in kwestie
[SMA-EM]

*serials of sma-ems the daemon should take notice
*seperated by space
serials=1900254500
*measurement values
values=pregard psurplus qsurplus ssurplus

[DAEMON]
pidfile=/run/smaemd.pid
en hier de fout in kwestie:
/home/SMA-EM $ sudo python3 sma-daemon.py
Traceback (most recent call last):
File "/usr/local/lib/python3.5/configparser.py", line 1136, in _unify_values
sectiondict = self._sections[section]
KeyError: 'SMA-EM'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "sma-daemon.py", line 30, in <module>
smaemserials=parser.get('SMA-EM', 'serials')
File "/usr/local/lib/python3.5/configparser.py", line 779, in get
d = self._unify_values(section, vars)
File "/usr/local/lib/python3.5/configparser.py", line 1139, in _unify_values
raise NoSectionError(section)
configparser.NoSectionError: No section: 'SMA-EM'
heb het python script uitgevoerd als v3 en gewone versie, geen van beiden werkt, nu ken ik niet zo heel veel van python, en loop ik dus op bovenstaande fout

Heeft er iemand enig idee hoe ik dit oplos ?

heb er zelf een issue van gemaakt bij de maker zelf, maar die helpt ook niet echt verder lijkt me ...

https://github.com/datenschuft/SMA-EM/issues/9


alvast bedankt, het kan misschien een hulp bieden voor andere eigenaars om iets dergelijk op te zetten, maar dan moet het natuurlijk wel werken

[ Voor 36% gewijzigd door Verwijderd op 29-11-2017 19:02 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Ik vind dit wel interessant, maar ik weet het ook niet....(ook te weinig ervaring)
Maar welke Energiemeter versie heb je van SMA?

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De eerste. Met name de 10 ipv de 20 (welke enkel een andere webinterface zou hebben)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heb het werkende gekregen, blijkbaar was mijn config file niet in UTF-8

hiervoor gezorgd via volgend commando:

iconv -f UTF-8 config -o /dev/null