Push-Service mit Telegram-Messenger

DIE Community für die externe Anbindung von Robonect® in bestehende Systeme.
Grundkenntnisse in bereits beim Anwender vorhandenen Systemen werden vorausgesetzt.
Für externe Lösungen ist kein Support möglich. Anwender helfen Anwendern! Mach mit!
(Robonect® Hx und IO)
Sven
Beiträge: 4
Registriert: Mi 21. Jun 2017, 12:17
Wohnort: Aschau bei Eckernförde
Mäher: Gardena R50Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2017
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 0.0

Push-Service mit Telegram-Messenger

Beitrag von Sven » Fr 6. Apr 2018, 00:49

Hallo Zusammen,

ich habe heute mal eine ganz einfache Möglichkeit gefunden, den Push-Service von Robonect mit dem Messenger "Telegram" zu nutzen.
Telegram bietet einen kostenlosen Bot an mit dem man z.B. per PHP Nachrichten an ein Handy senden kann. Hier ist z.B. eine gute Anleitung dafür:

https://webdesign.weisshart.de/blog/201 ... artphones/

Wenn Ihr dann einen eigenen Telegram-API-Token und eine ChatID erstellt habt, könnt Ihr z.B. mit einem PHP-Skript über die cUrl-Funktion PUSH-Nachrichten von Robonect in "Echtzeit" aufs Handy bekommen.
Hier ein einfaches Beispiel:

Code: Alles auswählen

<?php

ob_start(); 
var_dump($_GET); 
$nachricht = ob_get_contents(); 
ob_end_clean(); 

$ch = curl_init("https://api.telegram.org/bot<TOKEN>/sendMessage?"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'chat_id=<ChatID>&text='.$nachricht);
curl_setopt($ch, CURLOPT_POST, 1); 
curl_exec($ch); 
curl_close($ch); 

?>
Wenn dieses PHP-Skript von Robonect über den Push-Service aufgerufen wird, bekommt Ihr die Rohdaten (das Array über GET) als Telegramnachricht geschickt. Das ist jetzt nur ein einfaches Beispiel. Jetzt müsste man nur noch die Daten die von Robonect per GET an das Skript gesendet werden aufarbeiten und daraus eine einfach lesbare Textnachricht machen. Auch ein Passwortschutz wäre zu empfehlen. Aber das ist doch schon mal ein Anfang....

Viele Grüße aus Schleswig-Holstein,
Sven

Sven
Beiträge: 4
Registriert: Mi 21. Jun 2017, 12:17
Wohnort: Aschau bei Eckernförde
Mäher: Gardena R50Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2017
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 0.0

Re: Push-Service mit Telegram-Messenger

Beitrag von Sven » Fr 6. Apr 2018, 13:47

Ich habe nun das PHP-Skript noch etwas verfeinert. Jetzt schickt mir "Robonect" lesbare Nachrichten:

Bild

Code: Alles auswählen

<?php

$nachricht="";

switch ($_GET['status']) {
    case "1":  $nachricht="Ich parke...\n\r"; break;
    case "2":  $nachricht="Ich mähe...\n\r"; break;
    case "3":  $nachricht="Ich suche die Ladestation...\n\r"; break;
    case "4":  $nachricht="Ich werde geladen... :-)\n\r"; break;
    case "5":  $nachricht="Ich fahre raus um in den manuellen Modus zu wechseln...\n\r"; break;
    case "7":  $nachricht="Hilfe!!! Ich habe ein Problem :-(\n\r"; break;
    case "8":  $nachricht="Ich finde kein Schleifensignal???\n\r"; break;
    case "16":  $nachricht="Ich wurde abgeschaltet!\n\r"; break;
    case "17":  $nachricht="Ich schlafen jetzt....\n\r"; break;
    }
    
    
    
    
