NEWS
Threema Benachrichtigung
-
Eigentlich kann man auch Threema mit eigenen Apps verbinden, aber man muss erstmal 64 CHF für die Einrichtung zahlen und dann noch für jede Message die von ioBroker gesendet wird. Empfangen ist zwar frei, darf aber eine bestimmte Anzahl nicht übersteigen.
Damit ist es technisch zwar wohl machbar, finanziell aber eher uninteressant. Sie zielen eindeutig auf größere Organisationen.
Ich benutze Pushbullet, das funktioniert ganz gut. Man kann Meldungen an ioBroker senden und dann beispielsweise in VIS anzeigen lassen. Ich habe dann noch einen kleinen Filter gebaut: Wenn der Text mit: 'Hallo IO' beginnt, kopiere ich den Text einfach auf text2command.0.text dann wird es als Befehl ausgeführt. 'Hallo IO mach das Licht in der Küche an' über pushbullet gesendet, macht dann eben genau das. Man kann auch was bidirektionales bauen, hab ich aber noch nicht gemacht.
Gruß
-
Ok. Ich hab mich jetzt damit abgefunden und Telegram auf meinem Handy und im iobroker installiert und den bot eingerichtet. Leider komme ich nicht weiter. Ich wollte zum test erstmal die Klingelbetätigung als Nachricht verschicken. Das klappt leider schon nicht.
![](</s><URL url=)<link_text text="http://uploads.tapatalk-cdn.com/2016041 ... bebc9f.jpg">http://uploads.tapatalk-cdn.com/20160418/ed1a326ff07ebbf2fb3639ef90bebc9f.jpg</link_text>" /> -
Ok. Ich hab mich jetzt damit abgefunden und Telegram auf meinem Handy und im iobroker installiert und den bot eingerichtet. Leider komme ich nicht weiter. Ich wollte zum test erstmal die Klingelbetätigung als Nachricht verschicken. Das klappt leider schon nicht.
![](</s><URL url=)<link_text text="http://uploads.tapatalk-cdn.com/2016041 ... bebc9f.jpg">http://uploads.tapatalk-cdn.com/20160418/ed1a326ff07ebbf2fb3639ef90bebc9f.jpg</link_text>" />`Hast du eine Meldung von Handy an ioBroker geschickt? Wenn nicht, dann solltest du ein mal machen, damit ioBroker id von deinem Handy merkt. -
Müsste das nicht
sendTo ('telegram.0','Es hat geklingelt')
sein.
-
Hast du eine Meldung von Handy an ioBroker geschickt? Wenn nicht, dann solltest du ein mal machen, damit ioBroker id von deinem Handy merkt.
Eh ich das vor einigen Tage herausgefunden habe, hat es auch ein paar Minuten gedauert. :evil:
Das geht aus meiner Sicht aus der Adapter Beschreibung auf GitHub nicht hervor. Könntest du dies vielleicht hinzufügen?
-
Müsste das nicht
sendTo ('telegram.0','Es hat geklingelt')
sein. `
Hi,
die genannte Syntax vom Ersteller sollte stimmen. (Vorausgesetzt der Trigger Aufruf stimmt.)
Kann man hier nachlesen….https://github.com/ioBroker/ioBroker.telegram
-
Ich habe text2command ausprobiert und das fünktioniert mit Telegram wunderbar.
Nur an den Script verzweifel ich . ich hab alles ausprobiert.
Variante 1
// Grupppe Klingel/Pushover var idKlingel = "hm-rpc.0.MEQ00XXXXXX.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/; // Homematic Klingelsensor on({id: idKlingel, val: true}, function() { // on lauscht auf Klingelsignal sendTo('telegram', 'Es hat geklingelt'); // Sende Pushovernachricht });
Variante 2
telegram.0
Variante 3
idKlingel = "hm-rpc.0.MEQ00XXXXXX:1 ( : anstelle des .)
ich weiss nicht mehr weiter . ich hab auch ein anderes Gerät probiert was "true" ausgibt. Ohne erfolg.
Kann jemand den skript mal testen ?
-
Also bei mir geht es so:
var idKlingel = "hm-rpc.0.MEQ00455xx.1.PRESS_SHORT"; on({id: idKlingel, val: true}, function() { sendTo('telegram', "Es hat geklingelt"); });
Ich habe keine Ahnung, warum das bei dir nicht geht…
-
oh man …. es funktioniert.... ich habe einen Neuen Script in "common" erstellt. Und es funktioniert....
ich wäre fast verzweifelt. jetzt muss ich nurnoch das Bild von der IPcam verschickt bekommen :roll:
-
Muss ich das Bild der Ipcam erst im 2 Sekunden Takt auf den Raspi speichern per Snapshot und dann zu Telegram schicken ? Oder kann ich das einfacher machen ? Hier der link der ipcam .
http://ip:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=Passwort&_vis_refts=14610xxxxxx
Gesendet von meinem SM-G900F mit Tapatalk
-
Hallo Michmu,
ich mache das so:
!
var source_url = "http://ip:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=Passwort&_vis_refts=14610xxxxxx", // Kamerabild dest_path = '/Users/pix/Documents/iobroker/iobroker-data/webcam/'; // der Pfad kann bei dir anders sein auf einem Raspi var Download = require('download'); ! function speichereFoto () { new Download({mode: '755'}).get(source_url).dest(dest_path).run(function(err, files){ if (err) log('Fehler beim Bild speichern: ' + err, 'warn'); else log('Webcam Bild gespeichert'); }); } ! // Bild an telegram schicken function sendeFoto (pfad) { sendTo('telegram', pfad); log('Bild per telegram verschickt'); } ! function aktion () { speichereFoto(); setTimeout(function() { sendeFoto(dest_path + 'image1.jpg'); // hier Dateinamen des abgespeicherten Bildes angeben }, 3 * 1000); // 3s Verzögerung } ! // ab hier den Trigger einfügen var idKlingel = "hm-rpc.0.MEQ00455xx.1.PRESS_SHORT"; on({id: idKlingel, val: true}, function() { sendTo('telegram', "Es hat geklingelt"); aktion(); }); !
Man kann das auch in eine Funktion packen. Du kannst natürlich mehrere Trigger einbauen. Du kannst auch mit einem schedule regelmäßig Fotos abspeichern.
schedule("1,16,31,46 * * * *", speichereFoto);
speichert jede Viertelstunde ein Bild ab.
Gruß
Pix
-
Danke, pix!
Ein Problem gibt es bei mir: Ich muss mich auf der Webcam authentifizieren.
Die URL sieht so aus:
http://login:passwort@192.168.1.xxx/image/jpeg.cgi
Es kommt jedoch folgender Fehler:
Error: 2016-04-20 20:06:43 error Basic authentication must be done with auth option uncaught 2016-04-20 20:06:43 error exception: Basic authentication must be done with auth option
Wie kann ich die get Abfrage so gestalten, dass sie die Auth-Daten mitschickt?
Habe schon gegoogelt, aber ich komme auf keinen grünen Zweig
var source_url = "http://login:passwort@192.168.1.148/image/jpeg.cgi", // Kamerabild dest_path = '/opt/iobroker/'; // der Pfad kann bei dir anders sein auf einem Raspi var Download = require('download'); function speichereFoto () { new Download({mode: '755'}).get(source_url).dest(dest_path).run(function(err, files){ if (err) log('Fehler beim Bild speichern: ' + err, 'warn'); else log('Webcam Bild gespeichert'); }); }
-
Habe das gleiche Problem. Wenn ich den Link bei Linux eingebe:
wget http://192.168.188xxx:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Name&pwd=Passwort
läd er mir CGIProxy.fcgi?cmd=snapPicture2 runter. Die Datei ist aber nur 51 kb groß und wenn ich die Endung .jpg dahinter mache läst sie sich trotzdem nicht öffnen. Wenn ich sie mit dem Editor öffne steht das drin:
<cgi_result><result>-2</result></cgi_result>
-
Ich habe es für mich jetzt lösen können. Nun schneidet er ein Foto aus dem Webcamstream. Meine Webcam ist eine D-LINK DCS-2332L.
Hier ein Link für D-LINK Webcams, um die Stream- und Fotolinks zu erzeugen: https://www.ispyconnect.com/man.aspx?n=D-Link oder hier für viele andere Modelle: https://www.ispyconnect.com/man.aspx?n=D-Link
Mit Javascript "get" kann man sich nicht bei der Webcam authentifizieren. Der get Befehl gibt sowas scheinbar nicht her.
Also habe ich einen wget-Befehl daraus gemacht über Kommandozeile exec.
// Grupppe Klingel/Torfoto var idKlingel = "hm-rpc.0.MEQ0045xxx.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/; on({id: idKlingel, val: true}, function() { exec ("wget --user=USERNAME --password=PASSWORT -N -P /home/henrik/iobroker/cache http://192.168.1.xxx/dms?nowprofileid=1.jpg"); // -N überschreibt die alte Datei immer sendTo("pushover", "Es hat geklingelt"); // Sende Pushovernachricht sendphoto(); // Rufe Funktion sendphoto auf }); function sendphoto() { // Warteschleife, 2 Sekunden, damit das Bild erzeugt wird setTimeout(waittime, 2000); } function waittime() { // Nach der Warteschleife, sende das Bild per Telegram sendTo('telegram', "/home/henrik/iobroker/cache/dms?nowprofileid=1.jpg") }
Damit läuft es jetzt wunderbar! Auf dem NUC dauert es auch nur 1 Sekunde statt wie beim Raspi 3 ganze 6 Sekunden, um das Bild zu erzeugen. Habe trotzdem als Puffer 2 Sekunden genommen.
****Was ich gerne noch verschönern würde: Statt den Downloadpfad und Loginnamen + Passwörter in die wget-Zeile direkt einzugeben, sie oben als Variable festzulegen.
Aber ich kann innerhalb des wget Befehls keine Variablen einbauen, da der ganze Befehl in ein paar Anführungszeichen gesetzt werden muss. Habe auch schon probioert, trotzdem die Variablen mit $VARIABLE& einzuschmuggeln aber das funktioniert nicht. Hat jemand einen Tipp?****
@ Michimu
Danke für den Tipp mit wget, dadurch bin ich erst darauf gekommen als Alternative zu get.
Leider kann ich dir bei deinem Problem nicht helfen. Probiere mal direkt im wget-Link ein jpg anzuhängen (also wie bei mir: "…nowprofileid=1.jpg", vielleicht klappt es dann?
-
Du kannst eine Kombination aus doppelten Anführungszeichen " und einfachen Anführungszeichen ' probieren. Die beeinflussen sich nicht.
Gruß
Pix
Gesendet mit Tapatalk
-
Danke, pix, habe es versucht, aber es klappt nicht:
var user = "USER"; var password = "PASSWORD"; on({id: idKlingel, val: true}, function() { exec ("'wget --user='user' --password='password' -N -P /home/henrik/iobroker/cache http://192.168.1.xxx/dms?nowprofileid=1.jpg'");
Auch wenn ich nur mit ' ' arbeite nicht.
exec erwartet offenbar eine vollständige Übergabe am Stück in " "
-
Habe das Script von Pix benutzt und für mich angepasst.
Aber das Bild wird jetzt als folgende Datei gespeichert : "CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXX"
Jetzt müsste ich diese Datei vor dem Senden umbenennen z.B. in "kamerabild.jpeg", denn die Datei beinhaltet das Bild, wenn ich sie von Hand umbenenne.
Jemand ne Idee wie ich das in Javascript lösen kann?
-
Unter Linux zB mit
exec("mv -u /pfad/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXX /pfad/kamerabild.jpg")
exec führt aquasi auf Kommandozeile einen Befehl aus.
-
Ok, kann ich auch mal versuchen.
Hab es jetzt aber mit
var fs = require('fs'); fs.rename('/opt/iobroker/foto/CGIProxy.fcgi!cmd=snapPicture2&usr=admin&pwd=XXXXXX', '/opt/iobroker/foto/kamerabild.jpeg');
hinbekommen
-
ich komm mit dem Speichern von den Bildern nicht weiter. Er speichert kein Bild.
// Grupppe Klingel/Torfoto
var idKlingel = "hm-rpc.0.MEQ00xxxxx.1.PRESS_SHORT"/Klingelsensor.PRESS_SHORT/;
on({id: idKlingel, val: true}, function() {
exec ("wget –output-document image.jpg http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Name&pwd=Passwort");
sendTo("telegram", "Es hat geklingelt"); // Sende Pushovernachricht
sendphoto(); // Rufe Funktion sendphoto auf
});
function waittime() { // Nach der Warteschleife, sende das Bild per Telegram
sendTo('telegram', "image.jpg");
}