Hauptmenü

Fragen zu Telegram

Begonnen von dennis_n, 22 Januar 2018, 21:25:09

Vorheriges Thema - Nächstes Thema

CBSnake

Ahhh Mist,

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

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

dennis_n


CBSnake

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
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

dennis_n

Muss ich schauen, ob ich die schon habe. Ich glaube schon.
Falls nicht? Einfach anlegen?

Gruss
Dennis

CBSnake

Moin,

ja, anlegen ist z.B. hier beschrieben:

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;
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

dennis_n

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

dennis_n

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

dennis_n

Ich brauche hier echt nochmal Hilfe. Ich ahbe versucht mit meinem Laienverständnis alles nachzuvollziehen, aber bekomme es nicht hin.

Danke

Gruss
Dennis

CBSnake

Moin,

dann schauen wir Mal, poste doch Mal deinen doif Code ;-)
Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

dennis_n

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

CBSnake

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
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

dennis_n

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

CBSnake

hmm ich meine den Namen des Telegrambot-Device in FHEM :-)

also in fhem das Telegrambot-Device öffnen und dort das Internal: NAME nehmen :-)
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

dennis_n

Werde ich gleich heute Abend versuchen. Auf die Idee bin ich nicht gekommen  ::)

Melde mich heute Abend nochmal.

Gruss
Dennis

dennis_n

#29
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