[32_yowsup.pm] Whatsapp versenden (Mit Handy- oder Festnetznummer)

Begonnen von AHA1805, 01 Oktober 2014, 21:58:55

Vorheriges Thema - Nächstes Thema

marvin78

Und siehe da, eine neuere Version von yowsup selbst, löst das Problem. Es liegt NICHT am Modul:

yowsup-cli v2.0.12
Using yowsup v2.3.185


ChrisK

Zitat von: marvin78 am 03 September 2015, 13:41:38
Und siehe da, eine neuere Version von yowsup selbst, löst das Problem. Es liegt NICHT am Modul:

yowsup-cli v2.0.12
Using yowsup v2.3.185

Ich erlaube mir mal eine blöde Frage, aber als relativer Linux-Neuling muss ich sie stellen ;)

Wie kriege ich ein Update von yowsup hin?
Gehe ich wie im Wiki beschrieben, wie bei der ursprünglichen Installation vor (hier müsste ich meine config sehr wahrscheinlich vorher sichern) oder gibt es einen einfacheren Weg?
Hier habe ich gelesen, dass es über Git Pull geht, aber damit kann ich leider noch weniger anfangen.

Brockmann

Entscheidend sind diese beiden Schritte:

sudo wget https://github.com/tgalal/yowsup/archive/master.zip
sudo unzip master.zip


Anschließend die Rechte der entpackten Dateien überprüfen, die müssen ggf. angepasst werden.
Die cfg-Datei würde ich in einer separaten Datei oder besser noch in einem anderen Pfad speichern. Kann man ja beim Aufruf entsprechend anpassen. Dann hat man bei Updates keinen Ärger damit. Ich habe die cfg-Datei bei mir nach /opt/fhem kopiert und der Aufruf (Attribut cmd) lautet dann
/opt/yowsup-master/yowsup-cli demos -c  /opt/fhem/yowsup.cfg --yowsup

So kann ich jederzeit ein Update "drüberbügeln" ohne noch was machen zu müssen.

VB90

Sorry,  das ich etwas unklar war.
Neue/neuere Version vom yowsup habe ich auf meinen PC runterladen und mittels winscp in den richtigen Ordner entpackt.
Seitdem ist bei mir wieder alles im Lot.
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

ChrisK

Danke Dir!
Zitat von: Brockmann am 03 September 2015, 14:26:16
Entscheidend sind diese beiden Schritte:
...
Die cfg-Datei würde ich in einer separaten Datei oder besser noch in einem anderen Pfad speichern.
Habe ich beides gemacht. Der Hinweis mit dem wegschieben der config-Datei war auch sehr gut!

Nach einem sudo reboot ist zwar alles wieder da (und läuft vor allem noch ;) ), aber ich kriege immernoch das hier angezeigt:
ich@htpc:/opt$ yowsup-cli version
yowsup-cli v2.0.9
Using yowsup v2.3.124

Habe ich irgendwas vergessen?

Brockmann

Zitat von: ChrisK am 03 September 2015, 15:06:35
Habe ich irgendwas vergessen?
Hattest Du die alte master.zip eventuell nicht gelöscht? Dann würde beim erneuten Herunterladen eine neue Datei angelegt master1.zip oder so. Dann müsstest Du selbstverständlich die entpacken, damit Du die aktuelle Version bekommst. Ist jetzt aber nur ein Schuss ins Blaue...

ChrisK

Zitat von: Brockmann am 03 September 2015, 15:50:39
Hattest Du die alte master.zip eventuell nicht gelöscht? Dann würde beim erneuten Herunterladen eine neue Datei angelegt master1.zip oder so. Dann müsstest Du selbstverständlich die entpacken, damit Du die aktuelle Version bekommst. Ist jetzt aber nur ein Schuss ins Blaue...
Der Schuss war sehr gut, nur leider nicht komplett getroffen.
"Sehr gut", weil ich genau das zunächst gemacht hab. Die master.zip wurde als master.zip.1 runtergeladen. Das ist mir aber vorhin schon aufgefallen und ich habe master.zip und master.zip.1 gelöscht, neu runtergeladen und neu entpackt. In der README.md steht auch das Update vom 01.08. für Version 2.3.185 drin. Die Dateien sind also aktuell.

Muss ich vielleicht yowsup stoppen und neu starten? Durch einen reboot sollte das doch auch passieren, oder?

Brockmann

Zitat von: ChrisK am 03 September 2015, 15:56:43
Muss ich vielleicht yowsup stoppen und neu starten? Durch einen reboot sollte das doch auch passieren, oder?
Das ist kein Dienst in dem Sinne, den Du stoppen und starten könntest. Eigentlich bist Du in dem Moment aktuell, wo Du die alten Dateien ersetzt. Aber nach einem Reboot solltest Du auf der sicheren Seite sein.
Aus der Ferne schwer zu sagen, was da schief läuft. Führ mal das yowsup-cli version mit dem Pfad aus, der im cmd-Attribut steht. Eventuell hast Du jetzt zwei Versionen an verschiedenen Stellen drauf.

