sallos
25. Januar 2014 um 00:42
1
Moin,
ich wollte irgendwie vom IPS benachrichtigt werden, wenn was passiert.
Da ich aber keine Lust habe für ein SMS Gateway Geld zu bezahlen, kam mir Whatsapp in den Sinn.
Nach ein paar Stunden Surfen fand ich eine Whatsapp php Lib. Nur leider kann man nicht mit 2 Geräte Online sein also habe ich mir mal erstes eine neue SIM-Karte besorgt…
Die Lib braucht aber das Whatsapp Passwort was leider so nicht sichtbar ist, aber auch dafür gibt es ein Tool.
->Ich weiß nicht ob man das hier beschreiben darf wie man das Passwort ausließt? Deswegen erst mal ohne.
Nach ein paar Stunden rumprobieren Reagiert mein IPS nun auf Whatsapp
Senden -> Temp aussen
Antwort -> Es ist -4Grad draußen
Ich habe erst mal nur etwas provisorischen Code zusammen geschrieben. Ich werde mal versuchen die Tage das mehr zu beschreiben und zu posten.
_Sven
25. Januar 2014 um 02:38
2
…klingt Interessant… PROWL ist kostenlos und fertig entwickelt. Zudem braucht man keine extra SIM;)
Bin dennoch auf die Lösung/Code gespannt.
LG
Hallo Salos,
wieso machst du es nicht über die Email funktion? Ist vorhanden und kostet nix. Geht natürlich nur wenn dein Handy Emails empfangen kann.
Push Nachrichten in der App, Prowl, eMail…
Also kostengünstige Lösungen gibts da schon einige !
sallos
25. Januar 2014 um 16:17
5
Moin,
warum ich das mache? Weil Whatsapp jeder hat und ich brauche nix extra auf dem Handy einrichten!
Und die Sim kostet ja nix. Die bekommt man ja so zugesendet für lau.
Hi, also ich habe großes Interesse an der Lösung, vor allem das bidirektionale gefällt mir. So brauch ich nicht immer das VPN zu starten um bspw verschiedene Stati abzufragen!
Über eine Anleitung würd ich mich also freuen!
Gruß
spooniester
Axel37
25. Januar 2014 um 19:02
7
dto. find ich ebenfalls sehr interessant
Ich habe mal WhatsApp mit Bluestacks App Player auf dem PC installiert, man kann auch die Festnetznummer angeben und man erhält den Code für die Freischaltung per Anruf. Eventuell ist das hilfreich, dann kann man sich die Sim sparen.
sallos
26. Januar 2014 um 13:07
9
Hallo,
so dann fange ich mal an:
-Sim Karte bekommt man kostenlos bei o2 (o2 Freikarte)
-Passwort für Whatsapp:
Da gibt es ein einfaches Tool: HIER
Das Tool ist eigentlich selbsterklärend. Und man kann immer nur mit einen Gerät online sein!
-Whatsapi herunterladen:
Diese Lib herunterladen und abspeichern HIER
-Mein Script:
Ist bisher nur das Empfangen und Config Script:
Config:
<?
//Whatsapp Einstellungen
$userPhone = '491...'; //Handynummer ohne + einfach 4917...
$userIdentity = ''; //Imei Nummer
$userName = ''; //User Name
$password = ''; //Passwort Whatsapp per WART Herausfinden
$debug = false;
////////////////////////
//Variablen
$ID_Temp_Mess = 13489 /*[test\Whatsapi\Empf_Mess]*/ ; //ID der Zwischenspeichers(String)
$ID_Temp_Nr = 12894 /*[test\Whatsapi\Empf_Nr]*/ ; //ID der Zwischenspeichers(String)
//Whatsapi Speicherotz
$Whatsapi = 'D:\IP-Symcon\scripts\src\php\whatsprot.class.php';
?>
Empfangen:
<?
//Config Script ermitelln
$SELF = IPS_GetObject($IPS_SELF);
$ID_Config = $SELF['ParentID'];
$DateiNa_Config = IPS_GetScriptFile($ID_Config);
include($DateiNa_Config);
require $Whatsapi;
$w = new WhatsProt($userPhone, $userIdentity, $userName, $debug);
$w->Connect();
$w->LoginWithPassword($password);
$w->PollMessages();
$msgs = $w->GetMessages();
//Arary zerlegen
if( !empty( $msgs ) ) {
foreach($msgs as $m){
$attri = $m->getAttributes();
$from = str_replace("@s.whatsapp.net", "",$attri['from']);
$time = date("m/d/Y H:i",$attri['t']);
foreach (($m->getChildren()) as $child) {
if (($child->getTag()) == "body")
{
//Nachricht auslesen und Großschreibung entfernen
$body = strtolower($child->getData());
}
else if (($child->getTag()) == "notify")
{
$name = $child->getAttribute('name');
}
}
}
SetValueString($ID_Temp_Nr, $from);
SetValueString($ID_Temp_Mess, $body);
}
?>
sallos
26. Januar 2014 um 16:56
10
So V1.2
Das Bilder senden geht leider noch nicht. Aber in der Config kann man nun einstellen was IPS wem antworten soll.
Config:
<?
//Whatsapp Einstellungen
$userPhone = ''; //Handynummer ohne + einfach 4917...
$userIdentity = ''; //Imei Nummer
$userName = ''; //User Name
$password = ''; //Passwort Whatsapp per WART Herausfinden
$debug = false;
////////////////////////
//Variablen
$ID_Temp_Mess = 13489 /*[test\Whatsapi\Empf_Mess]*/ ; //ID der Zwischenspeichers(String)
$ID_Temp_Nr = 12894 /*[test\Whatsapi\Empf_Nr]*/ ; //ID der Zwischenspeichers(String)
//Whatsapi Speicherotz
$Whatsapi = 'D:\IP-Symcon\scripts\src\php\whatsprot.class.php';
//Whatsapi Antworten alles kleine schreiben!!! Die Ankommende Nachricht wird automatisch auf kleinschrift umgewandelt
//Sende Array
//0 = Text Nachricht
//1 = Antort Nummer
//2 = Foto Senden TRUE FALSE
//3 = Ort des Fotos
function Antwort($message)
{
switch($message)
{
case "temp aussen":
$Send_Mess = "Es ist ".GetValue(31565 /*[Grodenstr\Funk-Temp\Außen hinten\Temperatur]*/)."Grad draussen";
$Send_To = '491';
$Send_Pic = False;
$Send_Path ="";
break;
//Panja
case "temp":
$Send_Mess = "Es ist ".GetValue(31565 /*[Grodenstr\Funk-Temp\Außen hinten\Temperatur]*/)."Grad draussen (Blexen)";
$Send_To = '49';
$Send_Pic = False;
$Send_Path ="";
break;
case "temp schlaf":
$Send_Mess = "Es ist ".GetValue(47409 /*[Grodenstr\Funk-Temp\Schlafzimmer\Temperatur]*/)."Grad im Schlafzimmer";
$Send_To = '491';
$Send_Pic = False;
$Send_Path ="";
break;
case "temp stube":
$Send_Mess = "Es ist ".GetValue(22267 /*[Grodenstr\Funk-Temp\Stube\Temperatur]*/)."Grad in der Stube";
$Send_To = '491';
$Send_Pic = False;
$Send_Path ="";
break;
case "gartenlicht?":
if (GetValue($ID_GartenLi) == 1)
{
$Temp = "AN";
}
else
{
$Temp = "AUS";
}
$Send_Mess = "Das Gartenlicht ist ".$Temp;
$Send_To = '491';
$Send_Pic = False;
$Send_Path ="";
break;
case "gartenlicht=aus":
ModBus_WriteCoil($ID_GartenLi_M,false);
$Send_Mess = "AUS";
$Send_To = '4917';
$Send_Pic = False;
$Send_Path ="";
break;
case "gartenlicht=ein":
ModBus_WriteCoil($ID_GartenLi_M,true);
$Send_Mess = "EIN";
$Send_To = '4917';
$Send_Pic = False;
$Send_Path ="";
break;
case "foto":
$Send_Mess = "Foto";
$Send_To = '491';
$Send_Pic = True;
$Send_Path ='';
break;
}
$Ret[0] = $Send_Mess;
$Ret[1] = $Send_To;
$Ret[2] = $Send_Pic;
$Ret[3] = $Send_Path;
return $Ret;
}
?>
Empf:
<?
//Config Script ermitelln
$SELF = IPS_GetObject($IPS_SELF);
$ID_Config = $SELF['ParentID'];
$DateiNa_Config = IPS_GetScriptFile($ID_Config);
include($DateiNa_Config);
require $Whatsapi;
$w = new WhatsProt($userPhone, $userIdentity, $userName, $debug);
$w->Connect();
$w->LoginWithPassword($password);
$w->PollMessages();
$msgs = $w->GetMessages();
//Arary zerlegen
if( !empty( $msgs ) )
{
foreach($msgs as $m){
$attri = $m->getAttributes();
$from = str_replace("@s.whatsapp.net", "",$attri['from']);
$time = date("m/d/Y H:i",$attri['t']);
foreach (($m->getChildren()) as $child) {
if (($child->getTag()) == "body")
{
//Nachricht auslesen und Großschreibung entfernen
$body = strtolower($child->getData());
}
else if (($child->getTag()) == "notify")
{
$name = $child->getAttribute('name');
}
}
}
SetValueString($ID_Temp_Nr, $from);
SetValueString($ID_Temp_Mess, $body);
//Config Switch
$Ret = Antwort($body);
//Sende Array
//0 = Text Nachricht
//1 = Antort Nummer
//2 = Foto Senden TRUE FALSE
//3 = Ort des Fotos
//Antworten
if ($Ret[1] == $from)
{
//$w->sendMessage($Ret[1], $Ret[0]);
if ($Ret[2] == True)
{
$URL = $w->uploadFile('D:\Current.jpg');
echo $URL;
$w->sendMessageImage($Ret[1], $URL, false);
}
}
}
?>
Hast du das mit dem Bild aus IPS mitsenden hingekriegt? Sonst noch vielen Dank Sallos -> interessante Sache
sallos
29. Januar 2014 um 21:18
12
Bin ich noch dran. Ein Bild was im Netz liegt geht! Nur ich bekomm keine Bilder auf dem Whatsapp Server hochgeladen…Alternativ müsste man die auf einen andere Bild Server laden.
Jop das ist eine Knacknuss. Bestehende aus dem Netz gehen aber lokale sind schwierig.
sallos
29. Januar 2014 um 21:49
14
Wie gesacht sonst müsste man sie auf einen FTP Server laden oder so…
Passend zum Thema: WhatsApp droht API Entwicklern mit rechtlichen Schritten
Wundert mich fast, dass es immer noch funktioniert…
Edit:
Ich beobachte ja „die Konkurenz“ telegram immer noch gespannt
Gruß,
Toni
sallos
30. Januar 2014 um 14:22
16
Hehe ja das hab ich auch gelesen…Ist aber auch schon wieder ne Zeit her.
Die API macht ja ein Android Handy nach, also eher zweifelhaft das der Server den unterschied merkt… Ein Whatsapp update könnte die API aber natürlich ausschließen…mal sehn ich finde die Funktion ganz nett
Und das Whatsapp unsicher ist wissen wir ja wohl alle…und alle nutzen es
Es gibt ja noch mehr alternativen, aber er hat die schon installiert???
schade, die github seiten sind wohl down, hat noch wer kopien davon?
Gruß Robert
sallos
17. Februar 2014 um 20:07
18
Ja hab ich auf meinem andrem Rechner…schick mir doch einfach ne pn
preto
19. Februar 2014 um 14:13
19
dem der Datenschutz und die Privatsphäre egal ist… oder noch nie hinterfragt hat, wie der Dienst arbeitet…
Also für mich ein absolutes NOGO…
(Dies stellt meine persönliche Meinung dar, ich will niemanden angreifen…)