Telegram einsetzen: Welcher Ansatz?

Begonnen von curt, 08 Juli 2019, 01:20:41

Vorheriges Thema - Nächstes Thema

curt

Hallo Freunde,
ich möchte nun Telegram für FHEM an den Start bringen. Mir geht es dabei lediglich darum, bestimmte Nachrichten auf mein Handy zu bekommen - es ist nicht geplant etwas via Telegram zu schalten.

Es scheint mehrere Ansätze zu geben - ich suche den einfachsten, am besten beschriebenen Ansatz.

Was wird empfohlen?
(Ein, zwei Links wären nett.)

Danke!
RPI 4 - Jeelink HomeMatic Z-Wave

Meck

Hallo curt,

Ich habe da letztlich mal was zusammen getragen.

https://forum.fhem.de/index.php/topic,101975.0.html

Ich würde einfach den TelegramBot nehmen, wenn du nichts schalten willst und direkt die sende Befehle einbauen.

Gruß

Meck

binford6000

Hallo curt,
TelegramBot + msg-Befehl. Wenns bissl smarter sein darf auch noch msgDialog. Vielleicht möchtest du
ja doch irgendwann mal was schalten...

VG Sebastian

curt

Danke für eure freundlichen Hinweise: Mühsam nähert sich das Eichhörnchen.

Telegram kannte ich nur theoretisch. Das vorgeschlagene https://wiki.fhem.de/wiki/TelegramBot half mir wenig, da sind methodische Fehler drin. Ich nahm https://www.christian-luetgens.de/homematic/telegram/botfather/Chat-Bot.htm . Derzeit fehlen noch die Privicy-Einstellungen, die https://wiki.fhem.de/wiki/TelegramBot nennt.

Anders gesagt:
Ich bin noch ganz weit weg davon, eine FHEM-Device einzurichten.
RPI 4 - Jeelink HomeMatic Z-Wave

curt

ZitatDerzeit fehlen noch die Privicy-Einstellungen

Auch erledigt.

Ich muss jetzt mal was ganz Dummes fragen, Basis ist Android-9/Android-One:
Ich hätte erwartet, dass neue Telegram-Nachrichten mir unter den Andriod-Mitteilungen als Hinweis angezeigt werden. Das passiert aber nicht. Und unter dem App-Berechtigungen für Telegram finde ich auch nichts dergleichen.

Läuft es darauf hinaus, dass ich regelmäßig aktiv Telegram aufrufen muss? Oder habe ich da was übersehen?
RPI 4 - Jeelink HomeMatic Z-Wave

schnitzelbrain

Zitat von: curt am 09 Juli 2019, 03:42:33
Auch erledigt.

Ich muss jetzt mal was ganz Dummes fragen, Basis ist Android-9/Android-One:
Ich hätte erwartet, dass neue Telegram-Nachrichten mir unter den Andriod-Mitteilungen als Hinweis angezeigt werden. Das passiert aber nicht. Und unter dem App-Berechtigungen für Telegram finde ich auch nichts dergleichen.

Läuft es darauf hinaus, dass ich regelmäßig aktiv Telegram aufrufen muss? Oder habe ich da was übersehen?
Hast du unter Mitteilung und Töne, bei den Einstellungen in Telegramm alles richtig gesetzt? Keep Alive, Hintergrundverbindung etc.

Hat die App auch die Rechte, Mitteilungen zu senden? Zu finden in den Android einstellungen.

Ist unter dem drei-punkt Menü der entsprechende Chat vielleicht Stumm geschaltet?

Grüße

Meck

Zitat von: curt am 09 Juli 2019, 03:00:52
Danke für eure freundlichen Hinweise: Mühsam nähert sich das Eichhörnchen.

Telegram kannte ich nur theoretisch. Das vorgeschlagene https://wiki.fhem.de/wiki/TelegramBot half mir wenig, da sind methodische Fehler drin.

Hallo schnitzelbrain,

