FHEM Forum

FHEM => Automatisierung => Thema gestartet von: dennis_n am 22 Januar 2018, 21:25:09

Titel: Fragen zu Telegram
Beitrag von: dennis_n am 22 Januar 2018, 21:25:09
Hi,

ich bin gerade dabei üer fhem verschiedene Automatismen für unsere Feuerwehr zu organisieren.
Da stellt sich mir die Frage, ob es einen Dienst gibt, mit dem ich Pushnachrichten verschicken kann, welche 2 Link enthält.
Konkret geht es darum, dass ich die Kameraden bei einem Alarm per Handy alarmieren möchte und sie dann Rückmeldung geben, ob sie zum Einsatz kommen oder nicht.
Dazu hätte ich jedem einzelnen eine Pushnachicht geschickt mit einem Link für JA und einem für NEIN. Nach dem Klick, wird dann in fhem das entsprechende Dummy Device des Kameraden auf den entsprechenden Wert gesetzt.

Oder denke ich da zu kompliziert? Geht es vielleicht auch einfacher? Für einen Denkanstoß wäre ich dankbar.

Gruss
Dennis
Titel: Antw:Pushnachricht mit Links
Beitrag von: Wuehler am 22 Januar 2018, 22:53:27
Hast du dir schon mal das Telegram-Modul angesehen? Vielleicht in Verbindung mit msg?

Damit könnte man eine Gruppe mit allen einrichten oder zu jedem einen einzelnen Chat einrichten. Per inline-Keyboard könntest du einfache Antwortmöglichkeiten bereitstellen. Oder alternativ in der Nachricht Antwort-Kommandos.
Titel: Antw:Pushnachricht mit Links
Beitrag von: dennis_n am 22 Januar 2018, 23:17:29
Jetzt wo Du es sagst, erinnere ich mich. Ich glaube ich hatte hier schonmal gefragt und auch Telegram empfohlen bekommen.
Das hatte ich mir dann auch angeschaut, aber irgendwie bin ich da nicht weitergekommen.

Eine Gruppe über den Chatbot anzulegen usw. geht ja noch, aber wie werte ich denn über fhem die Antworten der Kameraden aus?
Die antworten ja dann alle in diese Gruppe. Wie bekomme ich denn so das Dummy Device des jeweiligen Kameraden gesetzt?

Über ein wenig Hilfestellung wäre ich Dir sehr dankbar.

Gruss
Dennis
Titel: Antw:Pushnachricht mit Links
Beitrag von: Wuehler am 23 Januar 2018, 00:28:47
Im Telegrambot gibt es das Reading msgPeer. Jeder der Feuerwehrmänner/frauen braucht einen eigenen Telegram–user. Den kannst du über das reading abfragen.
Ich denke aber in Kombination mit Residents und Roommates und msg geht das noch einfacher als mit dummys alles selbst zu bauen. Ist jetzt nicht mein Spezialgebiet, aber ungefähr so:
– einmal Residents ,,Feuerwehr" anlegen und die Kollegen als ,,Roommates" darin erzeugen.
– msgConfig anlegen und konfigurieren und bei jedem Roommate das Attribut msgContactPush auf Telegram:@<kollege> setzen.
– und als letztes einen msgDialog anlegen.

Details in den jeweiligen Wiki–Artikeln und passenden Foren. Habe auf die Schnelle bestimmt irgendeine Konfiguration vergessen.
Titel: Antw:Pushnachricht mit Links
Beitrag von: dennis_n am 24 Januar 2018, 23:26:29
Hi Leute,

ich habe es heute endlich geschafft den TelegramBot einzurichten.
Bisher habe ich folgendes Szenario:

in fhem habe ich für jeden Kameraden ein Dummy erstellt mit dem UserReading "Anwesenheit". Diesem Reading setze ich über fhem entweder den Status 0 für "komme nicht zum Einsatz" oder Status 1 "Komme" oder Status 6 "Bin Abwesend". Das funktioniert soweit.

Dann habe ich über Telegram einen neuen Bot eingerichtet und in fhem alles integriert. Ausserdem ein entsprechendes Shortcut angelegt zum testen.
Wenn ich über das Handy im Telegram Messenger dem Bot folgendes sage: /AlarmStatus
zeigt er mir die zuvor als Fovoriten angelegten Shortcuts.

