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

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

Vorheriges Thema - Nächstes Thema

selfarian

Genau ;) Wäre ja auf Dauer nicht so praktisch, wenn man alle 12 Monate die Rufnummer wechseln müsste :-)
RasPi mit HMLAN, 5x HM-SEC-SC, HM LED16 als Alarmanlagendisplay, HM-TC-IT-WM-W-EU, 4x HM-CC-RT-DN, 1x HM PBU, 1x HM PBI-4

VB90

#226
Gab es nicht vorn einen link,  wo man das prüfen konnte?
Dann kann man ja übers Handy und "für Freunde zahlen" alles abwickeln


Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Cybers

mit dem Empfang habe ich auch noch Probleme. Meistens geht es. Hin und wieder kommt zwar eine Nachricht an und das Reading chatstate wird mit aktueller Zeit aktualisiert, allerdings steht in message kein Text sondern nur :
Außerdem ist mir aufgefallen, daß der Text in chatstate nach einer gewissen Zeit quasi gelöscht wird und durch : ersetzt wird.

Gruß, Sascha
FHEM 6.2 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

justme1968

an alle die mit die mit dem empfang probleme haben: bitte verbose 4 setzen und den log ausschnitt vom fraglichen zeitpunkt posten. wie oben schon geschrieben ist das parsen der ausgaben noch nicht besonders intelligent und funktioniert unter bestimmten randbedingungen wie langsame rechner ganz sicher noch nicht.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

VB90

#229
Ich hätte gern mal ne Frage, für mich zum Verständnis...

Im Modul steht doch grundsätzlich das gleiche drin, wie wir Anfangs von Thread in die 99_myUtils geschrieben haben.
Das Ganze hübsch eingepackt in nen Sack voll Code, damit FHEM damit was anfangen kann.

Grundsätzlich richtig??
Verstehe nämlich immer noch nicht, das ich jetzt nen Dauerping setzen muss, um online zu bleiben. Ist mir zu hoch ;)
Btw. bekomme ich den auch wieder deaktiviert?? :D

Zur Sache:
Der Empfang funktioniert, jedoch bekomme ich die Message nicht in den Readings zu sehen.
Wie bei den anderen auch, steht dort nur ein ":"

Zwei Empfänge, ein Versand, Mein Log Auszug:

2015.06.01 15:21:59.020 4: WhatsApp: parse: CHATSTATE:
State: composing
From: 491525xxxxx@s.whatsapp.net


2015.06.01 15:22:01.042 4: WhatsApp: parse:
[491525xxxxx@s.whatsapp.net(01-06-2015 15:22)]:[1433164919.--25] test1
Message 1433164919.--25: Sent delivered receipt
[connected]:

2015.06.01 15:22:27.260 4: WhatsApp: parse: Iq:
ID: 858
Type: result
from: 491738xxxxx@s.whatsapp.net


2015.06.01 15:25:39.058 3: WhatsApp: sending /message send 491525xxxxx'test2'
2015.06.01 15:25:39.066 4: WhatsApp: parse: [connected]:
2015.06.01 15:25:39.183 4: WhatsApp: parse:
Sent: 1433165139-862
[connected]:

2015.06.01 15:25:50.834 4: WhatsApp: parse: CHATSTATE:
State: composing
From: 491525xxxxx@s.whatsapp.net


2015.06.01 15:25:52.299 4: WhatsApp: parse:
[491525xxxxx@s.whatsapp.net(01-06-2015 15:25)]:[1433165150.--32] test3
Message 1433165150.--32: Sent delivered receipt
[connected]:


Ich habe mal nur am Anfang Beispielhaft einen der Pings drinne gelassen und den Rest aus dem Log gelöscht.
So spannend is das ja auch nicht.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

justme1968

du musst kein ping setzen.

das macht yowsup in der aktuellen version automatisch.

an deinem log ist genau das problem mit dem passen zu sehen. normalerweise kommen die zeilen für die nachricht selber und die darauf folgende bestätigung nacheinander. und es gibt kein problem. in deinem fall kommt beides auf einen schlag direkt aneinander gehängt und die routine ist noch nicht so intelligent das richtig auseinander zu dröseln.

läuft das bei dir auf einem raspberry pi?

