Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

Begonnen von viegener, 20 Juni 2015, 18:59:41

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#2775
Andersrum, also von 0 auf 1 könnte ich mir erklären aber eben nicht von 1 auf 0...

Annahme: kein Contact eingetragen oder dein Contact (warum auch immer) geblockt. Mit allowUnkownContacts auf 1 (was du ja "dauerhaft" hast/hattest) würden alle Contacts zugelassen, so auch "du"...
Wenn das der Fall wäre und du setzt es auf 0, dann bleibt alles geblockt...
Warum sollte es dann plötzlich gehen?

Hast du contacts in deinem Device eingetragen?

EDIT: zu den Logs etc. muss sich wohl der Entwickler äußern...

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)

wowogiengen

Hallo,
hier die komplette Definition, Wieder mit # und @ maskierte persönliche Infos...
define teleBot TelegramBot
attr teleBot .* 1
attr teleBot allowChannels 1
attr teleBot allowUnknownContacts 0
attr teleBot cmdFavorites Short
attr teleBot cmdKeyword ok
attr teleBot cmdRestrictedPeer #1 #2 #3 -#4 -#5
attr teleBot defaultPeer -#4
attr teleBot defaultPeerCopy 0
attr teleBot disable 0
attr teleBot favorites set RolladenWohnzimmer Auf;;set RolladenWohnzimmer up 5;;set RolladenWohnzimmer pct 75;;set RolladenWohnzimmer down 5;;set RolladenWohnzimmer Zu;;set AlleRolladen Auf;;set AlleRolladen Zu;;set RolladenBuero Auf;;set RolladenBuero Zu;;set RolladenBuero pct 60;;set HzgSetBad desired-temp 22;;set HzgSetBad desired-temp 29
attr teleBot pollingTimeout 20
attr teleBot pollingVerbose 2_Log
attr teleBot room telebot,Büro,System
attr teleBot textResponseCommands ich versuchs
attr teleBot verbose 2
#   FAILS      0
#   FUUID      5ce84ebd-f33f-a625-84bb-c98bb616e2802210
#   NAME       teleBot
#   NR         94
#   OLD_POLLING 235
#   POLLING    235
#   SNAME      teleBot
#   STATE      Polling
#   TYPE       TelegramBot
#   UPDATER    0
#   WAIT       0
#   eventCount 201
#   me         394885093:Wowogiengen_Heimautomation:@wowogiengen1bot
#   offset_id  945503425
#   sentLastResult SUCCESS
#   sentMsgId  7932
#   sentMsgOptions -msgid-
#   sentMsgPeer #Wowo_und_Petra
#   sentMsgPeerId -#4
#   sentMsgResult SUCCESS
#   sentMsgText TelegramBot FHEM : #3(-#4)\n Favoriten \n
#   sourceVersion $Id: 50_TelegramBot.pm 27218 2023-02-13 22:45:48Z viegener $
#   AliasCmds:
#   Contacts:
#     -#4 -#4::#Wowo_und_Petra
#     -#5 -#5::#Heimautomation
#     #1 #1:Petra:
#     #3  #3:Wolfgang:@wowogiengen
#   HU_DO_PARAMS:
#     NAME       
#     addr       https://api.telegram.org:443
#     auth       0
#     boundary   TelegramBot_boundary-x0123
#     buf       
#     code       200
#     compress   1
#     conn       
#     data       
#     displayurl <hidden>
#     header     agent: TelegramBot/1.0
#User-Agent: TelegramBot/1.0
#Accept: application/json
#Accept-Charset: utf-8
#Content-Type: multipart/form-data; boundary=TelegramBot_boundary-x0123
#     hideurl    1
#     host       api.telegram.org
#     httpheader HTTP/1.1 200 OK
#Server: nginx/1.18.0
#Date: Sat, 20 Jan 2024 11:07:58 GMT
#Content-Type: application/json
#Content-Length: 307
#Connection: close
#Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
#Access-Control-Allow-Origin: *
#Access-Control-Allow-Methods: GET, POST, OPTIONS
#Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
#     hu_blocking 0
#     hu_filecount 12
#     hu_port    443
#     hu_portSfx
#     loglevel   4
#     method     POST
#     path       /bot394885093:AAHTznK0C8F0x-c98gVtXg0aqm5TXe8nFew/sendMessage
#     protocol   https
#     redirects  0
#     timeout    30
#     url        https://api.telegram.org/bot#########:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/sendMessage
#     args:
#       -#4
#       TelegramBot FHEM : #3(-#4)\n Favoriten \n
#       {"one_time_keyboard":true,"keyboard":[["Short1 = set RolladenWohnzimmer Auf"],["Short2 = set RolladenWohnzimmer up 5"],["Short3 = set RolladenWohnzimmer pct 75"],["Short4 = set RolladenWohnzimmer down 5"],["Short5 = set RolladenWohnzimmer Zu"],["Short6 = set AlleRolladen Auf"],["Short7 = set AlleRolladen Zu"],["Short8 = set RolladenBuero Auf"],["Short9 = set RolladenBuero Zu"],["Short10 = set RolladenBuero pct 60"],["Short11 = set HzgSetBad desired-temp 22"],["Short12 = set HzgSetBad desired-temp 29"]]}
#       0
#       undef
#       -msgid-
#       1
#     hash:
#     sslargs:
#   HU_UPD_PARAMS:
#     FD         20
#     NAME       
#     addr       https://api.telegram.org:443
#     auth       0
#     buf       
#     code       200
#     compress   1
#     displayurl <hidden>
#     header     agent: TelegramBot/1.0
#User-Agent: TelegramBot/1.0
#Accept: application/json
#Accept-Charset: utf-8
#     hideurl    1
#     host       api.telegram.org
#     hu_blocking 0
#     hu_filecount 275
#     hu_inProgress  TelegramBot_UpdatePoll:2435 TelegramBot_Callback:755 __ANON__:783
#     hu_port    443
#     hu_portSfx
#     isPolling  update
#     loglevel   4
#     method     GET
#     offset     945503425
#     path       /bot394885093:AAHTznK0C8F0x-c98gVtXg0aqm5TXe8nFew/getUpdates?offset=945503425&limit=5&timeout=20
#     protocol   https
#     redirects  0
#     timeout    45
#     url        https://api.telegram.org/bot#########:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/getUpdates?offset=945503425&limit=5&timeout=20
#     hash:
#     sslargs:
#   READINGS:
#     2024-01-20 12:07:58   Contacts        -#4::#Wowo_und_Petra -#5::#Heimautomation #3:Wolfgang:@wowogiengen #1:Petra:
#     2024-01-20 12:31:42   PollingErrCount 84
#     2024-01-20 12:31:42   PollingLastError NonBlockingGet: returned connect to https://api.telegram.org:443 timed out
#     2024-01-20 12:07:58   msgChat         #Wowo_und_Petra
#     2024-01-20 12:07:58   msgChatId       -#4
#     2024-01-20 12:07:58   msgDate         2024-01-20 12:07:58
#     2024-01-20 12:07:58   msgFileId       
#     2024-01-20 12:07:58   msgId           7931
#     2024-01-20 12:07:58   msgPeer         Wolfgang
#     2024-01-20 12:07:58   msgPeerId       #3
#     2024-01-20 12:07:58   msgReplyMsgId   
#     2024-01-20 12:07:58   msgText         Short
#     2024-01-20 12:07:58   prevMsgChat     #Wowo_und_Petra
#     2024-01-20 12:07:58   prevMsgDate     2024-01-20 12:07:53
#     2024-01-20 12:07:58   prevMsgFileId   
#     2024-01-20 12:07:58   prevMsgId       7930
#     2024-01-20 12:07:58   prevMsgPeer     Wolfgang
#     2024-01-20 12:07:58   prevMsgPeerId   #3
#     2024-01-20 12:07:58   prevMsgReplyMsgId
#     2024-01-20 12:07:58   prevMsgText     wenn du nur Short schreibst aktualisiert er die kommandos
#     2024-01-20 12:07:58   sentMsgId       7932
#     2024-01-20 12:07:58   sentMsgPeerId   -#4
#     2024-01-20 12:07:58   sentMsgResult   SUCCESS
#   inlinechats:
#   sentQueue:
#
setstate teleBot Polling
setstate teleBot 2024-01-20 12:07:58 Contacts -#4::#Wowo_und_Petra -#5::#Heimautomation #3:Wolfgang:@wowogiengen #1:Petra:
setstate teleBot 2024-01-20 12:31:42 PollingErrCount 84
setstate teleBot 2024-01-20 12:31:42 PollingLastError NonBlockingGet: returned connect to https://api.telegram.org:443 timed out
setstate teleBot 2024-01-20 12:07:58 msgChat #Wowo_und_Petra
setstate teleBot 2024-01-20 12:07:58 msgChatId -#4
setstate teleBot 2024-01-20 12:07:58 msgDate 2024-01-20 12:07:58
setstate teleBot 2024-01-20 12:07:58 msgFileId
setstate teleBot 2024-01-20 12:07:58 msgId 7931
setstate teleBot 2024-01-20 12:07:58 msgPeer Wolfgang
setstate teleBot 2024-01-20 12:07:58 msgPeerId #3
setstate teleBot 2024-01-20 12:07:58 msgReplyMsgId
setstate teleBot 2024-01-20 12:07:58 msgText Short
setstate teleBot 2024-01-20 12:07:58 prevMsgChat #Wowo_und_Petra
setstate teleBot 2024-01-20 12:07:58 prevMsgDate 2024-01-20 12:07:53
setstate teleBot 2024-01-20 12:07:58 prevMsgFileId
setstate teleBot 2024-01-20 12:07:58 prevMsgId 7930
setstate teleBot 2024-01-20 12:07:58 prevMsgPeer Wolfgang
setstate teleBot 2024-01-20 12:07:58 prevMsgPeerId #3
setstate teleBot 2024-01-20 12:07:58 prevMsgReplyMsgId
setstate teleBot 2024-01-20 12:07:58 prevMsgText wenn du nur Short schreibst aktualisiert er die kommandos
setstate teleBot 2024-01-20 12:07:58 sentMsgId 7932
setstate teleBot 2024-01-20 12:07:58 sentMsgPeerId -#4
setstate teleBot 2024-01-20 12:07:58 sentMsgResult SUCCESS