Problem oder Frage 1 die sich mir hier stellt: Hinter dem Shortcut ist jetzt der Befehl "set Kamerad1 Anwesenheit 0|1|6". Aber wie gibt Kamerad2, Kamerad3 usw. die Rückmeldung zu seinem entsprechenden Dummy in fhem? Also wie kann ich unterscheiden, welcher Kamerad gerade antwort gibt?

Problem oder Frage 2: Im Alarmfall will ich in eine Gruppe der Kameraden den Alarmtext schicken. Diese sollen dann jeweils auf ihrem Handy in den Gruppenchat gehen und antworten. Dabei soll jeweils ihr Dummy mit dem entsprechenden Wert gesetzt werden. Wie stelle ich das an?

Und 3. Frage: Wie funktioniert das überhaupt mit der Gruppe? Bisher habe ich ja lediglich den Bot angelegt. Wie wird denn daraus jetzt eine Gruppe mit allen Mitgliedern und nur mit den Mitgliedern der Feuerwehr. Ohne dass da noch jemand fremdes etwas schreiben kann?

Sorry aber ich bin aus dem Wiki Artikel nicht wirklich schlau geworden.

Vielen Dank für eure Hilfe.

Gruss
Dennis

Titel: Antw:Fragen zu Telegram
Beitrag von: igami am 25 Januar 2018, 04:45:44
Moin,

habe es gerade nur überflogen, aber es sieht so aus, als wenn sich das mit msgDialog lösen lässt.
Am Wochenende kann ich dir da auch noch genaueres zu sagen.
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 25 Januar 2018, 07:25:47
Moin,

ich würde keine Gruppe anlegen. Schreib jeden einzeln an und dieser Chat bekommt vom Kameraden einen extra langen lauten Klingelton. Kannst in der Gruppe ja nicht machen das alarmiert dann ja ständig bei jeder Rückmeldung.

Ich kann dir nen Codeschnipsel raussuchen, einfaches DOIF gesendet wird an vorgegeben Benutzer, wenn diese "anwesend" sind. Die bekommen eine Nachricht und 2 Antwortknöpfe. Das ist bei uns fürs Katzenklo machen ;-)

Die Antworten kannst wieder mit nem DOIF auswerten dem Kameraden zuordnen und per readingsgroup Anzeigen lassen.

1. im Monat dann noch Probealarm mit Bestätigung und fertig ist die Laube, falls Mal einer den Chat oder Telegram löscht.

Ins Gerätehaus kannst dann die Readingsgroup noch auf nen Bildschirm legen ;-)
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 25 Januar 2018, 07:28:14
Moin,

mit jeden einzelenen anschreiben, meinst Du vom angelegten Chatbot aus oder?
Über den Code würde ich mich freuen.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 25 Januar 2018, 07:43:57
Na klar übernimmt FHEM das und nicht von Hand ;-)
Tippe ich dir heute oder morgen Mal zusammen. Lässt sich in dem Zuge dann sicher noch optimieren.

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 25 Januar 2018, 07:45:13
Das wäre super! Das ist nämlich die letzte Hürde und dann kann ich unseren Alarmmonitor in Betrieb nehmen ;-)

Vielen Dank.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 25 Januar 2018, 13:01:13
So,

die Namen der Device kannst du natürlich ändern, musst dann aber teils den Code anpassen

zuerst ein Dummy:

define dummy_alarm dummy

danach ein DOIF, das reagiert auf den Dummy, änderst du den Wert/Text des Dummy mit set dummy_alarm hier dein Text, löst das DOIF aus und schickt an alle eingetragenen und nicht abwesend gemeldeten Kameraden den Text aus dem Dummy.

Achtung hier kein define sondern defmod!!, dazu im dummy_alarm auf Raw definition gehen, in dem großen Feld alles löschen und das hier einfügen und auf Execute commands