bitte ersetz mal in zeile 321} elsif( $data =~ m/\[(.*)@.*\((.*)\)\]:\[(.*)\]\s*(.*)/s ) {

durch die beiden neuen zeilen:} elsif( $data =~ m/\[(.*)@.*\((.*)\)\]:\[([^\]]*)\]\s*(.*)(\nMessage)/s
    || $data =~ m/\[(.*)@.*\((.*)\)\]:\[([^\]]*)\]\s*(.*)/s ) {


damit sollten keine nachrichten mehr verschwinden.

für das problem mit dem : in chatstate bräuchte ich genau so ein log.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

selfarian

Danke, die Änderung hat bei mir (auch) geholfen :-)
RasPi mit HMLAN, 5x HM-SEC-SC, HM LED16 als Alarmanlagendisplay, HM-TC-IT-WM-W-EU, 4x HM-CC-RT-DN, 1x HM PBU, 1x HM PBI-4

VB90

#232
ohne diesen berühmten Ping war ich immer nach ner guten Minute offline...


Bei mir läuft es auf einem Odroid C1, "dezent" leistungsfähiger wie ein RPi.
letzteren hätte ich auch noch da, aber keine weitere Nummer ohne weiteres zum testen zur Verfügung.

Ich geh jetzt mal die Zeile 321 im Modul ändern und fhem neu starten...

Und dann nochmal so ein Log wie oben, einfach mal bischen hin und her?

vb

edit:
Nach den Änderungen habe ich nen Fehler im Log zu stehen, der dort zuvor nicht war. Ansonsten sieht es gut aus und die Messages stehen im Reading.

2015.06.01 16:33:18.473 0: Server shutdown
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 150, in startInputThread
    cmd = self._queuedCmds.pop(0) if len(self._queuedCmds) else input(self.getPrompt()).strip()
EOFError: EOF when reading a line

2015.06.01 16:33:51.737 1: Including fhem.cfg
2015.06.01 16:33:54.285 1: HMLAN_Parse: T_HMLAN1 new condition disconnected
2015.06.01 16:33:54.373 1: HMLAN_Parse: T_HMLAN1 new condition init
2015.06.01 16:34:09.714 1: Including ./log/fhem.save
2015.06.01 16:34:10.021 3: WhatsApp: sending /L
2015.06.01 16:34:10.022 3: WhatsApp: sending /presence available
2015.06.01 16:34:10.025 1: usb create starting
2015.06.01 16:34:10.026 2: WhatsApp: starting yoswup-cli: /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-master/config.example --yowsup
2015.06.01 16:34:10.993 1: usb create end
2015.06.01 16:34:10.999 0: Server started with 117 defined entities (version $Id: fhem.pl 8574 2015-05-14 07:59:32Z rudolfkoenig $, os linux, user fhem, pid 984)
2015.06.01 16:34:11.279 1: HMLAN_Parse: T_HMLAN1 new condition ok
2015.06.01 16:34:11.929 4: WhatsApp: parse: Yowsup Cli client
==================
Type /help for available commands

2015.06.01 16:34:11.931 4: WhatsApp: parse:

2015.06.01 16:34:11.939 4: WhatsApp: parse: [offline]:
2015.06.01 16:34:12.739 4: WhatsApp: parse: Auth: Logged in!

2015.06.01 16:34:12.745 4: WhatsApp: parse: [connected]:[connected]:
2015.06.01 16:34:53.666 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 1171
2015.06.01 16:35:02.926 4: WhatsApp: parse: Iq:
ID: 1
Type: result
from: 4917384xxxx@s.whatsapp.net


2015.06.01 16:35:52.973 4: WhatsApp: parse: Iq:
ID: 2
Type: result
from: 4917384xxxx@s.whatsapp.net


2015.06.01 16:35:54.190 1: Including fhem.cfg
2015.06.01 16:35:54.250 1: telnetPort: Can't open server port at 7072: Address already in use. Exiting.
2015.06.01 16:35:54.339 3: WhatsApp: sending /disconnect
2015.06.01 16:35:54.340 3: WhatsApp: Disconnected
2015.06.01 16:36:04.345 3: WhatsApp: sending /L
2015.06.01 16:36:04.346 3: WhatsApp: sending /presence available
2015.06.01 16:36:04.350 2: WhatsApp: starting yoswup-cli: /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-master/config.example --yowsup
2015.06.01 16:36:05.190 4: WhatsApp: parse: Yowsup Cli client
==================
Type /help for available commands