if ($_GET['errmsg']!="") {
	                                 $datum = date ("d.m.y", $_GET['errtime']);
	                                 $uhrzeit = date ("H:i:s", $_GET['errtime']);
	                                 $nachricht = $nachricht."\n\rMein Problem: ".$_GET['errmsg']."\n\rEs trat am ".$datum." um ".$uhrzeit." auf.\n\r";
	                                 
	                             }
	                                 
	
	
switch ($_GET['mode']) {
    case "0":  $nachricht= $nachricht."\n\rIch befinde mich im Automatik-Modus.\n\r"; break;
    case "1":  $nachricht= $nachricht."\n\rIch befinde mich im manuellen Modus.\n\r"; break;
    case "2":  $nachricht= $nachricht."\n\rIch befinde mich im HOME-Modus.\n\r"; break;
                                                }
    
$nachricht= $nachricht."\n\rMein Ladezustand beträgt: ".$_GET['battery']."%\n\rIch empfange das WLAN mit: ".$_GET['signal']."db\n\r";

$nachricht = utf8_encode ( $nachricht );


$ch = curl_init("https://api.telegram.org/bot<TOKEN>/sendMessage?"); // cURL ínitialisieren
curl_setopt($ch, CURLOPT_HEADER, 0); // Header soll nicht in Ausgabe enthalten sein
curl_setopt($ch, CURLOPT_POSTFIELDS, 'chat_id=<ChatID>&text='.$nachricht);
curl_setopt($ch, CURLOPT_POST, 1); // POST-Request wird abgesetzt
curl_exec($ch); // Ausführen
curl_close($ch); // Objekt schließen und Ressourcen freigeben

?>

Zuletzt geändert von Sven am Fr 6. Apr 2018, 13:58, insgesamt 1-mal geändert.

Sven
Beiträge: 4
Registriert: Mi 21. Jun 2017, 12:17
Wohnort: Aschau bei Eckernförde
Mäher: Gardena R50Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2017
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 0.0

Re: Push-Service mit Telegram-Messenger

Beitrag von Sven » Fr 6. Apr 2018, 13:54

....ich kann scheinbar den Beitrag nicht bearbeiten....
:oops: Ups... ich kann Beiträge doch bearbeiten...sorry :oops:


Ich habe noch ein kleinen Fehler entdeckt...
Damit Datum und Uhrzeit einer Fehlermeldung auch stimmt müssen noch 2 Stunden abgezogen werden:

Code: Alles auswählen


$datum = date ("d.m.y", $_GET['errtime']-7200);
$uhrzeit = date ("H:i:s", $_GET['errtime']-7200);


Jan
Beiträge: 79
Registriert: Do 25. Mai 2017, 17:11
Wohnort: Kitzingen
Mäher: Husqvarna Automower 310
Firmware des Mähers (MSW): MSW 7.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 1.0 B6

Re: Push-Service mit Telegram-Messenger

Beitrag von Jan » Di 10. Apr 2018, 20:34

Hallo,

ich habe versucht den Push Service via Telegram zu installieren scheitere aber dadran das bei Weisshart Anleitung im Punkt 4

Das als Antwort bekomme
{
"ok": true,
"result": []
}

Wäre es möglich mir das zu helfen den Push Service ein zurichten?

Danke

Gruß

Jan
Sven hat geschrieben:
Fr 6. Apr 2018, 00:49
Hallo Zusammen,

ich habe heute mal eine ganz einfache Möglichkeit gefunden, den Push-Service von Robonect mit dem Messenger "Telegram" zu nutzen.
Telegram bietet einen kostenlosen Bot an mit dem man z.B. per PHP Nachrichten an ein Handy senden kann. Hier ist z.B. eine gute Anleitung dafür:

https://webdesign.weisshart.de/blog/201 ... artphones/

Wenn Ihr dann einen eigenen Telegram-API-Token und eine ChatID erstellt habt, könnt Ihr z.B. mit einem PHP-Skript über die cUrl-Funktion PUSH-Nachrichten von Robonect in "Echtzeit" aufs Handy bekommen.
Hier ein einfaches Beispiel:

Code: Alles auswählen

<?php

ob_start(); 
var_dump($_GET); 
$nachricht = ob_get_contents(); 
ob_end_clean(); 

$ch = curl_init("https://api.telegram.org/bot<TOKEN>/sendMessage?"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'chat_id=<ChatID>&text='.$nachricht);
curl_setopt($ch, CURLOPT_POST, 1); 
curl_exec($ch); 
curl_close($ch); 

?>
Wenn dieses PHP-Skript von Robonect über den Push-Service aufgerufen wird, bekommt Ihr die Rohdaten (das Array über GET) als Telegramnachricht geschickt. Das ist jetzt nur ein einfaches Beispiel. Jetzt müsste man nur noch die Daten die von Robonect per GET an das Skript gesendet werden aufarbeiten und daraus eine einfach lesbare Textnachricht machen. Auch ein Passwortschutz wäre zu empfehlen. Aber das ist doch schon mal ein Anfang....

Viele Grüße aus Schleswig-Holstein,
Sven
Husy AM 310 / Hareware hx20 / SW V1.0 Beta 6/ Kamera / LED / Fritzbox 6590 / 4 FritzRepeater / Bumber / Passagenmodul Roboswitch / Roboswitch App

pirni
Beiträge: 109
Registriert: Fr 24. Feb 2017, 15:58
Mäher: Gardena R45Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.3)
Robonect Firmware: v1.0 Beta 7a

Re: Push-Service mit Telegram-Messenger

Beitrag von pirni » Mi 11. Apr 2018, 07:30

Schick gelöst.

Bei mir läuft der Telegram Service "inHouse" auf einem RaspberryPi. Ist mir so irgendwie lieber.

reamind
Beiträge: 3
Registriert: Do 20. Jul 2017, 11:23
Mäher: Husqvarna Automower 315
Firmware des Mähers (MSW): MSW 7.xx.xx
Herstellungsjahr: 2017
Robonect Firmware: V0.9e

Re: Push-Service mit Telegram-Messenger

Beitrag von reamind » Mi 18. Apr 2018, 12:34

Hi,

ich nutze den Push-Service mit Pushover.
Unabhängig davon bekomme ich immer nur die Nachricht: "Ich schlafe jetzt...", egal ob er anfängt zu mähen, zu laden usw.

Das Script habe ich von oben kopiert, nur den Push-Service von Telegram zu Pushover geändert

Code: Alles auswählen

<?php

$nachricht="";

switch ($_GET['status']) {
    case "1":  $nachricht="Ich parke...\n\r";
    case "2":  $nachricht="Ich mähe...\n\r";
    case "3":  $nachricht="Ich suche die Ladestation...\n\r";
    case "4":  $nachricht="Ich werde geladen... :-)\n\r";
    case "5":  $nachricht="Ich fahre raus um in den manuellen Modus zu wechseln...\n\r";
    case "7":  $nachricht="Hilfe!!! Ich habe ein Problem :-(\n\r";
    case "8":  $nachricht="Ich finde kein Schleifensignal???\n\r";
    case "16":  $nachricht="Ich wurde abgeschaltet!\n\r";
    case "17":  $nachricht="Ich schlafe jetzt....\n\r";
    }
    
if ($_GET['errmsg']!="") {
	                                 $datum = date ("d.m.y", $_GET['errtime']);
	                                 $uhrzeit = date ("H:i:s", $_GET['errtime']);
	                                 $nachricht = $nachricht."\n\rMein Problem: ".$_GET['errmsg']."\n\rEs trat am ".$datum." um ".$uhrzeit." auf.\n\r";
	                                 
	                             }
	                                 
	
	