defmod doif_alarm DOIF (["dummy_alarm:"]) ## dummy_alarm wird mit Text befüllt\
({my $msg = q{Melderauslösung - [dummy_alarm:state]  \
      };;;;;;;; ##text wird aus dummy übernommen\
\
my @rows;;;;;;;;\
        push(@rows, q{Komme});;;;;;;; ##button1\
        push(@rows, q{komme nicht zum Einsatz});;;;;;;; ##button2\
push(@rows, q{Bin Abwesend});;;;;;;; ##button3\
     TelegramBot_SendKeyboard_row("[b]Hierdeinbot[/b]", "87413690", $msg, @rows) if("[rr_Kamerad:presence]" eq "present") ;;;;;;;; ##erster Kamerad nummer\
TelegramBot_SendKeyboard_row("[b]Hierdeinbot[/b]", "87413690", $msg, @rows) if("[rr_Kamerad:presence]" eq "present") ;;;;;;;; ##zweiter Kamerad\
     })


für weitere Kameraden fügst du nach dem anlegen ein:

TelegramBot_SendKeyboard_row("[b]Hierdeinbot[/b]", "87413690", $msg, @rows) if("[rr_Kamerad:presence]" eq "present") ;;;;;;;;


define rr_Kamerad dummy
setreading rr_Kamerad presence present

Du musst anstatt Hierdeinbot deinen Telegrambot einfügen, anstatt 87413690 die msgPeerId (hab ich genommen falls 2 Kameraden den gleichen Namen haben) und du brauchst ein Device z.B. ein Dummy (rr_Kamerad im Beispiel) mit dem Reading presence das auf present stehen muss um die Meldung zu bekommen.

Die Auswertung, noch ein DOIF, reagiert auf das Reading msgPeerId und schreibt ins DOIF ein Reading in der Form ID und Antworttext

define doif_antwort DOIF (["hierdeinbot:msgPeerId"])(setreading $SELF [$DEVICE:msgPeerId] [$DEVICE:msgText])

beide DOIF bitte das Attribut: do always setzen

Was aktuell für mich nicht klar war:

-ist das ein reines System nur für die Feuerwehr oder läuft da noch dein privates drüber? das würde dann das doif_antwort auch mit deinem privaten füllen, könnte man aber noch abfangen
-was passiert wenn 10 Kameraden zeitgleich drücken? Wir haben hier "nur" 4 User :-) Müsstet ihr in geselliger Runde mal testen

Einrichtung bei den Kameraden:

-Du machst in Telegram eine Gruppe
-Du fügst den Telegrambot der Gruppe hinzu
-Jeder schreibt dem nun für ihn sichtbaren Telegrambot eine kurze Nachricht, löscht den Chat aber nicht.

-Du siehst nun unter dem Reading Contacts im Telegrambot n Haufen einträge nach folgendem Schema:

87081590:Dennis:@Milhouse

die Nummer ist die ID die im ersten DOIF genutzt wird
Der Name ist der Klarname aus Telegram, habt ihr da keine Doppelt kann man das im Antwortdoif auch noch verwenden und übersichtlich machen
das@ sind, wenn vom User vergeben Spitznamen

du Kannst nun den dummy_alarm mit Text füllen und damit die Alarmierung auslösen

- händisch
- mit einem AT (Probealarm immer Mittwoch 11 Uhr)
- per Abgriff eines regulären Melders (viele haben Ausgänge die FHEM überwachen kann)

Bau das mal so nach pack in erster und zweiter Kamerad deine Telegram ID, dann kannste testen :-)

Wenns irgendwo klemmt meld dich hier :-)

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 25 Januar 2018, 13:17:09
Hallo Achim,

ich bin begeistert. WOW, vielen Dnak für Deine Mühe.

Wir haben heute Abend Übung und dann werde ich mal schon den ein oder andere Kameraden mit Telegram vertraut machen.
Das System hängt dann bei uns im Gerätehaus. Meine privaten Sachen laufen da nicht drüber.

Den Alarm greife ich von einem digitalen Melder über Bosmon ab. Dort habe ich die Möglichkeit (zumindest so gelesen), dass ich den Alarm an Telegram weiterleiten kann.
Wobei, wenn ich dich richtig verstanden habe, dann muss ich von Bosmon aus ja nicht an Telegramm weiterleiten, sondern nur den Dummy "dummy_alaram" setzen.
Das kann ich von Bosmon aus mit dem Aufruf einer URL an fhem erledigen.

