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
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.
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
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.
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
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.
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 ;-)
Moin,
mit jeden einzelenen anschreiben, meinst Du vom angelegten Chatbot aus oder?
Über den Code würde ich mich freuen.
Gruss
Dennis
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
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
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
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
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 :-)
Werde ich testen und Dir Rückmeldung geben.
Danke
Gruss
Dennis
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
Ahhh Mist,
da muss noch was in 99_utils ;D ;D
Poste ich dir dann noch.
Grüße
Achim
OK Danke.
Gruss
Dennis
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
Muss ich schauen, ob ich die schon habe. Ich glaube schon.
Falls nicht? Einfach anlegen?
Gruss
Dennis
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;
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
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
Ich brauche hier echt nochmal Hilfe. Ich ahbe versucht mit meinem Laienverständnis alles nachzuvollziehen, aber bekomme es nicht hin.
Danke
Gruss
Dennis
Moin,
dann schauen wir Mal, poste doch Mal deinen doif Code ;-)
Grüße
Achim
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
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
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
hmm ich meine den Namen des Telegrambot-Device in FHEM :-)
also in fhem das Telegrambot-Device öffnen und dort das Internal: NAME nehmen :-)
Werde ich gleich heute Abend versuchen. Auf die Idee bin ich nicht gekommen ::)
Melde mich heute Abend nochmal.
Gruss
Dennis
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
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
Alles klar Achim. Ich danke Dir echt vielmals. Hast Dir viel Arbeit gemacht.
Vielen vielen Dank.
Gruss
Dennis
Och das meinste hab ich nur aus meinen auch zusammenklemmen gesammelten werken kopiert ;-)
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
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
Bist mein Held.
Danke.
Gruss
Dennis
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
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? ;-)
Ich glaube ich brauche nochmal den Code. Sorry
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.
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
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 ;-)
sind alle im doif_antwort ;)
Oki ;-)
kommt deine Anzeige durcheinander wenn die Readings ein Präfix bekommen z.b. id_25734777 anstatt 25734777?
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
OK,
nach net Stunde lieber komplett löschen oder mit einem anderen Status überschreiben?
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
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
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
Werde ich heute Nachmittag zu Hause testen.
Vielen vielen Dank.
Gruss
Dennis
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
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
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
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 :)