[offline]:
2015.06.01 16:36:05.631 4: WhatsApp: parse: Auth: Logged in!
2015.06.01 16:36:05.633 4: WhatsApp: parse:

2015.06.01 16:36:05.639 4: WhatsApp: parse: [connected]:
2015.06.01 16:36:05.640 4: WhatsApp: parse: [connected]:
2015.06.01 16:36:25.101 4: WhatsApp: parse: CHATSTATE:
State: composing
From: 491525xxxxx @s.whatsapp.net


2015.06.01 16:36:26.663 4: WhatsApp: parse: [491525xxxxx @s.whatsapp.net(01-06-2015 16:36)]:[1433169385.--88] test6

2015.06.01 16:36:26.664 4: WhatsApp: parse: Message 1433169385.--88: Sent delivered receipt
[connected]:

2015.06.01 16:36:36.336 3: WhatsApp: sending /message send 491525xxxxx 'test7'
2015.06.01 16:36:36.344 4: WhatsApp: parse: [connected]:
2015.06.01 16:36:36.471 4: WhatsApp: parse:
Sent: 1433169396-1
[connected]:
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

JoWiemann

Zitat von: justme1968 am 01 Juni 2015, 14:47:58
wenn ich zwei nachrichten kurz hintereinander sende kommen zwar zwei bestätigungen aber ich weiss nicht welche für welche nachricht ist.

Hallo Andre,

ich glaube das die Demo hier nicht vollständig ist. Ist halt nur eine Demo der Möglichkeiten. Um eine "vernünftige" Fehlerbehandlung durchführen zu können müssten wir wohl die Demo anpassen und dafür reichen meine Python Kenntnisse einfach nicht aus.  :(

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

justme1968

@VB90: der fehler ist nicht schlimm. das ist nur ein timing problem weil yowsup nicht nicht wirklich korrekt beendet wird beim beenden von fhem. das müsste man noch einbauen. ist aber eigentlich unkritisch.

ich bräuchte genau die log zeilen wenn das problem mit dem : im chatstate reading auftritt.

@JoWiemann: wenn wir anfangen etwas zu ändern könnten wir auch das new line problem umgehen.

ich weiss aber nicht ob es den aufwand wert ist. eigentlich finde ich es ganz schon die standard installation zu verwenden. man könnte natürlich das ganze auch wieder zurück geben.... aber python finde ich ziemlich scheusslich und dazu habe ich nicht wirklich lust :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

VB90

Ich hatte, weil beim reinen beenden von FHEM noch mehr Fehler aufgetreten waren, den C1 komplett gebootet.

Mit einem solchen Log kann ich dir nun nach den Änderungen im Moment nicht dienen.
Bisher läuft es, auch wenn ich mehrere Messages dicht nacheinander absetze.
Weiter beobachten.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

JoWiemann

Zitat von: justme1968 am 01 Juni 2015, 17:21:32
@JoWiemann: wenn wir anfangen etwas zu ändern könnten wir auch das new line problem umgehen.

ich weiss aber nicht ob es den aufwand wert ist. eigentlich finde ich es ganz schon die standard installation zu verwenden. man könnte natürlich das ganze auch wieder zurück geben.... aber python finde ich ziemlich scheusslich und dazu habe ich nicht wirklich lust :)

Tja, der Wunsch von tgalal ist: Explore the demos yourself ;) Feel free to implement and send me more demos to include in yowsup-cli

und Python ist eher was für meine Kopfschmerzen  ;) Ich wird mal im yowsup Forum die Frage nach einer Fehlerbehandlung im commandline Client posten. Vielleicht erbarmt sich ja jemand.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

deluxe41

Ich verfolge das Thema der ersten Stunde ;)

Aktuell kann ich Nachrichten und Bilder meiner Webcam verschicken wenn die Tür unerlaubter Weise geöffnet wurde, das ist Schonmal super.

