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
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
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
hieronder de config file in kwestie....
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)
en hier de fout 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
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/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'
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 ]