switch ($_GET['mode']) {
    case "0":  $nachricht= $nachricht."\n\rIch befinde mich im Automatik-Modus.\n\r";
    case "1":  $nachricht= $nachricht."\n\rIch befinde mich im manuellen Modus.\n\r";
    case "2":  $nachricht= $nachricht."\n\rIch befinde mich im HOME-Modus.\n\r";
                                                }
    
$nachricht= $nachricht."\n\rMein Ladezustand beträgt: ".$_GET['battery']."%\n\rIch empfange das WLAN mit: ".$_GET['signal']."db\n\r";

$nachricht = utf8_encode ( $nachricht );

#Pushover#

?>

Hat jemand eine Idee woran es liegt?

Danke!

pirni
Beiträge: 109
Registriert: Fr 24. Feb 2017, 15:58
Mäher: Gardena R45Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.3)
Robonect Firmware: v1.0 Beta 7a

Re: Push-Service mit Telegram-Messenger

Beitrag von pirni » Mi 18. Apr 2018, 15:45

Dann stimmt wohl was mit der $status variable nicht.
Wenn Du manuell via webseite abfragst, stimmt dann der übermittelte Stastuscode?
Müsste igendwie so gehen:
http://MAEHER-IP/json?cmd=status

Also z.b. "2" für mähen.

Da würe ich erstmal ansetzen

reamind
Beiträge: 3
Registriert: Do 20. Jul 2017, 11:23
Mäher: Husqvarna Automower 315
Firmware des Mähers (MSW): MSW 7.xx.xx
Herstellungsjahr: 2017
Robonect Firmware: V0.9e

Re: Push-Service mit Telegram-Messenger

Beitrag von reamind » Mi 18. Apr 2018, 17:34

Der Status sieht eigentlich soweit OK aus und ändert sich auch

<?xml version="1.0" encoding="UTF-8"?>

-<robonect>

<name>Mein Automower</name>

<id>0731F1</id>


-<status>

<status>1</status>

<stopped>false</stopped>

<duration>7</duration>

<mode>0</mode>

<battery>100</battery>

<hours>217</hours>

</status>


-<timer>

<status>2</status>


-<next>

<date>2018-04-19</date>

<time>08:00:00</time>

<unix>1524124800</unix>

</next>

</timer>


-<wlan>

<signal>-86</signal>

</wlan>


-<health>

<temperature>30</temperature>

<humidity>39</humidity>

</health>


-<clock>

<date>2018-04-18</date>

<time>17:22:28</time>

<unix>1524072148</unix>

</clock>

<successful>true</successful>

</robonect>

pirni
Beiträge: 109
Registriert: Fr 24. Feb 2017, 15:58
Mäher: Gardena R45Li
Firmware des Mähers (MSW): MSW 6.xx.xx
Herstellungsjahr: 2016
Robonect-Modul: Robonect Hx (Rev.3)
Robonect Firmware: v1.0 Beta 7a

Re: Push-Service mit Telegram-Messenger

Beitrag von pirni » Do 19. Apr 2018, 11:14

Ok dann stimmt halt irgendwas im Script nicht.

Lass dir mal gezielt die Variable $_GET['status'] ausgeben . Da muss dann halt ne Zahl drin stehen.
Diese soll ja mit dem entsprechenden Text, was es bedeutet, ausgetauscht werden.
Wenn das echoen der Zahl tut, stimmt was mit dem Switch Array nicht.

Vielleicht kann der Erbauer des Files mehr dazu sagen ;)

BoyHitsCar
Beiträge: 12
Registriert: Sa 20. Feb 2016, 10:13

Re: Push-Service mit Telegram-Messenger

Beitrag von BoyHitsCar » Do 19. Apr 2018, 17:59

Hmm wo muss ich denn das php hinlegen? Direkt auf robonect oder brauch ich nen webserver.
Telegram per api nutz ich auf der homematic, funzt super

Antworten

Zurück zu „Einbindung in Hausautomatisierung“