DoorPi-Projekt

Begonnen von Syntaxterror, 25 Februar 2016, 18:39:59

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Zitatich kann hier nur schreiben wie es war.

Voll daneben.

Man kann hier durchaus einen ordentlichen Test abliefern, mit Logauszügen und klaren Fehlerbeschreibungen. Sonst gibt es keine Hilfe.

pah


meddie

Eigentlich wollte ich nur das Modul testen, und wollte hier nur bescheid geben dass bei mir ein Problem aufgetreten ist.

Aber ich kann auch gerne Logs zukommen lassen.
Hier ein Auszug aus der Fhem Log
malformed JSON string, neither array, object, number, string or atom, at character offset 17 (before "<head>\n            ...") at ./FHEM/70_DoorPi.pm line 418.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, 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 127, 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 469, in onIq
    print(entity)
IOError: [Errno 32] Broken pipe


ZitatKann so nicht stimmen. Ich war eine Woch ein Stockholm, DoorPi-Prototyp AUS und FHEM lief wie eine Eins.
Und hier haben wir glaube ich an einander vorbei geredet. Solange der PI mit Doorpi aus ist läuft FHEM bei mir auch, aber sobald dieser boot, schmiert FHEM weg, und das obige Log wird generiert.

Ich hoffe Du kannst damit was anfangen
Gruß Eddie

Prof. Dr. Peter Henning

Na, da würde ich mal die Python-Installation auf dem DoorPi-Rechner überprüfen.

LG

pah

Wal

Hallo Peter,
da ich immer die falschen Dateinamen der Record's angezeigt bekomme und die Dateinamen der Bilder richtig waren, habe ich in Zeile 661 ein "my" vor $record gesetzt.
Kaum macht man es richtig, funktioniert es auch !

Gruß
Walter

Prof. Dr. Peter Henning

Öh - das kann so nicht funktionieren. Die Dateinamen der Recordings sind ja aus dem DoorPi-Status entnommen.

Die Dateinamen der Snapshots können abweichen (wegen leicht unterschiedlicher Zeiten), die werden also automatisch in der Liste gesucht.

Welche Dateinamen wurden für die Recordings angezeigt, und welche wären richtig ? Bei mir stimmt das nämlich immer.

LG

pah

Wal

2016-05-28_09-12-09.wav wurde angezeigt 2016-05-28_09-12-04.wav war richtig.
Als Snapshot wurde 2016-05-28_09-12-04.jpg angezeigt, was richtig war.
Habe noch mehrmals getestet, für das das die Änderung nicht richtig ist, funktioniert sie aber ganz gut. :P
Nur der letzte Ruf bekomme ich erst angezeigt, wenn ein neuer Ruf eingeht.
Kaum macht man es richtig, funktioniert es auch !

Gruß
Walter

Prof. Dr. Peter Henning

Wir sind aber nicht beim experimentellen Programmieren ...

Welcher Link auf die Snapshot-Datei wird angezeigt ohne diese Änderung ? Einfach rückgängi gmachen und mit reload 80_DoorPi.om neu laden.

Nochmal: der Name der Bilddatei stammt von DoorPi, kann also kein anderer sein als der Richtige.

LG

pah


Wal

#202
Ich glaube wir reden einander vorbei, die Snapshot-Datei ist für mich das Bild und der Link ist wie du sagst immer richtig.
Die Record-Datei ist für mich die Sprach-Datei und der Link ist mit der orginalen PM-Datei wie oben geschrieben.
Weiterer Record-Link ohne Änderungen ist :
fhem -> 2016-05-29_02-34-33.wav  DoorPi-Dateiname -> 2016-05-29_02-34-27.wav

Tante Edit:
Rutscht der Ruf von der ersten Stelle an die zweite Stelle in fhem, stimmt der Record-Link auf einmal.
aus 2016-05-29_02-34-33.wav wird 2016-05-29_02-34-27.wav

Nochmal Edit:
Hatte jetzt hinbekommen das es an erster Stelle auch funktioniert hat und festgestellt, das das Problem nur vorhanden ist wenn als Result "ended" angezeigt wird.
Kaum macht man es richtig, funktioniert es auch !

Gruß
Walter

Prof. Dr. Peter Henning

#203
Sorry, Deine ersten Beschreibungen waren etwas schwer verständlich.

Damit haben wir die Quelle gefunden. Hier liegt tatsächlich ein Bug in DoorPi vor, für den ich einen Workaround in der gegenwärtigen Version von 70_DoorPi.pm habe (steht ja auch so im Kommentar darüber).

DoorPi verwendet als Dateinamen für das Recording z.B. 2016-05-29_06-42-31.wav. 
In der internen Datenbank ist aber vermerkt: 2016-05-29_06-42-33.wav

oder verwendet 2016-05-28_12-53-35.wav
hat aber in der Datenbank 2016-05-28_12-53-43.wav

Die späteren Zeiten, die DoorPi in seine Datenbank als Dateiname des Recordings einträgt, sind also falsch.

In 70_DoorPi.pm higegen stimmte nicht, dass dies nur bei "call ended" der Fall ist.

Man kann sich davon sehr gut selbst überzeugen, indem man die Recordings in dasselbe Verzeichnis wie die Snapshots schreiben lässt und dann Dateinamen in

<doorpi-url>/status?module=history_event und
<doorpi-url>/status?module=history_snapshot

vergleicht. Die Meldung an motom0001 hatte ich aufgeschoben, sollte ich jetzt mal machen.

LG

pah

meddie

Hallo pah,

habe am Wochenende das gesamte Ubuntu upgedatet,  und auch python.
Sobald ich aber das define absetze und ein DoorPi Modul anlege stürzt FHEM sofort ab. Mit der gleichen Meldung dich ich schon gepostet habe. Hast Du noch ein Tipp was ich machen kann.
Alle anderen Sachen funktionieren ja. Z.B Whatsapp dieses Modul nutzt ja auch Python.

Danke Gruß Eddie

Prof. Dr. Peter Henning

#205
Ich habe eine Version eingecheckt, bei der ein solcher Absturz nicht mehr vorkommen sollte.

LG

pah

HoTi

#206
Auch auf die gefahr hin ausgelacht zu werden.

Was genau fehlt mir da?

2016.06.07 09:44:44 1: reload: Error:Modul 70_DoorPi deactivated:
Can't locate Test/JSON.pm in @INC (you may need to install the Test::JSON module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/70_DoorPi.pm line 37, <$fh> line 2220.
BEGIN failed--compilation aborted at ./FHEM/70_DoorPi.pm line 37, <$fh> line 2220.

2016.06.07 09:44:44 0: Can't locate Test/JSON.pm in @INC (you may need to install the Test::JSON module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/70_DoorPi.pm line 37, <$fh> line 2220.
BEGIN failed--compilation aborted at ./FHEM/70_DoorPi.pm line 37, <$fh> line 2220.


*edit*
Also das mir die Test:JSON fehlt habe ich da schon rausgelesen. Aber ich habe nicht gefunden wie ich diese Installiere :-( In der ComRef steht leider auch nur das dieses benötigt wird.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Prof. Dr. Peter Henning

cpan Test::JSON

LG

pah

HoTi

Danke pah,

noch eine Frage. Wie sieht den die calltarget aus? Ist das wirklich eine Datei ohne Endung?

Und steht da zum Beispiel nur das drin:


**610
0173******
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Prof. Dr. Peter Henning