mit den Mühsam und dem Eichhörnchen geht es mir genauso. Welche methodischen Fehler meinst du? Vielleicht kannst du mir die Ja mal hier erklären, damit wir gemeinsam das Wiki verbessern können.
Gruß

Meck

curt

@Meck
Du meinst vermutlich mich.

Ich antworte trotzdem hier, Grund ist mein folgender Absatz. Zu Deiner Frage: In https://wiki.fhem.de/wiki/TelegramBot fällt mir als erstes auf, dass in nur einem Artikel mehrere Devicenames verwendet werden. Klüger wäre natürlich, immer den gleichen Devicenamen zu verwenden. Zudem stellt sich die Frage nach dem Aufbau des Artikels: Da die commandref ja schon das Kompendium ist, scheint es mir klüger, Wiki-Artikel als "Kochrezepte" aufzubauen - also als schrittweise nachvollziehbare Anleitung.

Ich scheitere zum Beispiel im Moment an Folgendem, man will ja auch mal als Erfolg eine erste Nachricht sehen:
Zitat
define notify_fhem_reload notify global:INITIALIZED set teleBot message fhem newly started - just now !

Diese Nachricht -lese ich- geht an defaultPeer. Ok, das habe ich ja noch verstanden. Und einen Telegram-Account habe ich nun natürlich auch. Aber was um Gottes Willen trägt man denn in defaultPeer ein? Ich habe aus https://t.me/doof versucht, dort "doof" einzutragen ... und scheiterte.

Mag mir bitte jemand sagen, was ich bei "defaultPeer" eintrage?
RPI 4 - Jeelink HomeMatic Z-Wave

MadMax-FHEM

Zitat von: curt am 14 Juli 2019, 04:11:11
Mag mir bitte jemand sagen, was ich bei "defaultPeer" eintrage?

Du musst eine Nachricht von einem Telegram Account an deinen Bot schicken.
(musst du eh, sonst kann der Bot nicht senden, steht im Wiki)

Dann solltest du unter Contacts den Absender finden (dazu den Bot aber noch nicht "absichern", z.B. allowUnknownContacts) wenn das dann von deinem "Wunsch-Standards-Empfangs-Account" war, dann eben das bei defaultPeer ("Standardempfänger") eintragen.
Ich habe nur die "Nummer"/ID dort eingetragen.
Ob dort auch der Name (und wenn in welchem Format) geht steht verm. in der commandref...

Mir reicht die ID...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

curt

Zitat von: MadMax-FHEM am 14 Juli 2019, 10:09:54
Du musst eine Nachricht von einem Telegram Account an deinen Bot schicken.
...
Ich habe nur die "Nummer"/ID dort eingetragen.

Hallo Joachim, danke für Deine Hilfe.
Das Problem ist: Wenn man irgend etwas erstmals macht (telegramm + fhem-Modul), dann fehlen die Vergleichswerte. Wenn dann ein Fehler (ohne Fehlermeldung oder mit verwirrender solcher) auftritt ...

Ich hatte das alles gemacht, auch auf Disable gestellt usw. Es ging nicht - ich habe mir einen Wolf gesucht - kann ja gar nicht sein. Zufällig fand ich es dann: der Token war um drei Stellen verkürzt (cut+paste-Fehler). So doof kann man gar nicht denken ... zumal Telegramm gesendete Meldung da nicht abweist.

Ok, danke - läuft.

Erlaubt mir bitte weitere Verständnisfragen:

1) Ich brauche/möchte das nur zu meinem Telegramm-Account auf meinem Handy - was kann/sollte ich jetzt alles abschalten?

2) Punkt-zu-Punkt ist ja verschlüsselbar und geht dann nicht über Telegramm-Server. Geht das denn mit dem FHEM-Modul? Was müsste ich da tun?

3) https://wiki.fhem.de/wiki/TelegramBot sagt:
"Nebenbemerkung: hier ist eine erweiterte Strukturierung evt. empfehlenswert: statt jede Notify-Syntax o.ä. direkt auf TelegramBot-Spezifika gehen zu lassen, kann man sich eine Helper-Funktion (zur Vermittlung all solcher "Alarmtexte") bauen (99_myUtils_anlegen), die entsprechende Alarm-Meldungen dann nur intern auf (u.a.) einen Messaging-Service wie (momentan!) Telegram schickt."
Hat das denn jemand und würde mir das mal zeigen? Oder baut sich das jeder selbst?
RPI 4 - Jeelink HomeMatic Z-Wave

MadMax-FHEM

#10
Tja manchmal ;)

1) Ich brauche/möchte das nur zu meinem Telegramm-Account auf meinem Handy - was kann/sollte ich jetzt alles abschalten?

Hmm abschalten?

Also ich habe allowUnknownContacts auf 0 -> keine neuen Kontakte (so verstehe ich das)

Und cmdRestrictedPeer da nur meinen defaultPeer drin -> nur der darf Kommandos/fhem-Befehle ausführen (so verstehe ich das)

Wenn du auch kein cmdKeyWord setzt, kann eigentlich keiner was machen (auch du nicht) ;)

Dann prüfe ich in einer Sub (wenn eine Nachricht von Telegram kommt -> Notify auf "Nachrichteneingang"), von wem und wenn ich vertraue (also aktuell nur mir ;)  ) und was "gewollt" wird (also "Inhalt" der Nachricht) und dann führe ich aus bzw. "antworte"...

Also sowas wie chat-Bot nur selbst gebastelt...
...ohne schicke Tastatur etc.

2) Punkt-zu-Punkt ist ja verschlüsselbar und geht dann nicht über Telegramm-Server. Geht das denn mit dem FHEM-Modul? Was müsste ich da tun?

Da musst du mal im Forum/Wiki suchen, wurde schon ein paar mal beschrieben...
...weiß ich aber (aktuell) nicht (mehr)...


3) https://wiki.fhem.de/wiki/TelegramBot sagt:

Hmmm, da weiß ich nicht genau was du meinst bzw. was im Wiki steht (hab's nur überflogen)...
Was ich kenne ist das msg-Modul, das sowas wie eine zentrale Melde-/Nachrichten-Stelle in fhem ist/sein kann und dann je nachdem Nachrichten "verteilt"...
Weiß nicht, ob sowas in der Art gemeint ist...

Ich mache das anders (noch). Ich rufe überall wo ich was schicken will eben set Bot message "Nachricht" auf...

Bzw. habe ich mir eben sowas wie den chat-Bot selbst gebaut (noch bevor bzw. während er im Forum/Wiki? diskutiert wurde bzw. entstand)...

Ich denke chat-Bot ist vermutlich "besser", da besser beschrieben und mehrfach genutzt...

Viel Spaß dann noch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

curt

Zitat von: MadMax-FHEM am 14 Juli 2019, 23:40:22
Tja manchmal ;)

Ach hör mir doch auf <lacht>.

Joachim, danke für Deine Hinweise. Die meisten habe ich verstanden und werde sie schrittweise umsetzen (ich bin bei dem Thema ja noch ganz frisch.) - Einige Verständnisfragen habe ich:

Zitat von: MadMax-FHEM am 14 Juli 2019, 23:40:22
Also sowas wie chat-Bot nur selbst gebastelt...
...ohne schicke Tastatur etc.

Das habe ich überhaupt nicht verstanden. Was ist damit gemeint?

Zitat von: MadMax-FHEM am 14 Juli 2019, 23:40:22
2) Punkt-zu-Punkt ist ja verschlüsselbar und geht dann nicht über Telegramm-Server. Geht das denn mit dem FHEM-Modul? Was müsste ich da tun?

Da musst du mal im Forum/Wiki suchen, wurde schon ein paar mal beschrieben...
...weiß ich aber (aktuell) nicht (mehr)...

Ok, verstanden. Ich mach mich dann mal los.
(Wenn das gehen sollte, fehlt das auch im Wiki-Artikel.)


Zitat von: MadMax-FHEM am 14 Juli 2019, 23:40:22
3) https://wiki.fhem.de/wiki/TelegramBot sagt:

Hmmm, da weiß ich nicht genau was du meinst bzw. was im Wiki steht (hab's nur überflogen)...

Der Wiki-Artikel meint, dass man das Senden an Telegramm vermittels notify ... set teleBot message ... dadurch einfachen könne, indem man eine Routine in myUtils.pm packt. Ja, das leuchtet irgendwie ein. Aber es fehlt im Wiki-Artikel der Code-Vorschlag, es ist ja wenig sinnvoll, dass jeder allein losstümpert. - So verstand ich das jedenfalls.

Danke nochmals.
RPI 4 - Jeelink HomeMatic Z-Wave

MadMax-FHEM

Naja es gibt den simplen Bot:

Du weißt welche Befehle es gibt (oder lässt dir ein "Text-Menü" schicken, mache ich auf ein empfangenes "?" ;)  )...
...und du schickst einfach "Text"/"Befehle" die in der "Empfangs-Sub" "verstanden" werden...

Oder:
Du nutzt "inline Keyboard" (glaube ich heißt das) und dann hast du "in" Telegram eine schöne "Oberfläche" mit Knöpfen etc. wo eben "Befehle" etc. "dahinter stecken" die ebenfalls in einer Sub ausgewertet werden...

Da ich aber eher schlank und ohne schick brauche habe ich mir das nie angesehen und bin eben bei meiner simplen Umsetzung geblieben (vergleichbar mit den Anfängen der chat-Bot Umsetzung)...

Sollte sich finden lassen.
Gibt auf jeden Fall mind. 1 Thread dazu, evtl. auch Wiki...


Bzgl. Funktion zum zentralen Senden etc. noch mal die Erwähnung des msg-Moduls...

Wollte ich auch schon immer mal nutzen...
...kam aber nie dazu...
...und es läuft ja wie ich will...
...wäre (wie auch die erwähnte Sub im Wiki) eher "kosmetisch"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

curt

Ah, ok. Ich glaube ich habe alles verstanden - und brauche das alles wohl nicht.

Im Moment (ohne dass das jetzt ein Chat werden soll) krampfe ich an zwei Baustellen rum:

1) notify.
Meine Kenntnisse sind zu gering. Stichwort Schwellwerte, also wenn ein Reading größer x wird.

2) DOIF.
Also ob man DOIF nutzen kann. Beispiel:


define Movie_Regen DOIF ([ws980wifi:rainRate] == 0) (set Movie auto) DOELSE (set Movie feierabend)


Es fängt an zu regnen und Movie hört auf zu mähen und fährt nach Hause.

Ich denke an
define Movie_Regen DOIF ([ws980wifi:rainRate] == 0) (set Movie auto) DOELSE (set Movie feierabend ;; set teleBot message REGEN - Movie nach Hause)

Keine Ahnung ob das funkioniert, ob das zwei oder wie viele Semikolon auch immer sein müssen. Testen ist auch schwierig: Ich habe schon mehrmals auf der Leiter gestanden und mit Eimerchen Wasser in die Wetterstation gefüllt ... stell Dir einfach das Bild vor <lacht>.
RPI 4 - Jeelink HomeMatic Z-Wave

MadMax-FHEM

#14
Ich hab jetzt nicht alles gelesen, musste zu viel lachen... ;)

Aber statt mit dem Eimer zu gießen kannst du auch einfach mittels:

setreading ws980wifi rainRate 100

den Wert hoch setzen...
Wenn ich richtig gelesen habe, wie dein "Gerät/Reading" heißt und 100 sowas wie "voll" bedeutet (Wert kannst du nat. anpassen)...

Und entweder warten, bis der Sensor wieder auf den echten/gemessenen Wert stellt...
...oder wenn du nicht warten willst einfach genauso wieder zurück stellen...

Oder "trigger" verwenden...
...musst du aber selber schauen, hab ich noch nie verwendet...

EDIT: bei DOIF hab ich was von "Komma" als Befehlstrenner im Kopf (nutze ich aber selber nicht) und ansonsten kommt es drauf an wo/wie du es eingibst... Sollte aber ein Wiki dazu geben... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)