Ich habe das so eingestellt, wie im Wiki und im  Forum gefunden...



attr teleBot allowChannels 1
attr teleBot allowUnknownContacts 0
attr teleBot cmdRestrictedPeer #1 #2 #3 -#4 -#5



Und so hat es wochenlang funktioniert, von der Telegram-App unter Android genauso wie unter Windows...
Und dann gestern nicht mehr, bis ich allowUnknownContacts auf 1 gesetzt habe, dann konnte jeder was an den bot senden, und als ich es dann wieder auf 0 gesetzt habe, immer noch, also wie früher...


MadMax-FHEM

#2777
Also doch von 0 auf 1 und nicht wie du zuerst geschrieben hattest...

Zitat von: wowogiengen am 20 Januar 2024, 12:15:30Als ich das Attribut allowUnknownContacts probehalber auf 0 gestellt habe, konnte ich Nachrichten empfangen und darauf reagieren. Danach wieder auf 1 gestellt und es läuft trotzdem noch...

Komisch, oder?

So hatte ich ja eine "Erklärung": evtl. wurde halt etwas "blockiert"...

Und durch setzen auf 1 wieder "entblockt"...
Danach halt wieder wie zuvor...

Nur meine Vermutung und halt nur plausibel, wenn eben von 0 auf 1... ;)