ChrisK

Zitat von: Brockmann am 03 September 2015, 16:05:36
Führ mal das yowsup-cli version mit dem Pfad aus, der im cmd-Attribut steht. Eventuell hast Du jetzt zwei Versionen an verschiedenen Stellen drauf.
Ok, genau das war's.
Wenn ich in der Konsole nur "yowsup-cli version" ausführe, kommt die alte version mit "/opt/yowsup-master/yowsup-cli version" (das was im Attribut in fhem steht), dann kommt die neue Version. D.h. dann ja, dass die neue Version von fhem genutzt wird, also alles jut, danke!

Jetzt muss ich mal beobachten, ob sich dieses Problem mit der neuen Version erledigt hat.

marvin78

#594
Könnt ihr denn mit der neuen yowsup Version noch Nachrichten empfangen? Bei mir erfolgt nach Senden einer Nachricht an yowsup sofort ein disconnect und folgendes steht im Log

AttributeError: 'NoneType' object has no attribute 'getData'
entity.setBody(node.getChild("body").getData())
File "/opt/yowsup-master/yowsup/layers/protocol_messages/protocolentities/message_text.py", line 38, in fromProtocolTreeNode
entity = TextMessageProtocolEntity.fromProtocolTreeNode(node)
File "/opt/yowsup-master/yowsup/layers/protocol_messages/layer.py", line 20, in recvMessageStanza recv(node)


File "/opt/yowsup-master/yowsup/layers/__init__.py", line 101, in receive s.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 160, in receive
self.__upper.receive(data) File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper self.toUpper(data)
File "/opt/yowsup-master/yowsup/layers/logger/layer.py", line 14, in receive self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper self.toUpper(node)
File "/opt/yowsup-master/yowsup/layers/coder/layer.py", line 35, in receive self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper self.toUpper(payload)
File "/opt/yowsup-master/yowsup/layers/auth/layer_crypt.py", line 63, in receive self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper self.toUpper(oneMessageData)
File "/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py", line 48, in processReceived self.processReceived()
File "/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py", line 28, in receive self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper self.toUpper(data)
File "/opt/yowsup-master/yowsup/layers/network/layer.py", line 80, in receive self.receive(data)
File "/opt/yowsup-master/yowsup/layers/network/layer.py", line 73, in handle_read self.handle_read()
File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event obj.handle_read_event()
File "/usr/lib/python2.7/asyncore.py", line 83, in read obj.handle_error()
File "/usr/lib/python2.7/asyncore.py", line 87, in read read(obj)
File "/usr/lib/python2.7/asyncore.py", line 156, in poll poll_fun(timeout, map)
File "/usr/lib/python2.7/asyncore.py", line 216, in loop asyncore.loop(*args, **kwargs)
File "/opt/yowsup-master/yowsup/stacks/yowstack.py", line 167, in loop self.stack.loop(timeout = 0.5, discrete = 0.5)
File "/opt/yowsup-master/yowsup/demos/cli/stack.py", line 25, in start stack.start()
File "/opt/yowsup-master/yowsup-cli", line 259, in startCmdline self.startCmdline()
File "/opt/yowsup-master/yowsup-cli", line 231, in process if not parser.process():
File "/opt/yowsup-master/yowsup-cli", line 327, in <module> Traceback (most recent call last):

ChrisK

Zitat von: marvin78 am 03 September 2015, 20:18:51
Könnt ihr denn mit der neuen yowsup Version noch Nachrichten empfangen?
Klappt bei mir nach dem Update problemlos.
Sorry, aber ich kann Dir mit der Fehlermeldung nicht wirklich helfen.

Carsten

Zitat von: marvin78 am 03 September 2015, 20:18:51
Könnt ihr denn mit der neuen yowsup Version noch Nachrichten empfangen? Bei mir erfolgt nach Senden einer Nachricht an yowsup sofort ein disconnect und folgendes steht im Log
Das konnte ich bei mir mit dem Parameter --moxie hinter dem cmd beheben. Ich weiß aber nur ungefähr, was der macht. Daher auf eigene Gefahr...

marvin78

#597
Ich dachte auch, ich könnte es damit lösen. Mal abgesehen davon, dass der Parameter aber deprecated ist, kommt ein anderer Fehler, der offenbar mit einer sqllite Datenbank zu tun hat. Interessanterweise kommen weniger Fehler direkt von der CLI aus...