Problem ist nur , dass ich keine Nachrichten empfangen kann und Fhem gerne mal abstürzt wenn ich yowsup laufen lasse...leider hat es auch meine Log-Datei zerschossen...

Hat jemand das selbe Problem ?




Sent from my iPhone using Tapatalk
Fritzbox 7490 ( USV + Fall Back ), einige HM komponenten,ESPs

pipp37

#238
Hallo.
Zuerst mal ein LOB für die Einbindung.  :)  Ich beobachte diesen Thread auch schon eine Zeit lang und habe nun das Modul installiert.

Das System läuft unter Solaris 11 und auch der yowsup Client konnte mit Hilfe der csw Ports von Python zum Laufen überredet werden.
Am WE wurde ein paar SUBs in die myutils  eingebaut, mit deren Hilfe ich folgendes machen.

  • Holen der aktuellen Bilder aller Überwachungskameras
  • Status des Garagentores abfragen(ok) und ggf. öffnen und schließen /in Arbeit)

Ich sende an den WhatsApp FHEM Befehle und in der myutils.pm werden dann die Aktionen ausgelöst. Bei mir geht es also in beide Richtungen.
Befehlsliste:
* aktuelle Cam Bilder holen
get balkon
get carport
get ....
get alle

* Garagentor
garage stat
garage zu
garage auf

* Informationen für die Befehle
info



Auch war öfter mal WhatsApp offline darum wurde ein at definiert, welcher alle 2 Minuten den Status checkt und ggf. einen Reconnect auslöst.

list at_WA_check
Internals:
   COMMAND    IF (([WhatsApp] eq "Disconnected") || ([WhatsApp] eq "offline")) (set WhatsApp reconnect)
   DEF        +*00:02:00 IF (([WhatsApp] eq "Disconnected") || ([WhatsApp] eq "offline")) (set WhatsApp reconnect)
   NAME       at_WhatsApp_reconnect
   NR         530
   NTM        09:52:30
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 09:52:30
   TIMESPEC   00:02:00
   TRIGGERTIME 1433231550.88346
   TRIGGERTIME_FMT 2015-06-02 09:52:30
   TYPE       at
   Readings:
     2015-06-02 09:50:30   state           Next: 09:52:30
Attributes:
   room       WhatsApp




Das NEWLINE Problem beim send habe ich durch Änderung einer Datei des yowsup Clients gelöst.
Ich schreibe also  in Fhem z.B. 
set 436641234567 send Das ist ein Test###neue Zeile

Dann ist  auch ein Zeilenumbruch möglich.

https://github.com/tgalal/yowsup/issues/539

Zitat\n  im Text bei send - change
Newline
with
def setBody(self, body):
self.body = body.replace("###","\n")
in yowsup/layers/protocol_messages/protocolentities/message_text.py



Beim Neustart von FHEM ist zwar mein Whatsapp Client disconnected aber duch den at Eintrag in Fhem ist das in 2 Minuten behoben.

Ich hoffe sehr, das dieses Modul auch eingecheckt wird.
Ein attr Name für die Whatsapp erlaubten Sender Telefonnumern wäre ein Wunsch.


Ich lasse den Client nun immer laufen und werde meine Erfahrungen gerne berichten.
Gruss





Vmware-ESX-VM-Ubuntu 16.04 Docker Main-FHEM -> Raspberry Pi-B ser2net
HMLAN mit HomeMatic, Busware SCC433 stacked SCC868 (culfw), Jeelink, MAX Heizkörperthermostate, Enigma2 (Vudo2/DM800SE), Philips 55" Ambilight PHTV - WMBUS EnergyCam+Engelmann FAW, Intertechno-Komponenten, Ubiquiti mPower

justme1968

@deluxe41: wenn irgendetwas nicht geht bitte log mit verbose 4 posten und am besten auch stdout und stderr

@pipp37: hilft ein set <yowsup> raw /ping gegen das offline problem? wenn ja kann ich den ping einfach in den start mit einbauen.  verwendest du die neueste yowsupp version? es gab vor kurzem einen fix in zusammenhang mit dem ping.

ich mache den schon vorhandenen internen timer konfigurierbar. dann sollte das externe at nicht mehr nötig sein.

für die erlaubten sender gibt es das acceptFrom attribut
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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