Wo kommt attr teleBot  .* 1 her?

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)

wowogiengen

Woher das attribut herkommt, kann ich dir nicht sagen... Vielleicht sind das überbleibsel meiner frühen Versuche irgendwelche attribute über die Kommandozeile zu setzen...

Wieso:
- werden bisher bekannte Kontakte geblockt,
- nachdem alle zugelassen werden, kommen die bekannten auch wieder durch,
- und wenn ich dann die unbekannten wieder blocke, bleiben die bekannten weiterhin ungeblockt...

kann man sich irgendwie alle (nicht unterstützten) Attribute anzeigen lassen?

Viele Grüße Wolfgang

MadMax-FHEM

#2779
Ob das bei dir so war: keine Ahnung

War ja nur ein Erklärungsversuch und "Verwirrung" bzgl. meiner "Theorie" bzw. dass sie nicht passt/eigentlich nicht ganz passen kann kam ja durch deine falsche Darstellung, was du nun wie gesetzt hattest ;)

Zitat von: wowogiengen am 20 Januar 2024, 14:28:09kann man sich irgendwie alle (nicht unterstützten) Attribute anzeigen lassen?
Verstehe ich nicht...
Was nun?

Es gibt doch beim Device die "Drop Down" bei Attributen, dort stehen alle Attribute, die es für das Device gibt...
Neuerdings sogar sortiert "wo sie herkommen".
Also durchs Modul, FHEMWEB, userattr, ...

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)

wowogiengen

Hab gerade mal geschaut...
displayattr .* zeigt mir bei fast allen devices, dass es das attribut .* gibt.

Da ich das sicher nicht brauche...
wie kann ich es effektiv löschen?

wenn ich deleteattr .* .* eingebe würde FHEM ja alle Attribute löschen?

andies