sqlite3.OperationalError: attempt to write a readonly database
self.dbConn.cursor().execute(q, (recipientId,))
File "/opt/yowsup-master/yowsup/layers/axolotl/store/sqlite/liteidentitykeystore.py", line 52, in saveIdentity
self.identityKeyStore.saveIdentity(recepientId, identityKey)
File "/opt/yowsup-master/yowsup/layers/axolotl/store/sqlite/liteaxolotlstore.py", line 26, in saveIdentity
self.identityKeyStore.saveIdentity(self.recipientId, theirIdentityKey)
File "/usr/local/lib/python2.7/dist-packages/axolotl/sessionbuilder.py", line 47, in process
unsignedPreKeyId = self.sessionBuilder.process(sessionRecord, ciphertext)
File "/usr/local/lib/python2.7/dist-packages/axolotl/sessioncipher.py", line 91, in decryptPkmsg
plaintext = sessionCipher.decryptPkmsg(preKeyWhisperMessage)
File "/opt/yowsup-master/yowsup/layers/axolotl/layer.py", line 239, in handlePreKeyWhisperMessage
self.handlePreKeyWhisperMessage(node)
File "/opt/yowsup-master/yowsup/layers/axolotl/layer.py", line 208, in handleEncMessage
self.handleEncMessage(protocolTreeNode)
File "/opt/yowsup-master/yowsup/layers/axolotl/layer.py", line 125, in onMessage
self.onMessage(protocolTreeNode) File "/opt/yowsup-master/yowsup/layers/axolotl/layer.py", line 103, in receive
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper
self.toUpper(data)
File "/opt/yowsup-master/yowsup/layers/logger/layer.py", line 14, in receive
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper
self.toUpper(node)
File "/opt/yowsup-master/yowsup/layers/coder/layer.py", line 35, in receive
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper
self.toUpper(payload)
File "/opt/yowsup-master/yowsup/layers/auth/layer_crypt.py", line 63, in receive
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper
self.toUpper(oneMessageData)
File "/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py", line 48, in processReceived
self.processReceived()
File "/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py", line 28, in receive
self.__upper.receive(data)
File "/opt/yowsup-master/yowsup/layers/__init__.py", line 55, in toUpper
self.toUpper(data)
File "/opt/yowsup-master/yowsup/layers/network/layer.py", line 80, in receive
self.receive(data)
File "/opt/yowsup-master/yowsup/layers/network/layer.py", line 73, in handle_read
self.handle_read()
File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event
obj.handle_read_event()
File "/usr/lib/python2.7/asyncore.py", line 83, in read
obj.handle_error()
File "/usr/lib/python2.7/asyncore.py", line 87, in read
read(obj)
File "/usr/lib/python2.7/asyncore.py", line 156, in poll
poll_fun(timeout, map)
File "/usr/lib/python2.7/asyncore.py", line 216, in loop
asyncore.loop(*args, **kwargs)
File "/opt/yowsup-master/yowsup/stacks/yowstack.py", line 167, in loop
self.stack.loop(timeout = 0.5, discrete = 0.5)
File "/opt/yowsup-master/yowsup/demos/cli/stack.py", line 25, in start
stack.start()
File "/opt/yowsup-master/yowsup-cli", line 259, in startCmdline
self.startCmdline()
File "/opt/yowsup-master/yowsup-cli", line 231, in process
if not parser.process():
File "/opt/yowsup-master/yowsup-cli", line 327, in <module>
Traceback (most recent call last):
WARNING:axolotl.sessionbuilder:We've already setup a session for this V3 message, letting bundled message fall through...
Auf der Konsole in der CLI hingegen kommt nur:

[connected]:WARNING:axolotl.sessionbuilder:We've already setup a session for this V3 message, letting bundled message fall through...
[@s.whatsapp.net(04-09-2015 07:57)]:[o3bmoYND+1KI22]         Test
Message o3bmoYND+1KI22: Sent delivered receipt


Die Nachricht wird bestätigt. Danach fliegt man aber aus der CLI

EDIT: Problem gelöst. Die sql-lite DB im .yosup Ordner hatte tatsächlich einen weg. DB gelöscht und alles funktioniert wieder

Carsten

Funktionierts denn bei dir jetzt auch ohne --moxie?
DB löschen hatte ich zwischenzeitlich auch versucht. Wurde bei mir dann aber gar nicht neu angelegt und der Fehler kam unverändert.
Ich hatte allerdings auch nicht so viele sql-Fehler, sondern hauptsächlich diese Nonetype has no Attribute getData.

Hab dann erfolglos auf den dev-Branch gewechselt und mit dem moxie-Parameter gings dann plötzlich. Die deprecated-Meldung hatte ich auch vorher mal. Im Develop allerdings scheinbar nicht.

Das yowsup verändert sich irgendwie so schnell, dass die Lösungen in den issues 2 Wochen später schon nicht mehr gelten.

marvin78

--moxie habe ich weiter in Verwendung. Ohne geht es für mich nicht. Der Parameter sorgt dafür dass yowsup mit der Whatsapp Verschlüsselung arbeitet, die offenbar nur experimentell ist und deshalb auch nicht von allen WhatsApp Clients verwendet wird. Diese Option ist in der nächsten Version von yowsup ein opt-out und kein opt-in mehr. Deshalb ist --moxie deprecated.