Und dann wird das DOIF die Kameraden über den Alarm informieren.

Soweit richtig? Den Rest probiere ich aus und melde mich.

Danke

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 25 Januar 2018, 14:00:33
na wenn möglich würde ich vom Bosmon auch den Meldetext in die URL packen, also den dummy nicht ein/aus setzen sondern set dummy_alarm Firma_XY Feueralarm ausgelöst oder set dummy_alarm Verkehrsunfall bla bla  was halt von der Leitstelle im Bosmon ankommt. Wenn das nicht mitschicken kannst, machst halt ein simples Alarm und gut :-)
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 25 Januar 2018, 14:05:10
Werde ich testen und Dir Rückmeldung geben.

Danke

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 28 Januar 2018, 23:50:50
Also ich habe getestet, doch bekomme folgenden Fehler im Reading error des doif_alarm angezeigt:

{my $msg = q{Melderauslösung - ALARM };;;; my @rows;;;; push(@rows, q{Komme});;;; push(@rows, q{komme nicht zum Einsatz});;;; push(@rows, q{Bin Abwesend});;;; TelegramBot_SendKeyboard_row("XXXmeinBotXXX", "13234234", $msg, @rows) if("present" eq "present") ;;;; TelegramBot_SendKeyboard_row("XXXmeinBotXXX", "3452345", $msg, @rows) if("present" eq "present") ;;;; }: Undefined subroutine &main::TelegramBot_SendKeyboard_row called at (eval 190) line 1.

Kannst Du mir nochmal helfen bitte?

Danke

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 29 Januar 2018, 06:10:21
Ahhh Mist,

da muss noch was in 99_utils  ;D ;D
Poste ich dir dann noch.

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 29 Januar 2018, 21:20:08
OK Danke.

Gruss
Dennis

Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 30 Januar 2018, 07:25:11
Moin,

also in die 99_myUtils.pm - haste die schon?

muss zwischen

# Enter you functions below _this_ line.

und

1;


das hier rein:

##########################################################

sub TelegramBot_SendKeyboard_row($$$@) {
  my ($name, $peer, $msg, @rows) = @_;
  my $hash = $defs{$name};
  my @keys;
  for (@rows){
    my @columns = split("\\|", $_);
    push(@keys, \@columns);
  }
  my $jsonkb = TelegramBot_MakeKeyboard($hash, 1, 0, @keys);
  TelegramBot_SendIt($hash, $peer, $msg, $jsonkb, 0);
  return;
}
####


Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 30 Januar 2018, 07:27:50
Muss ich schauen, ob ich die schon habe. Ich glaube schon.
Falls nicht? Einfach anlegen?

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 30 Januar 2018, 07:34:27
Moin,

ja, anlegen ist z.B. hier beschrieben:

https://wiki.fhem.de/wiki/99_myUtils_anlegen (https://wiki.fhem.de/wiki/99_myUtils_anlegen)

nur gibts da kein below this line :-) ich hab mal ein paar xxx eingefügt wo der code reinmuss :-)

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
   my ($hash) = @_;
}
xxxxxxxxxxxxx
1;
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 30 Januar 2018, 16:15:52
Leider funktioniert es noch nicht.
Im Logfile steht nun: 2018.01.30 16:14:11 1: TelegramBot_readToken: Error: No API token in file

Ich habe auch schon einen neuen Token generiert und im Device gesetzt. Trotzdem bekomme ich diesen Fehler.

Woran kann das liegen?

Hier der volle Logauszug:
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 2003.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 2007.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 1646.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 1678.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4104.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4178.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 3243.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:30 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:00:30 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 1864.
2018.01.30 16:00:30 3: eval: {my $msg = q{Melderauslösung - ALARM         };;;;    my @rows;;;;         push(@rows, q{Komme});;;;          push(@rows, q{komme nicht zum Einsatz});;;;  push(@rows, q{Bin Abwesend});;;;       TelegramBot_SendKeyboard_row("487124845", "482246749", $msg, @rows) if("present" eq "present") ;;;;       TelegramBot_SendKeyboard_row("487124845", "537105803", $msg, @rows) if("present" eq "present") ;;;;       }
2018.01.30 16:00:31 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:02:20 1: RMDIR: ./restoreDir/2018-01-25
2018.01.30 16:02:26 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:02:26 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:07:57 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:07:57 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:14:10 1: TelegramBot_readToken: Error: No API token in file
2018.01.30 16:14:11 1: TelegramBot_readToken: Error: No API token in file