Ich habe ein merkwürdiges Problem mit dem Bot. Er sendet und empfängt, alles ok. Ich habe eine at (mit einem komplexeren DOIF gab es ein analoges Problem), so dass regelmäßig gesendet werden soll,
Internals:
  COMMAND    { if ($wday == 5) { fhem ("set TelegramBot message @12345678 whatever") } }
  DEF        *08:07:00 { if ($wday == 5) { fhem ("set TelegramBot message @12345678 whatever") } }
  FVERSION  90_at.pm:0.280040/2023-09-28
  NAME      Info1
  NR        546
  PERIODIC  yes
  RELATIVE  no
  REP        -1
  STATE      Next: 08:07:00
  TIMESPEC  08:07:00
  TRIGGERTIME 1709363220
  TRIGGERTIME_FMT 2024-03-02 08:07:00
  TYPE      at
  READINGS:
    2024-03-01 14:17:15  state          Next: 08:07:00
Attributes:

Die dort angegebene Adresse 12345678 ist in den FhemBot_ReceiveCustomPeer enthalten; es ist aber nicht defaultPeer. Führe ich den Befehl in der Kommandozeile aus, also
set TelegramBot message @12345678 whateverwird der Text an 12345678 gesendet.

Merkwürdig ist nun, dass am wday$==5 bei dem at eine Nachricht gesendet wird, aber dabei statt an den Adressaten die Nachricht an den defaultPeer und nicht den genannten Adressaten geht. 

Ist das Problem hier bekannt? Ich würde sonst weitersuchen und versuchen das einzugrenzen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

MadMax-FHEM

Evtl. maskieren?

Also @@12345678 oder \@12345678

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)

andies

Danke für die Hilfe! Es muss aber an ewtas anderem liegen (maskieren brachte nichts), verbose 5 liefert
2024.03.02 16:43:25 5: TelegramBot_SendIt TelegramBot: try to send message to :340579883: -:whatever: - add :<undef>: - replyid :<undef>::    options ::
2024.03.02 16:43:25 4: TelegramBot_GetFullnameForContact # Contacts is <undef>
und der Contact ist ja nicht undef. Ich suche mal im Code, was da los ist.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Ich kann das Problem jetzt reproduzieren und das ist völlig merkwürdig. Gebe ich in die Kommandozeile bei FHEM ein (ob Adresse maskiert oder nicht maskiert spielt keine Rolle)
{ fhem ("set myTelegramBot message @<nicht defaultPeer> inline") } so wird die Nachricht inline an den defaultPeer gesandt. Gebe ich dagegen ein
set myTelegramBot message @<nicht defaultPeer> outline wird die Nachricht an den Adressaten gesandt, der sie bekommen soll.

Ich muss den Wald vor lauter Bäumen nicht sehen. Kann mir da jemand helfen?

PS Ich habe im Namen einen Umlaut. Kann das daran liegen? Aber ich bin defaultPeer und der Adressat hat keinen Umlaut.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

MadMax-FHEM

Also ich habe exakt deine Perl-Variante, allerdings mit \@1234567 an mind. 2 Stellen in einer myUtils und es geht...

Wobei ich bei den Peers mit der jeweiligen ID arbeite...

Funktioniert problemlos, da bekommt immer der adressierte Peer die Nachricht...

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)

flummy1978

Ich hänge mich mal mit an  und kann das

Zitat von: MadMax-FHEM am 02 März 2024, 18:04:55Also ich habe exakt deine Perl-Variante, allerdings mit \@1234567 an mind. 2 Stellen in einer myUtils und es geht...

zu 100% bestätigen. ALLERDINGS nutze auch ich in den allermeisten fällen die ID statt der Namen.

Wenn es Dir hilft, kann ich das gerne mal versuchen auch bei mir zu reproduzieren, aber das wird 2-3 Tage dauern. Bin aktuell extremst eingespannt was Arbeit und drum herum angeht.

VG
Andreas

andies

Zitat von: flummy1978 am 04 März 2024, 11:51:23Wenn es Dir hilft, kann ich das gerne mal versuchen auch bei mir zu reproduzieren, aber das wird 2-3 Tage dauern. Bin aktuell extremst eingespannt was Arbeit und drum herum angeht.
Sehr gern. Und: Das hat alles Zeit, bloß keine Hektik bei diesen freiwilligen Sachen. Danke!
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

viegener

@andies: Nach meinem Verständnis hat das nichts mit dem TelegramBot zu tun sondern nachwievor mit Perl.
Also entweder wie bereits gesagt mit \ im String maskieren oder alternativ andere Zeichen zum Einleiten des Textes verwenden.
z.B.:

fhem ('set TelegramBot message @12345678 whatever')

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

andies

Danke, war tatsächlich fehlende Maskierung. Ich muss mir das mit den verschiedenen Strings endlich mal merken.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann