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

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

Vorheriges Thema - Nächstes Thema

justme1968

wo liegt dein config file wirklich? passt das $HOME was gesetzt wird zu deiner konfiguration? hast du mit der gleichen kommando zeile getestet die im log steht und als gleicher user unter demfhem läuft?

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

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

AitschPi

Im Wiki steht, dass "voice" bei der Registrierung im Falle des Fehlers von "sms" auch eher nicht funktioniert. Ich habe es dennoch getestet, da SMS nicht wollte: Prompt erhielt ich einen Anruf von whatsapp mit dem Code.

Hinweis: Die Ansage ist natürlich auf englisch - sie wird aber unendlich wiederholt. Man hat also Zeit, sich an die Stimme und Aussprache zu gewöhnen und sicherheitshalber noch einmal die Nummern zu überprüfen, die man sich notiert hat.
Echte Männer essen keinen Honig, sie kauen Bienen.

TWART016

Hallo,

laut Doku kann man mit dem Befehl set <device> send <text> sich die Nummer sparen. Wenn ich aber den Code eingebe, kommt nur "Please define iPhone first". Einen Alias mit dem Namen habe ich gesetzt.

Anbei mein Code für das Gerät:

define 491****** yowsup 491******
attr 491****** userattr allowedCommands commandPrefix
attr 491****** alias iPhone
.

Wo muss der Name "iPhone" sonst noch eingefügt werden? Oder was muss sonst noch konfiguriert werden?

Ansonsten funktioniert alles mit dem Modul, auch das Senden an die Nummer.


Gruß
TWART016

justme1968

du musst das device iPhone nennen. der alias nützt in diesem fall nichts. der ist nur zur anzeige.

mit rename kannst du das device umbenennen.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

TWART016

Hallo,

ich habe das Modul "Weather" im Einsatz.

1) Möchte ich die aktuelle Temperatur per Whatsapp senden, also die Frage, wie man Readings versendet?

2) Wenn ich "temp" an den FHEM Server sende, soll automatisch die Antwort mit den Temperaturangabe zurückkommen.


Gruß
TWART016

justme1968

1) in dem du den text mit hilfe von ReadingsVal zusammen baust. beispiele gibt es weiter oben.

2) in dem du entweder cmdalias verwendest und commandPrefix oder mit einem notify. fürs notify gibt es auch weiter oben beispiele.

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

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

TWART016

Hallo Andre,

danke für den Hinweis. Ich konnte es wie folgt lösen.

Zitat von: justme1968 am 26 Juli 2015, 21:29:06
1) in dem du den text mit hilfe von ReadingsVal zusammen baust. beispiele gibt es weiter oben.

{ fhem( "set iPhone send Temperatur: ". ReadingsVal("Wetter","temperature","") ." C°" ) }
Wetter ist der Objektname für das Modul "Weather". Mit ReadingsVal wird der Wert "temperatur" des Moduls geprüft.

Zitat von: justme1968 am 26 Juli 2015, 21:29:06
2) in dem du entweder cmdalias verwendest und commandPrefix oder mit einem notify. fürs notify gibt es auch weiter oben beispiele.


define WA_Wetter3 notify iPhone {if(ReadingsVal("iPhone","message","") eq "Temp") {fhem ("set  iPhone send Temperatur ". ReadingsVal("Wetter","temperature","") ." C°")} }


Problem hierbei ist jedoch, dass die Nachricht 2-3 mal gesendet wird. Gibt es dazu eine Lösung?


Gruß
TWART016

justme1968

dein notify ist nicht genau genug. es triggert auf alle events. du brauchst etwas in der art:define WA_Wetter3 notify iPhone:message.* ....

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

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

TWART016

Hi Andre,

Zitat von: justme1968 am 26 Juli 2015, 23:13:29
dein notify ist nicht genau genug. es triggert auf alle events. du brauchst etwas in der art:define WA_Wetter3 notify iPhone:message.* ....

Danke. Das ist die Lösung:


define Wetter notify iPhone:message.* {if(ReadingsVal("iPhone","message","") eq "Temp") {fhem ("set iPhone send Temperatur ". ReadingsVal("Wetter","temperature","") ." C°")} }



Gruß
TWART016

nettiger

Hallo zusammen,

ich habe hier auch noch so meine Probleme mit einem Notify.

Ich möchte, dass FHEM mir antwortet, wenn ich "test" an ihn sende.
Das klappt auch, aber nur genau einmal :-( wenn ich in der Config "test1" eintrage antortet er mir genau einmal auf "test1". Egal ob ich z.b. nur wirre zeichen in einer message sende und dann nochmal "test1".

im Reading des WA devices werden die messages korrekt mit Zeitstempel angezeigt...werden also empfangen.

An was liegt es?

hier meine def des devices und des notifys

define Handy_Jens yowsup 4917xxxxxxx
attr Handy_Jens userattr allowedCommands commandPrefix
attr Handy_Jens event-on-change-reading message
attr Handy_Jens room yowsup


define WA_Hallo_Jens notify Handy_Jens:message.* {if(ReadingsVal("Handy_Jens","message","") eq "test1") {fhem ("set Handy_Jens send Hallo Jens") }}

Danke und Gruß
Jens

justme1968

wenn du event-on-change-reading so setzt gibt es ein event nur wenn sich der wert von message ändert. wenn du mehr mehrmals test1 sendest gibt es also nur ein event.

event-on-change-reading macht bei yowsup eigentlich gar keinen sinn.

wenn das nicht hilft schau mal im event monitor was dort ankommt.

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

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

nettiger

SUUUUUPER,

Danke das wars gewesen.

Funktioniert nun perfekt.

Danke nochmals
Gruß
Jes

nettiger

Hallo zusammen,

wohl doch noch nicht so :-(

sende ich "test1"  bekomme ich die message von Rolladen Sommer gesendet. Der Dummy Schalter wird nicht umgeschaltet.
sende ich "Rolladen" bekomme ich die richtige message gesendet und der Dummy Schalter wird geschaltet.

Ich glaube ich habe hier einen generellen Denkfehler :-(

hier der Code:


define WA_Hallo notify Handy_Jens:message.* {if(ReadingsVal("Handy_Jens","message","") eq "test1") {fhem ("set Handy_Jens send Hallo Jens") }}


define WA_Rolladen_SWS notify Handy_Jens:message.* {if(ReadingsVal("Handy_Jens","message","") eq "Rolladen") {fhem ("set Rolladen_Sommer_Winter off") }{fhem ("set Handy_Jens send Rolladen in Sommermodus geschaltet")}}


Hier das Log:

2015.07.27 15:09:28 5: Triggering Handy_Jens (1 changes)
2015.07.27 15:09:28 5: Notify loop for Handy_Jens chatstate: composing
2015.07.27 15:09:28 4: WhatsApp: parse:

2015.07.27 15:09:29 4: WhatsApp: parse:

2015.07.27 15:09:29 4: WhatsApp: parse: [4917xxxxxxx@s.whatsapp.net(27-07-2015 15:09)]:[1437997243-95] test1

2015.07.27 15:09:29 5: Triggering Handy_Jens (1 changes)
2015.07.27 15:09:29 5: Notify loop for Handy_Jens message: test1

2015.07.27 15:09:29 5: Triggering WA_Hallo
2015.07.27 15:09:29 4: WA_Hallo exec {if(ReadingsVal("Handy_Jens","message","") eq "test1") {fhem ("set Handy_Jens send Hallo Jens") }}
2015.07.27 15:09:29 5: Cmd: >{if(ReadingsVal("Handy_Jens","message","") eq "test1") {fhem ("set Handy_Jens send Hallo Jens") }}<
2015.07.27 15:09:29 5: Triggering WA_Rolladen_SWS
2015.07.27 15:09:29 4: WA_Rolladen_SWS exec {if(ReadingsVal("Handy_Jens","message","") eq "Rolladen") {fhem ("set Rolladen_Sommer_Winter off") }{fhem ("set Handy_Jens send Rolladen in Sommermodus geschaltet")}}
2015.07.27 15:09:29 5: Cmd: >{if(ReadingsVal("Handy_Jens","message","") eq "Rolladen") {fhem ("set Rolladen_Sommer_Winter off") }{fhem ("set Handy_Jens send Rolladen in Sommermodus geschaltet")}}<
2015.07.27 15:09:29 5: Cmd: >set Handy_Jens send Rolladen in Sommermodus geschaltet<
2015.07.27 15:09:29 5: Triggering Handy_Jens (2 changes)
2015.07.27 15:09:29 3: WhatsApp: sending /message send 4917xxxxxxx 'Rolladen in Sommermodus geschaltet'
2015.07.27 15:09:29 5: Triggering Handy_Jens (1 changes)
2015.07.27 15:09:29 5: Notify loop for Handy_Jens chatstate: received
2015.07.27 15:09:29 4: WhatsApp: parse: Message 1437997243-95: Sent delivered receipt
[connected]:
[connected]:
2015.07.27 15:09:29 4: WhatsApp: parse:

2015.07.27 15:09:29 4: WhatsApp: parse: Sent: 1438002569-14
[connected]:
2015.07.27 15:09:53 5: Triggering Handy_Jens (1 changes)
2015.07.27 15:09:53 5: Notify loop for Handy_Jens message: Rolladen
2015.07.27 15:09:53 5: Triggering WA_Hallo
2015.07.27 15:09:53 4: WA_Hallo exec {if(ReadingsVal("Handy_Jens","message","") eq "test1") {fhem ("set Handy_Jens send Hallo Jens") }}
2015.07.27 15:09:53 5: Cmd: >{if(ReadingsVal("Handy_Jens","message","") eq "test1") {fhem ("set Handy_Jens send Hallo Jens") }}<
2015.07.27 15:09:53 5: Triggering WA_Rolladen_SWS
2015.07.27 15:09:53 4: WA_Rolladen_SWS exec {if(ReadingsVal("Handy_Jens","message","") eq "Rolladen") {fhem ("set Rolladen_Sommer_Winter off") }{fhem ("set Handy_Jens send Rolladen in Sommermodus geschaltet")}}
2015.07.27 15:09:53 5: Cmd: >{if(ReadingsVal("Handy_Jens","message","") eq "Rolladen") {fhem ("set Rolladen_Sommer_Winter off") }{fhem ("set Handy_Jens send Rolladen in Sommermodus geschaltet")}}<
2015.07.27 15:09:53 5: Cmd: >set Rolladen_Sommer_Winter off<
2015.07.27 15:09:53 4: dummy set Rolladen_Sommer_Winter off
2015.07.27 15:09:53 5: Triggering Rolladen_Sommer_Winter (1 changes)
2015.07.27 15:09:53 5: Notify loop for Rolladen_Sommer_Winter Sommer
2015.07.27 15:09:53 5: Cmd: >set Handy_Jens send Rolladen in Sommermodus geschaltet<
2015.07.27 15:09:53 5: Triggering Handy_Jens (2 changes)
2015.07.27 15:09:53 3: WhatsApp: sending /message send 4917641584949 'Rolladen in Sommermodus geschaltet'
2015.07.27 15:09:53 5: Triggering Handy_Jens (1 changes)
2015.07.27 15:09:53 5: Notify loop for Handy_Jens chatstate: received
2015.07.27 15:09:53 4: WhatsApp: parse: [connected]:
2015.07.27 15:09:53 4: WhatsApp: parse:

2015.07.27 15:09:53 4: WhatsApp: parse: Sent: 1438002593-15
[connected]:


Danke und Gruß
Jens

meyomey

Zitat von: justme1968 am 25 Juli 2015, 15:19:29
wo liegt dein config file wirklich? passt das $HOME was gesetzt wird zu deiner konfiguration? hast du mit der gleichen kommando zeile getestet die im log steht und als gleicher user unter demfhem läuft?

Hallo Andre,

mein config file liegt hier: /opt/yowsup-config/yowsup.config
das Home Verzeichnis ist /opt/fhem  mit dem user fhem@raspberrypi

Gesendet aus der Kommandozeile habe ich hiermit: set WhatsApp send 49151xxxxxx Heiko ist zuhause.
Empfang ist ebenfalls möglich....

AitschPi

Zitat von: nettiger am 27 Juli 2015, 15:14:35
sende ich "test1"  bekomme ich die message von Rolladen Sommer gesendet. Der Dummy Schalter wird nicht umgeschaltet.
sende ich "Rolladen" bekomme ich die richtige message gesendet und der Dummy Schalter wird geschaltet.

Ich glaube ich habe hier einen generellen Denkfehler :-(

Ja, ich glaube, da liegt einer. Ich tippe auf einen kleinen Fehler bei der Verschachteln der if-Anweisung. Das sieht bei Dir ja ungefähr so aus:
1. notify überprüft "muss ich was tun? - Ja, denn da kam was für/von Jens.
1.1. Dann mache ich mal... (im Log: 2015.07.27 15:09:29 5: Cmd: >{if...)
1.2. Erster Teil: Ich muss was überprüfen (if eq test1)
1.3. nö, das stimmt wohl nicht. Ich mache nix bei der if-Schleife für test1
1.4. Muss ich mehr machen? Nö. Notify1 endet hier.

2. notify... da kam was von/für Jens
2.1. Dann mache ich mal.
2.2. if eq Rolladen? Nö? Dann nicht das Setzen danach
2.3. UNABHÄNGIG von 2.2. führe ich zweiten Befehl im notify 2 aus: Sende Nachricht Rolladen
2.4. nix weiter? fertig.

Im 2. notify wird der 2. Befehl separat ausgeführt, also auch bei test1. Die if-Schleife bezieht sich nur auf den folgenden Befehl. Also verschachteln, wenn mehrere Befehle am if hängen.

Tipp1: Teste es schrittweise. Zuerst nur ein notify. Da zuerst nur eine Funktion "if eq" mit etwas unproblematischen, nicht sofort send whatsapp. Sozusagen eine Debug-Ausgabe zum Teste des if eq. Danach das gleiche mit dem 2. notify - aber nur das und ohne das erste und mit debug.
Dann im 2. notify mehrere Befehle. Dann 1. und 2.  notify mit debug-Ausgabe. Und jetzt erst das send whatsapp. So findet man alles, anders ist die Fehleranalyse zu komplex.
Tipp2 - da arbeite ich gerade gedanklich dran: Funktion in eigene Skripte auslagern, dann muss nur ein notify oder ein Befehl im notify ausgeführt werden.
Echte Männer essen keinen Honig, sie kauen Bienen.