Danke
Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 30 Januar 2018, 17:26:55
Also ich habe mal weiter getestet. Es liegt mal nicht am Telegram Bot.
Wenn ich nämlich normal eine Nachricht an den Bot über fhem schicke kommt diese auch an. Wenn ich vom Handy an den Bot schicke kommt es auch an.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 30 Januar 2018, 21:50:22
Ich brauche hier echt nochmal Hilfe. Ich ahbe versucht mit meinem Laienverständnis alles nachzuvollziehen, aber bekomme es nicht hin.

Danke

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 31 Januar 2018, 05:25:32
Moin,

dann schauen wir Mal, poste doch Mal deinen doif Code ;-)
Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 31 Januar 2018, 07:00:36
Hier der Inhalt des DEF vom doif_alarm:

(["dummy_alarm:"]) ## dummy_alarm wird mit Text befüllt
({my $msg = q{Melderauslösung - [dummy_alarm:state] 
      };;;; ##text wird aus dummy übernommen

my @rows;;;;
        push(@rows, q{Komme});;;; ##button1
        push(@rows, q{komme nicht zum Einsatz});;;; ##button2
push(@rows, q{Bin Abwesend});;;; ##button3
     TelegramBot_SendKeyboard_row("peerIDdesBot", "peerIDUser1", $msg, @rows) if("[dummy_Kamerad1:presence]" eq "present") ;;;; ##erster Kamerad nummer
     TelegramBot_SendKeyboard_row("peerIDdesBot", "peerIDUser2", $msg, @rows) if("[dummy_Kamerad2:presence]" eq "present") ;;;; ##zweiter Kamerad
     })


Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 31 Januar 2018, 07:38:31
Hi,

schau mal nach

"peerIDdesBot"


das sollte der Name das Botdevice also z.B. TelegramBot sein, in den Logs war da ne Nummer. Vermutlich hat dein Botdevice keine Nummer als Namen oder?

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 31 Januar 2018, 07:40:33
Ich hatte schon beides drin. Einmal die ID des Bot und dann den Namen selbst. Also den ich beim erstellen des Bot definiert habe: FWxxxxxx_bot

Ging mit beidem nicht.

Ahhhhh. Du meinst der Name des Device!!!! Das habe ich noch nicht versucht.
In fhem heisst das Device FWStatus.



Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 31 Januar 2018, 07:56:32
hmm ich meine den Namen des Telegrambot-Device in FHEM :-)

also in fhem das Telegrambot-Device öffnen und dort das Internal: NAME nehmen :-)
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 31 Januar 2018, 07:58:23
Werde ich gleich heute Abend versuchen. Auf die Idee bin ich nicht gekommen  ::)

Melde mich heute Abend nochmal.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 31 Januar 2018, 16:23:17
Alles klar. Das hat prima funktioniert. Verschicken funktioniert.

Jetzt aber noch 2 Fragen:

1. Wie kann ich es machen, dass die Antwort der einzelnen Kameraden im jeweiligen Dummy des Kameraden ankommen statt alle im Reading des doif_antwort?
2. Momentan gehen die Nachrichten wenn ein Alarm ausgelöst wird jeweils an den XYZ_bot im Telegram auf dem Handy. Du hattest in Deiner Anleitung aber folgendes geschrieben:
ZitatEinrichtung bei den Kameraden:

-Du machst in Telegram eine Gruppe
-Du fügst den Telegrambot der Gruppe hinzu
-Jeder schreibt dem nun für ihn sichtbaren Telegrambot eine kurze Nachricht, löscht den Chat aber nicht.

Für was sollte ich denn die Gruppe anlegen, wenn die Nachrichten eh an den XYZ_bot gehen?
Da stehe ich noch auf dem Schlauch  :P

Hier noch der Inhalt des antwort_doif:
(["FWStatus:msgPeerId"])(setreading $SELF [$DEVICE:msgPeerId] [$DEVICE:msgText])

Danke

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 31 Januar 2018, 16:55:09
Hi,

1. Würde gehen wenn der Dummy z.b. 35633266_dummy heißt, kannst dann ja über den alias wieder hübsch machen. Die Nummer wäre dann die ID. Dazu müsste man in beiden doif was ändern.

2. Du kannst mit dem Bot fremde nicht anschreiben, die müssen dem Bot zuerst schreiben. Den Bot finden sie am einfachsten in einer Gruppe mit dem Bot ;-)
Danach hast du dann auch die ID ;-)

Schaumal ob drauf kommst wie die doif ändern musst ansonst helfe ich gern nochmal ;-)

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 31 Januar 2018, 16:56:28
Alles klar Achim. Ich danke Dir echt vielmals. Hast Dir viel Arbeit gemacht.
Vielen vielen Dank.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 31 Januar 2018, 18:03:58
Och das meinste hab ich nur aus meinen auch zusammenklemmen gesammelten werken kopiert ;-)
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 31 Januar 2018, 22:14:08
Hi Achim,

also eine Sache ist mir noch aufgefallen und ich weiß aktuell nciht wie ich das lösen kann.
Die Rückmeldungen der einzelnen Kameraden visualisiere ich auf einem Bildschirm und Tabletui.

Das kalppt wunderbar und jede Rückmeldung kommt an und wird entweder durch ein grünen Pfeil oder rotes X angezeigt. Jetzt haben die Kameraden aber entdeckt, dass sie den Chat für normale Gespräche nutzen können und somit versauen Sie mir die Readings wo eigentlich nur "Komme", "Komme NICHT" drin stehen sollte, stehen halt jetzt die jeweiligen Texte. Da ich im Tabletui ja aber die Anzeige anhand der Werte aus den Readings mache, funktioniert das dann nciht mehr.

Gibt es eine Möglichkeit nur die Rückmeldungen zuzulassen? Oder wie kann ich das lösen?

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 01 Februar 2018, 07:23:49
Moin,

na klar gibt es da ne Möglichkeit :-)

Das Antwort doif



(["DeinBot:msgPeerId"]
and
( ## klammer auf für alle oder-Fälle
[DeinBot:msgText] eq "komme" ## keine Anführungszeichen zwischen den eckigen klammern aber ums gesuchte wort
or
[DeinBot:msgText] eq "komme nicht"
or
[DeinBot:msgText] eq "abwesend"
) ##klammer zu alle oder-Fälle
)
(setreading $SELF [$DEVICE:msgPeerId] [$DEVICE:msgText])




Alternativ, nimm den Bot aus der Gruppe wieder raus wenn alle einen Chat mit ihm haben. Dann bekommt er die Gruppen Nachrichten nicht mehr mit.
Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 07:26:46
Bist mein Held.

Danke.

Gruss
Dennis

Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 17:24:40
Hat wunderbar funktioniert. Vilen Dank.

Und dennoch muss ich Dich nochmal nerven. Gibt es eine Möglichkeit, dass das Reading nur eine bestimmte Zeit bestehen bleibt und sich danach wieder "leert"?
Hintergrund ist, dass nach ca. 1 Stunde wieder alles auf Null haben will.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 01 Februar 2018, 17:32:05
Hi,

ja, man könnte mit dem doif_alarm noch ein at-device erstellen/definieren, welches eine Stunde nach Alarmierung alle Readings löscht, evtl auch mit Status X überschreibt.

Hilft dir das weiter ? ;-) oder brauchst nochmals Code? ;-)
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 17:39:43
Ich glaube ich brauche nochmal den Code. Sorry
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 01 Februar 2018, 18:08:53
OK,

schick mir Mal was zu den Dummys wie die heißen ob du für jeden einen hast usw. und was beim "löschen" rein soll.

Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 18:14:11
Wieso brauchst Du die dummys der Kameraden? Also ich will dir die nciht vorenthalten, es geht mir nur ums verstehen.

Alle readings kommen ja im doif_antwort an.

Dort heißen die Readings entsprechend der msgPeerID.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 01 Februar 2018, 18:20:23
Na ich dachte die hast du nun in extra Dummys gepackt. Wenn die noch alle im doif Antwort angekommen dann hab ich den Aufbau ja noch ;-)
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 18:21:23
sind alle im doif_antwort  ;)

Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 01 Februar 2018, 18:34:01
Oki ;-)
kommt deine Anzeige durcheinander wenn die Readings ein Präfix bekommen z.b. id_25734777 anstatt 25734777?
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 18:35:50
Eigentlich nciht, müsste ich dann nur nochmal im TabletUI ändern.
lso wenn nur ein id_ davor kommt und sonst ändert sich nichts, dann kein Problem.

Gruss
Dennis

Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 01 Februar 2018, 18:45:16
OK,

nach net Stunde lieber komplett löschen oder mit einem anderen Status überschreiben?
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 01 Februar 2018, 18:47:06
Lieber die Readings leeren. Wobei es eigentlich egal ist. Ich schaue im Tabletui nach bestimmten Werten.

Wie es für Dich einfacher ist.

Ich bin allerdings jetzt mal weg. Wir haben Donnerstags Übung. Melde mich dann nachher wieder.

Danke schonmal

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 02 Februar 2018, 00:15:31
Sorry, bin jetzt erst wieder zu Hause. Wir haben heute ausgiebig die Alarmierung getestet und es hat alles funktioniert. Mit 10 Kameraden gleichzeitig gab es keine Probleme.

Jetzt fehlt nur noch den Status zurück zu setzen.

Vielen Dank für deine Mühe.

Gruß
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 02 Februar 2018, 09:16:07
Moin,

also:

doif_antwort wird der 2. Teil wie folgt geändert

(setreading $SELF id_[$DEVICE:msgPeerId] [$DEVICE:msgText])

das id_ kommt zusätzlich rein

doif_alarm bekommt noch ein anhängsel:



;;;; ##zweiter Kamerad
     },
define  at_reset at +01:00:00 deletereading doif_antwort id_.*) ## erstelle AT zum löschen der Antworten in doif_antwort nach einer stunde das AT löscht die Antworten und sich selber



neu ist der Teil nach der } beginnt mit , und wichtig die ) ist aktuell schon da, die ganz an den Schluss setzen

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 02 Februar 2018, 09:18:32
Werde ich heute Nachmittag zu Hause testen.

Vielen vielen Dank.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: Kuzl am 15 Februar 2018, 15:42:11
Hallo zusammen,

ich habe fast genau das gleiche vor.
Gibt es aus dem Modul heraus eine Möglichkeit, diese Buttons (glaube das heißt Inline Keyboard)
auch direkt mit der Nachricht mitzuschicken?
Ich denke nicht, dass die Kameraden bei einem Einsatz noch mühselig "/status" eingeben würden.
Es sollten gleich mit der Alarmierung die Buttens angezeigt werden.
Die Api gibt das wohl grundsätzlich schon her.

Viele Grüße,
Markus
Titel: Antw:Fragen zu Telegram
Beitrag von: dennis_n am 15 Februar 2018, 15:47:05
Hi,

bei dieser Lösung hier, werden die Buttons odr auch Shortcuts direkt mit eingebunden.
Aktuell wird das wirklich tolle kleine Script noch verfeinert.
Wenn alles fertig ist, könnte man fast ein eigenes Modul daraus machen ;-)

Aber das muss dann Achim entscheiden, der mir hier wirklich sehr hilft.

Gruss
Dennis
Titel: Antw:Fragen zu Telegram
Beitrag von: CBSnake am 15 Februar 2018, 16:46:16
Hi Markus,

klar Knöpfen sind frei "erstellbar" ein /blablaba brauchste natürlich nicht.

Hm ein Modul wäre wohl etwas zu viel des Guten, könnte man aber sicher bei bedarf daraus machen :-)

Grüße
Achim
Titel: Antw:Fragen zu Telegram
Beitrag von: Kuzl am 16 Februar 2018, 07:49:39
Zitat von: CBSnake am 15 Februar 2018, 16:46:16
klar Knöpfen sind frei "erstellbar" ein /blablaba brauchste natürlich nicht.

Ahh, wunderbar :)
Dann kann man natürlich noch über die location den Standpunkt des Einsatzes senden.... das gefällt mir :)