Absturz von FHEM durch Volkzähler und oder Whatsapp yowsup.pm

Begonnen von Califax, 22 März 2016, 18:39:39

Vorheriges Thema - Nächstes Thema

Califax

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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968