Hallo an alle,
seit einiger Zeit stürzt mein FHEM - auf Raspbian Bananapi regelmäßig ab. Das hängt irgendwie mit dem Volkszählermodul und yowsup.pm zusammen. Leider ist der Fehler nicht reproduzierbar, da das System Stunden oder Tage lang gut läuft. Volkzähler läuft auf einem anderen RaspiPi. Hier der Auszug aus der Logdateit vor dem Absturz.
Kann mir jeman helfen, wie ich den Fehler finde?
Vielen Dank
2016.03.22 17:16:41 2: VOLKSZAEHLER Can't get http://192.168.0.105:80/middleware.php/data/dd2c0380-895c-11e5-b8f9-d3e536acb2bf.json?from=30%20seconds%20ago&tuples=1 -- 500 read timeout
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/23_VOLKSZAEHLER.pm line 110.
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 153, in startInputThread
cmd = self._queuedCmds.pop(0) if len(self._queuedCmds) else input(self.getPrompt()).strip()
EOFError: EOF when reading a line
Traceback (most recent call last):
File "/opt/yowsup-master/yowsup-cli", line 323, in <module>
if not parser.process():
File "/opt/yowsup-master/yowsup-cli", line 227, in process
self.startCmdline()
File "/opt/yowsup-master/yowsup-cli", line 255, in startCmdline
stack.start()
File "/opt/yowsup-master/yowsup/demos/cli/stack.py", line 25, in start
self.stack.loop(timeout = 0.5, discrete = 0.5)
File "/opt/yowsup-master/yowsup/stacks/yowstack.py", line 187, in loop
asyncore.loop(*args, **kwargs)
File "/usr/lib/python2.7/asyncore.py", line 216, in loop
poll_fun(timeout, map)
File "/usr/lib/python2.7/asyncore.py", line 156, in poll
read(obj)
File "/usr/lib/python2.7/asyncore.py", line 87, in read
obj.handle_error()
File "/usr/lib/python2.7/asyncore.py", line 83, in read
obj.handle_read_event()
File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event
self.handle_read()
File "/opt/yowsup-master/yowsup/layers/network/layer.py", line 86, in handle_read
self.receive(data)
File "/opt/yowsup-master/yowsup/layers/network/layer.py", line 94, in receive
self.toUpper(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py", line 28, in receive
self.processReceived()
File "/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py", line 48, in processReceived
self.toUpper(oneMessageData)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/auth/layer_crypt.py", line 63, in receive
self.toUpper(payload)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/coder/layer.py", line 35, in receive
self.toUpper(node)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/logger/layer.py", line 14, in receive
self.toUpper(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/axolotl/layer.py", line 126, in receive
self.toUpper(protocolTreeNode)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 169, in receive
s.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 101, in receive
if not self.processIqRegistry(node):
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 136, in processIqRegistry
successClbk(protocolTreeNode, originalIq)
File "/opt/yowsup-master/yowsup/layers/protocol_iq/layer.py", line 30, in onPong
self.toUpper(ResultIqProtocolEntity.fromProtocolTreeNode(protocolTreeNode))
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 59, in toUpper
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/interface/interface.py", line 98, in receive
self.callbacks[entityType](entity)
File "/opt/yowsup-master/yowsup/demos/cli/layer.py", line 472, in onIq
print(entity)
IOError: [Errno 32] Broken pipe
die yowsup meldung ist ziemlich sicher nur ein folge fehler weil der parent FHEM prozess weg ist.
die meldung davor schaut nach problemem mit json aus. scheinbar ist die gegenstelle nicht erreichbar und das modul kommt mit einem leeren json string nicht zurecht.
am besten ist es im modul das decode innerhalb eines eval zu machen damit fehlerhafte json daten nicht zum abbruch führen.
das sollte der modul autor einbauen.
gruss
andre