msgDialog: Instant Messaging als FHEM Interface

Begonnen von igami, 30 September 2017, 15:09:01

Vorheriges Thema - Nächstes Thema

Amenophis86

Das Problem ist glaube, dass die get Abfrage keine Antwort erhält. Gebe ich folgendes in die Commandline ein:
get TYPE=msgDialog:FILTER=NAME!=meta_Dialog:FILTER=allowed=.*(rr_Etienne|everyone).* trigger

bekomme ich ein leeres Popup. Und das obwohl ich ja einen Test Dialog noch angelegt habe.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Amenophis86

Fehler gefunden. In meinem Test Dialog fehlte der Trigger:
"%me%": { zu Beginn. Damit war die get Abfrage immer 0 und damit hat die Nachricht nicht geklappt. Jetzt geht es :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

GammaTwin

Dein Konstrukt ist trotzdem nicht klar. Ich habe in keinem Dialog den Trigger "%me%": {, außer im Meta-Dialog.

Dein me ist ja "Meta"
evalSpecials me=Meta
Daher sollte nach der Eingabe von "Meta" aus dem Test-Dialog der Trigger "Test" angezeigt werden, aus:
"Test": {
Und zusätzlich "abbrechen", in Summe:
Schaltflächen:
Test
abbrechen

angezeigter Text:

Ich kann folgendes für dich tun:


Aber wenn es funktioniert  :)

Amenophis86

Es war nicht expliziert der Trigger %me% sondern es hatte wohl generell der Trigger gefehlt.

So sah der fehlerhafte Code aus:
{
  "Test": {
    "match": "Test",
    "setOnly": false,
    "commands": ["set test off",
"set test on"],
    "message": [
      "Schalte test Dummy:"
    ]
  }
}


Was fehlte war noch ein Trigger vor allem. Bei meinem Test, dann der Trigger %me%. Inzwischen ist es ein anderer Trigger. Aber ich kam nur drauf, weil ich den Meta Dialog einfach nochmal kopiert und angepasst hatte und dabei ist das %me% stehen geblieben und hat mir dann gezeigt was der Fehler war.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

SmiL3

Hallo
Ich bekomme es nicht zum Laufen / finde nicht den Fehler.
Es lief mal kurz, dann bekam ich nur noch Text als Antwort.
message @rr_Matti (test) (abbrechen)
Ich kann folgendes für dich tun:


Ok dachte ich, setzte ich alles nochmal neu auf. Danach wird es schon gehen.
Pustekuchen
Immernoch der selbe Fehler, nur Text dazu kommt das in Telegamm alte normale Keyboard angezeit werden.

Ich hoffe Ihr könnt mir helfen es hin zubekommen.
Telegam
defmod Telegram TelegramBot
attr Telegram defaultPeer 1xxxxxxxx
attr Telegram pollingTimeout 120
attr Telegram utf8Special 1

setstate Telegram Polling
setstate Telegram 2021-08-23 12:10:48 Contacts 1xxxxxxx:Matti:
setstate Telegram 2021-08-23 12:07:40 PollingErrCount 0
setstate Telegram 2021-08-23 23:29:11 msgChat Matti
setstate Telegram 2021-08-23 23:29:11 msgChatId 1xxxxxxx
setstate Telegram 2021-08-23 23:29:11 msgFileId
setstate Telegram 2021-08-23 23:29:11 msgId 44152
setstate Telegram 2021-08-23 23:29:11 msgPeer Matti
setstate Telegram 2021-08-23 23:29:11 msgPeerId 1xxxxxxxx
setstate Telegram 2021-08-23 23:29:11 msgReplyMsgId
setstate Telegram 2021-08-23 23:29:11 msgText Q
setstate Telegram 2021-08-23 23:29:11 prevMsgChat Matti
setstate Telegram 2021-08-23 23:29:11 prevMsgFileId
setstate Telegram 2021-08-23 23:29:11 prevMsgId 44150
setstate Telegram 2021-08-23 23:29:11 prevMsgPeer Matti
setstate Telegram 2021-08-23 23:29:11 prevMsgPeerId 1xxxxxxx
setstate Telegram 2021-08-23 23:29:11 prevMsgReplyMsgId
setstate Telegram 2021-08-23 23:29:11 prevMsgText Q
setstate Telegram 2021-08-23 17:47:47 rr_Matti_sentMsgId 44145
setstate Telegram 2021-08-23 23:29:12 sentMsgId 44153
setstate Telegram 2021-08-23 23:29:12 sentMsgPeerId 1xxxxxxx
setstate Telegram 2021-08-23 23:29:12 sentMsgResult SUCCESS


msgConfig
defmod myMsgConfig msgConfig
attr myMsgConfig userattr msgDialog_evalSpecials:textField-long msgDialog_msgCommand:textField
attr myMsgConfig comment FHEM Global Configuration for command 'msg'
attr myMsgConfig group Global
attr myMsgConfig msgContactPush Telegram
attr myMsgConfig msgDialog_evalSpecials me=Q\
TelegramBot=Telegram
attr myMsgConfig msgDialog_msgCommand msg message \@$recipients $message
attr myMsgConfig msgType text
attr myMsgConfig stateFormat fhemMsgState
attr myMsgConfig verbose 5

setstate myMsgConfig 1
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgPush message @rr_Matti (test) (abbrechen) \
Ich kann folgendes für dich tun:
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgPushGw  Telegram:OK
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgPushPrio 0
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgPushState 1
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgPushTitle -
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgState 1
setstate myMsgConfig 2021-08-23 23:29:11 fhemMsgStateTypes push:1 forwards:text>push


Residents
defmod rr_Matti ROOMMATE Residents
attr rr_Matti alias Status
attr rr_Matti comment Auto-created by Residents
attr rr_Matti devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Matti group Matti
attr rr_Matti icon people_sensor
attr rr_Matti msgContactPush Telegram:@1xxxxxxxx
attr rr_Matti room Residents
attr rr_Matti rr_realname group
attr rr_Matti sortby 1
attr rr_Matti webCmd state

setstate rr_Matti home
setstate rr_Matti 2021-08-23 12:03:40 durTimerAbsence 00:00:00
setstate rr_Matti 2021-08-23 12:03:40 durTimerAbsence_cr 0
setstate rr_Matti 2021-08-24 00:01:36 durTimerPresence 11:57:56
setstate rr_Matti 2021-08-24 00:01:36 durTimerPresence_cr 718
setstate rr_Matti 2021-08-23 12:03:40 durTimerSleep 00:00:00
setstate rr_Matti 2021-08-23 12:03:40 durTimerSleep_cr 0
setstate rr_Matti 2021-08-23 23:29:11 fhemMsgRcvPush Q
setstate rr_Matti 2021-08-23 23:29:11 fhemMsgRcvPushGw Telegram
setstate rr_Matti 2021-08-23 12:03:40 lastArrival 2021-08-23 12:03:40
setstate rr_Matti 2021-08-23 12:03:40 lastState initialized
setstate rr_Matti 2021-08-23 12:03:40 mood calm
setstate rr_Matti 2021-08-23 12:03:40 presence present
setstate rr_Matti 2021-08-23 12:03:40 state home
setstate rr_Matti 2021-08-23 12:03:40 wayhome 0


meta_Dialog
defmod meta_Dialog msgDialog {\
"%me%": {\
      "match": "\/?(start|%me%)",\
      "commands": "deletereading TYPE=msgDialog $recipient_history",\
      "message": [\
         "{return('(' . join(') (', sort{lc($a) cmp lc($b)} (split('\n', fhem('get TYPE=msgDialog:FILTER=NAME!=$SELF:FILTER=allowed=.*($recipient|everyone).* trigger', 1)))) . ') (abbrechen) ')}",\
         "Ich kann folgendes für dich tun:"\
      ]\
   },\
   "zurück": {\
      "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/((.+)\\|.+$)/;;;;;;;; return($2 || $1);;;;;;;}"\
   },\
   "abbrechen": {\
      "match": "\/?abbrechen",\
      "commands": "deletereading TYPE=msgDialog $recipient_history",\
      "message": [\
         "TelegramBot_MTYPE=queryInline (%me%) ",\
         "Dialog abgebrochen."\
      ]\
   },\
   "beenden": {\
      "match": "\/?beenden",\
      "commands": "deletereading TYPE=msgDialog $recipient_history",\
      "message": [\
         "TelegramBot_MTYPE=queryInline (%me%) ",\
         "Dialog beendet."\
      ]\
   }\
}
attr meta_Dialog allowed everyone
attr meta_Dialog room Dialog

setstate meta_Dialog rr_Matti: Q
setstate meta_Dialog 2021-08-23 23:29:11 state rr_Matti: Q


test_dialog
defmod test_dialog msgDialog {\
  "test": {\
    "message": [\
      "(Fernsehbeleuchtung AN|Fernsehbeleuchtung AUS) ",\
      "(%me%) ",\
      "** Beleuchtung** ",\
      "Fernsehbeleuchtung ist: [test:STATE]"\
    ],\
    "Fernsehbeleuchtung AN": {\
      "commands": [\
        "set test on",\
        "set $SELF say @$recipient test"\
      ]\
    },\
    "Fernsehbeleuchtung AUS": {\
      "commands": [\
        "set test off",\
        "set $SELF say @$recipient test"\
      ]\
    }\
  }\
}
attr test_dialog allowed everyone
attr test_dialog room Dialog

setstate test_dialog 2021-08-23 17:22:16 state Initialized


dummy
defmod test dummy

setstate test on


message2queryEditInline
defmod message2queryEditInline cmdalias set .+ message (.|\n)+ AS {\
  my ($NAME, $cmd, $message) = split(/[\s]+/, $EVENT, 3);;\
  my $TYPE = InternalVal($NAME, "TYPE", "");;\
  (my $recipient, $message) = ($message =~ m/(@\S+)? (.+)/s);;\
  \
  if($TYPE eq "TelegramBot" && $recipient){\
    my ($contact) = devspec2array("TYPE=(ROOMMATE|GUEST):FILTER=msgContactPush=.*$recipient.*");;\
    my $sentMsgId = ReadingsVal($NAME, "$contact\_sentMsgId", "");;\
\
    if($sentMsgId ne ""){\
      fhem("set $NAME queryEditInline $sentMsgId $recipient $message");;\
    }\
    else{\
      fhem("set $NAME queryInline $recipient $message");;\
    }\
  }\
  else{\
    fhem("set $EVENT");;\
  }\
}
attr message2queryEditInline room msg

setstate message2queryEditInline defined


sentMsgIdByPeerId
defmod sentMsgIdByPeerId notify .+:sentMsgId.+ {\
  return unless($TYPE eq "TelegramBot");;\
  \
  my $dev_hash = $defs{$NAME};;\
  my $sentMsgId = ReadingsVal($NAME, "sentMsgId", "");;\
  my $sentMsgPeerId = ReadingsVal($NAME, "sentMsgPeerId", "");;\
  my ($contact) = devspec2array("TYPE=(ROOMMATE|GUEST):FILTER=msgContactPush=.*$sentMsgPeerId.*");;\
  \
  readingsSingleUpdate($dev_hash, "$contact\_sentMsgId", $sentMsgId, 1);;\
}
attr sentMsgIdByPeerId devStateIcon {ReadingsVal($name, "state", "inactive") eq "active" ? ".*:ios-on-blue:inactive" : ".*:ios-off:active"}
attr sentMsgIdByPeerId icon audio_mic
attr sentMsgIdByPeerId room msg

setstate sentMsgIdByPeerId active
setstate sentMsgIdByPeerId 2021-08-24 00:08:17 state active


inline_normal.NOT
defmod inline_normal.NOT notify inline_normal.DUM:.* {\
if ("$EVENT" =~ "on") {\
  fhem "set sentMsgIdByPeerId active;; attr message2queryEditInline disable 0";;\
  } \
elsif ("$EVENT" =~ "off") {\
  fhem "set sentMsgIdByPeerId inactive;; attr message2queryEditInline disable 1";;\
  }\
}
attr inline_normal.NOT room msg

setstate inline_normal.NOT active
setstate inline_normal.NOT 2021-08-23 17:43:48 state active


Wenn ich Q sende zum Bot steht das im log
2021.08.24 00:20:30 5: msgConfig myMsgConfig: called function msgConfig_Notify()
2021.08.24 00:20:30 5: msg myMsgConfig: msgType lookup for myMsgConfig:
2021.08.24 00:20:30 5: msg myMsgConfig:    Adding to @typesOr: text
2021.08.24 00:20:30 5: msg myMsgConfig:       Adding to @type: text
2021.08.24 00:20:30 5: msg myMsgConfig: Checking for available routes (triggered by type text)
2021.08.24 00:20:30 5: msg myMsgConfig: screen route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: light route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: audio route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: push route check result: ROUTE_AVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: mail route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 4: msg myMsgConfig: Available routes: screen=0 light=0 audio=0 text=1 push=1 mail=0
2021.08.24 00:20:30 4: msg myMsgConfig: Text routing decision: push(4)
2021.08.24 00:20:30 5: msg myMsgConfig: Checking for available routes (triggered by type push)
2021.08.24 00:20:30 5: msg myMsgConfig: screen route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: light route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: audio route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: push route check result: ROUTE_AVAILABLE
2021.08.24 00:20:30 5: msg myMsgConfig: mail route check result: ROUTE_UNAVAILABLE
2021.08.24 00:20:30 4: msg myMsgConfig: Available routes: screen=0 light=0 audio=0 text=1 push=1 mail=0
2021.08.24 00:20:30 5: msg myMsgConfig: Trying to send message via gateway Telegram
2021.08.24 00:20:30 5: msg myMsgConfig: Determined default title:
2021.08.24 00:20:30 5: msg myMsgConfig: msgSchema: replacing %RECIPIENT% and $RECIPIENT by ''
2021.08.24 00:20:30 5: msg myMsgConfig: msgSchema: replacing %TelegramBot_MTYPE% and $TelegramBot_MTYPE by 'message'
2021.08.24 00:20:30 5: msg myMsgConfig: push route command (fhem): set Telegram message  message @rr_Matti (test) (abbrechen)
Ich kann folgendes für dich tun:
2021.08.24 00:20:30 3: cmdalias message2queryEditInline called recursively, skipping execution
2021.08.24 00:20:30 3: msg myMsgConfig: ID=1629757230.57401.1 TYPE=push ROUTE=Telegram STATUS=OK PRIORITY=0 TITLE='' MSG='message @rr_Matti (test) (abbrechen)
Ich kann folgendes für dich tun:'
2021.08.24 00:20:30 5: msgConfig myMsgConfig: called function msgConfig_Notify()
2021.08.24 00:20:30 3: sentMsgIdByPeerId return value: rr_Matti_sentMsgId: 44157

Event Monitor
2021-08-24 00:20:30 msgDialog meta_Dialog rr_Matti_history:
2021-08-24 00:20:30 msgDialog meta_Dialog rr_Matti: Q
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgPush: message @rr_Matti (test) (abbrechen)  Ich kann folgendes für dich tun:
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgPushTitle: -
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgPushPrio: 0
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgPushGw:  Telegram:OK
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgPushState: 1
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgStateTypes: push:1 forwards:text>push
2021-08-24 00:20:30 msgConfig myMsgConfig fhemMsgState: 1
2021-08-24 00:20:30 ROOMMATE rr_Matti fhemMsgRcvPush: Q
2021-08-24 00:20:30 ROOMMATE rr_Matti fhemMsgRcvPushGw: Telegram
2021-08-24 00:20:30 TelegramBot Telegram msgId: 44156
2021-08-24 00:20:30 TelegramBot Telegram msgPeer: Matti
2021-08-24 00:20:30 TelegramBot Telegram msgPeerId: 1xxxxxx
2021-08-24 00:20:30 TelegramBot Telegram msgChat: Matti
2021-08-24 00:20:30 TelegramBot Telegram msgChatId: 1xxxxxx
2021-08-24 00:20:30 TelegramBot Telegram msgText: Q
2021-08-24 00:20:30 TelegramBot Telegram msgReplyMsgId:
2021-08-24 00:20:30 TelegramBot Telegram msgFileId:
2021-08-24 00:20:30 TelegramBot Telegram sentMsgResult: SUCCESS
2021-08-24 00:20:30 TelegramBot Telegram sentMsgId: 44157
2021-08-24 00:20:30 TelegramBot Telegram sentMsgPeerId: 1xxxxx
2021-08-24 00:20:30 TelegramBot Telegram rr_Matti_sentMsgId: 44157


Gruß Matti

Frieder

Hallo allerseits,
Ich habe mich grade neu angemeldet, habe aber mit Hilfe dieses Forums schon so einige Probleme gelöst!

Ich möchte fhem gern über telegram steuern und auslesen, was mit Hilfe des msgDialog auch problemlos funktioniert.

Was aber absolut nicht klappen will ist das Inline Keyboard. Ohne Inline (also mit schaltflächen unten) reagiert fhem wie erwartet auf eingehende Nachrichten. Inline schaltflächen werden auf dem Handy auch angezeigt, aber fhem reagiert nicht, wenn ich darauf klicke...
Habt ihr einen Tipp, was ich übersehe?
Danke

HeikoS

Ich verzweifle gerade. Habe mein FHEM neu aufgesetzt. Telegram selber funktioniert (Nachrichten kommen am Handy an).
msgDialog nach WIKI eingerichtet, aber der Meta-Dialog wird schon nicht vernünftig angezeigt.
define myMsgConfig msgConfig
attr myMsgConfig userattr msgDialog_evalSpecials:textField-long msgDialog_msgCommand:textField
attr myMsgConfig comment FHEM Global Configuration for command 'msg'
attr myMsgConfig group Global
attr myMsgConfig msgContactPush TelegramFhem
attr myMsgConfig msgDialog_evalSpecials me=QQ\
TelegramBot=TelegramFhem
attr myMsgConfig msgType text
attr myMsgConfig room Z_Dialoge,Z_System
attr myMsgConfig stateFormat fhemMsgState
attr myMsgConfig verbose 3
#   CFGFN     
#   FUUID      637bdc79-f33f-006c-1d70-680dfe33189f587f
#   FVERSION   75_msgConfig.pm:0.189950/2019-03-22
#   NAME       myMsgConfig
#   NOTIFYDEV  TYPE=(Jabber|TelegramBot|yowsup)
#   NR         16683
#   NTFY_ORDER 50-myMsgConfig
#   STATE      initialized
#   TYPE       msgConfig
#   eventCount 1
#   READINGS:
#     2022-11-21 21:15:53   fhemMsgState    initialized
#
setstate myMsgConfig initialized
setstate myMsgConfig 2022-11-21 21:15:53 fhemMsgState initialized


define meta_Dialog msgDialog {\
  "%me%": {\
    "match": "\/?(start|%me%)",\
    "commands": "deletereading TYPE=msgDialog $recipient_history",\
    "message": [\
      "{return('(' . join(') (', sort{lc($a) cmp lc($b)} (split('\n', fhem('get TYPE=msgDialog:FILTER=NAME!=$SELF:FILTER=allowed=.*($recipient|everyone).* trigger', 1)))) . ') (abbrechen) ')}",\
      "Ich kann folgendes für dich tun:"\
    ]\
  },\
  "zurück": {\
    "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/((.+)\\|.+$)/;;;; return($2 || $1);;;;)}"\
  },\
  "abbrechen": {\
    "match": "\/?abbrechen",\
    "commands": "deletereading TYPE=msgDialog $recipient_history",\
    "message": [\
      "TelegramBot_MTYPE=queryInline (%me%) ",\
      "Dialog abgebrochen."\
    ]\
  },\
  "beenden": {\
    "match": "\/?beenden",\
    "commands": "deletereading TYPE=msgDialog $recipient_history",\
    "message": [\
      "TelegramBot_MTYPE=queryInline (%me%) ",\
      "Dialog beendet."\
    ]\
  }\
}
attr meta_Dialog allowed msg_Heiko
attr meta_Dialog room Z_Dialoge
#   CFGFN     
#   DEF        {
#  "%me%": {
#    "match": "\/?(start|%me%)",
#    "commands": "deletereading TYPE=msgDialog $recipient_history",
#    "message": [
#      "{return('(' . join(') (', sort{lc($a) cmp lc($b)} (split('\n', fhem('get TYPE=msgDialog:FILTER=NAME!=$SELF:FILTER=allowed=.*($recipient|everyone).* trigger', 1)))) . ') (abbrechen) ')}",
#      "Ich kann folgendes für dich tun:"
#    ]
#  },
#  "zurück": {
#    "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/((.+)\\|.+$)/;; return($2 || $1);;)}"
#  },
#  "abbrechen": {
#    "match": "\/?abbrechen",
#    "commands": "deletereading TYPE=msgDialog $recipient_history",
#    "message": [
#      "TelegramBot_MTYPE=queryInline (%me%) ",
#      "Dialog abgebrochen."
#    ]
#  },
#  "beenden": {
#    "match": "\/?beenden",
#    "commands": "deletereading TYPE=msgDialog $recipient_history",
#    "message": [
#      "TelegramBot_MTYPE=queryInline (%me%) ",
#      "Dialog beendet."
#    ]
#  }
#}
#   FUUID      637bdd34-f33f-006c-c457-981ee96444046f42
#   MSGCOMMAND msg \@$recipients $message
#   NAME       meta_Dialog
#   NOTIFYDEV  TYPE=(ROOMMATE|GUEST)
#   NR         16710
#   NTFY_ORDER 50-meta_Dialog
#   STATE      msg_Heiko: QQ
#   TRIGGER    zurück,beenden,abbrechen,Dialog
#   TYPE       msgDialog
#   eventCount 10
#   OLDREADINGS:
#   READINGS:
#     2022-11-21 22:13:02   state           msg_Heiko: QQ
#
setstate meta_Dialog msg_Heiko: QQ
setstate meta_Dialog 2022-11-21 22:13:02 state msg_Heiko: QQ


define msg_Heiko ROOMMATE
attr msg_Heiko alias Status
attr msg_Heiko devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr msg_Heiko group msg_Heiko
attr msg_Heiko icon people_sensor
attr msg_Heiko msgContactPush TelegramFhem:791060837
attr msg_Heiko room ,Z_Dialoge
attr msg_Heiko rr_realname group
attr msg_Heiko sortby 1
attr msg_Heiko webCmd state
#   CFGFN     
#   DURATIONTIMER 1669065545.36769
#   FUUID      637bddfc-f33f-006c-a79a-6fc61728a9db5a11
#   FVERSION   20_ROOMMATE.pm:0.195330/2019-06-02
#   NAME       msg_Heiko
#   NOTIFYDEV  global,
#   NR         16739
#   NTFY_ORDER 50-msg_Heiko
#   READY      1
#   STATE      home
#   SUBTYPE    adult
#   TYPE       ROOMMATE
#   eventCount 65
#   READINGS:
#     2022-11-21 21:22:35   durTimerAbsence 00:00:00
#     2022-11-21 21:22:35   durTimerAbsence_cr 0
#     2022-11-21 22:18:05   durTimerPresence 00:54:00
#     2022-11-21 22:18:05   durTimerPresence_cr 54
#     2022-11-21 21:22:35   durTimerSleep   00:00:00
#     2022-11-21 21:22:35   durTimerSleep_cr 0
#     2022-11-21 22:13:02   fhemMsgPush     () (abbrechen)
#Ich kann folgendes für dich tun:
#     2022-11-21 22:13:02   fhemMsgPushGw    TelegramFhem:791060837:OK
#     2022-11-21 22:13:02   fhemMsgPushPrio 0
#     2022-11-21 22:13:02   fhemMsgPushState 1
#     2022-11-21 22:13:02   fhemMsgPushTitle -
#     2022-11-21 22:13:02   fhemMsgRcvPush  QQ
#     2022-11-21 22:13:02   fhemMsgRcvPushGw TelegramFhem
#     2022-11-21 22:13:02   fhemMsgState    1
#     2022-11-21 22:13:02   fhemMsgStateTypes push:1 forwards:text>push
#     2022-11-21 21:24:05   lastArrival     2022-11-21 21:24:05
#     2022-11-21 21:24:05   lastLocation    undefined
#     2022-11-21 21:24:05   lastState       initialized
#     2022-11-21 21:24:05   location        home
#     2022-11-21 21:24:05   mood            calm
#     2022-11-21 21:24:05   presence        present
#     2022-11-21 21:24:05   state           home
#     2022-11-21 21:24:05   wayhome         0
#   TIMER:
#     msg_Heiko_DurationTimer:
#       HASH       msg_Heiko
#       MODIFIER   DurationTimer
#       NAME       msg_Heiko_DurationTimer
#
setstate msg_Heiko home
setstate msg_Heiko 2022-11-21 21:22:35 durTimerAbsence 00:00:00
setstate msg_Heiko 2022-11-21 21:22:35 durTimerAbsence_cr 0
setstate msg_Heiko 2022-11-21 22:18:05 durTimerPresence 00:54:00
setstate msg_Heiko 2022-11-21 22:18:05 durTimerPresence_cr 54
setstate msg_Heiko 2022-11-21 21:22:35 durTimerSleep 00:00:00
setstate msg_Heiko 2022-11-21 21:22:35 durTimerSleep_cr 0
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgPush () (abbrechen) \
Ich kann folgendes für dich tun:
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgPushGw  TelegramFhem:791060837:OK
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgPushPrio 0
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgPushState 1
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgPushTitle -
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgRcvPush QQ
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgRcvPushGw TelegramFhem
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgState 1
setstate msg_Heiko 2022-11-21 22:13:02 fhemMsgStateTypes push:1 forwards:text>push
setstate msg_Heiko 2022-11-21 21:24:05 lastArrival 2022-11-21 21:24:05
setstate msg_Heiko 2022-11-21 21:24:05 lastLocation undefined
setstate msg_Heiko 2022-11-21 21:24:05 lastState initialized
setstate msg_Heiko 2022-11-21 21:24:05 location home
setstate msg_Heiko 2022-11-21 21:24:05 mood calm
setstate msg_Heiko 2022-11-21 21:24:05 presence present
setstate msg_Heiko 2022-11-21 21:24:05 state home
setstate msg_Heiko 2022-11-21 21:24:05 wayhome 0


Irgendwie werden mir am Handy noch Favoriten der alten FHEM-Installation angezeigt, obwohl aktuell keine definiert sind.
Sicherheitshalber noch mal der TelegramBot:
define TelegramFhem TelegramBot
attr TelegramFhem allowUnknownContacts 0
attr TelegramFhem cmdRestrictedPeer 791060837
attr TelegramFhem defaultPeer 791060837
attr TelegramFhem event-on-change-reading state
attr TelegramFhem event-on-update-reading msgText
attr TelegramFhem pollingTimeout 120
attr TelegramFhem room Z_Bridges,Z_System
attr TelegramFhem utf8Special 1
#   FAILS      0
#   NAME       TelegramFhem
#   NR         27
#   OLD_POLLING 182
#   POLLING    182
#   SNAME      TelegramFhem
#   STATE      Polling
#   TYPE       TelegramBot
#   UPDATER    0
#   WAIT       0
#   eventCount 26
#   me         813746914:HeikoFHEM:@HeikoFHEM_bot
#   offset_id  192616767
#   sentLastResult SUCCESS
#   sentMsgId  13489
#   sentMsgOptions
#   sentMsgPeer Heiko
#   sentMsgPeerId 791060837
#   sentMsgResult SUCCESS
#   sentMsgText 791060837 () (abbrechen)
#Ich kann folgendes für dich tun:
#   sourceVersion $Id: 50_TelegramBot.pm 24867 2021-08-23 10:23:15Z viegener $
#   Contacts:
#     791060837  791060837:Heiko:@HeikoStr
#   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: Mon, 21 Nov 2022 21:13:02 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 25
#     hu_port    443
#     hu_portSfx
#     loglevel   4
#     method     POST
#     path       /###/sendMessage
#     protocol   https
#     redirects  0
#     timeout    30
#     url        https://api.telegram.org/###/sendMessage
#     args:
#       791060837
#       791060837 () (abbrechen)
#Ich kann folgendes für dich tun:
#       undef
#       0
#       undef
#       
#       1
#     hash:
#     sslargs:
#   HU_UPD_PARAMS:
#     FD         7
#     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 5281
#     hu_inProgress  TelegramBot_UpdatePoll:2429 TelegramBot_Callback:729 __ANON__:779
#     hu_port    443
#     hu_portSfx
#     isPolling  update
#     loglevel   4
#     method     GET
#     offset     192616767
#     path       /###/getUpdates?offset=192616767&limit=5&timeout=120
#     protocol   https
#     redirects  0
#     timeout    245
#     url        https://api.telegram.org/###/getUpdates?offset=192616767&limit=5&timeout=120
#     hash:
#     sslargs:
#   READINGS:
#     2022-11-21 21:40:38   Contacts        791060837:Heiko:@HeikoStr
#     2022-11-21 00:00:29   PollingErrCount 0
#     2022-11-20 02:13:53   PollingLastError Callback returned error :Too Many Requests: retry after 5:
#     2022-11-21 22:13:02   msgChat         Heiko
#     2022-11-21 22:13:02   msgChatId       791060837
#     2022-11-21 22:13:02   msgFileId       
#     2022-11-21 22:13:02   msgId           13488
#     2022-11-21 22:13:02   msgPeer         Heiko
#     2022-11-21 22:13:02   msgPeerId       791060837
#     2022-11-21 22:13:02   msgReplyMsgId   
#     2022-11-21 22:13:02   msgText         QQ
#     2022-11-21 22:13:02   prevMsgChat     Heiko
#     2022-11-21 22:13:02   prevMsgFileId   
#     2022-11-21 22:13:02   prevMsgId       13487
#     2022-11-21 22:13:02   prevMsgPeer     Heiko
#     2022-11-21 22:13:02   prevMsgPeerId   791060837
#     2022-11-21 22:13:02   prevMsgReplyMsgId
#     2022-11-21 22:13:02   prevMsgText     Dialog
#     2022-11-21 22:13:02   sentMsgId       13489
#     2022-11-21 22:13:02   sentMsgPeerId   791060837
#     2022-11-21 22:13:02   sentMsgResult   SUCCESS
#   inlinechats:
#   sentQueue:
#
setstate TelegramFhem Polling
setstate TelegramFhem 2022-11-21 21:40:38 Contacts 791060837:Heiko:@HeikoStr
setstate TelegramFhem 2022-11-21 00:00:29 PollingErrCount 0
setstate TelegramFhem 2022-11-20 02:13:53 PollingLastError Callback returned error :Too Many Requests: retry after 5:
setstate TelegramFhem 2022-11-21 22:13:02 msgChat Heiko
setstate TelegramFhem 2022-11-21 22:13:02 msgChatId 791060837
setstate TelegramFhem 2022-11-21 22:13:02 msgFileId
setstate TelegramFhem 2022-11-21 22:13:02 msgId 13488
setstate TelegramFhem 2022-11-21 22:13:02 msgPeer Heiko
setstate TelegramFhem 2022-11-21 22:13:02 msgPeerId 791060837
setstate TelegramFhem 2022-11-21 22:13:02 msgReplyMsgId
setstate TelegramFhem 2022-11-21 22:13:02 msgText QQ
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgChat Heiko
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgFileId
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgId 13487
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgPeer Heiko
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgPeerId 791060837
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgReplyMsgId
setstate TelegramFhem 2022-11-21 22:13:02 prevMsgText Dialog
setstate TelegramFhem 2022-11-21 22:13:02 sentMsgId 13489
setstate TelegramFhem 2022-11-21 22:13:02 sentMsgPeerId 791060837
setstate TelegramFhem 2022-11-21 22:13:02 sentMsgResult SUCCESS


Log wirft folgendes aus:
2022.11.21 22:04:15 3: TelegramBot TelegramFhem: Found from id in message - id : 791060837
2022.11.21 22:04:15 1: PERL WARNING: Use of uninitialized value in split at (eval 71974) line 1.
2022.11.21 22:04:15 3: eval: {return('(' . join(') (', sort{lc($a) cmp lc($b)} (split('
', fhem('get TYPE=msgDialog:FILTER=NAME!=meta_Dialog:FILTER=allowed=.*(msg_Heiko|everyone).* trigger', 1)))) . ') (abbrechen) ')}
2022.11.21 22:04:15 3: msg msg_Heiko: ID=1669064655.51613.1 TYPE=push ROUTE=TelegramFhem RECIPIENT=791060837 STATUS=OK PRIORITY=0 TITLE='' MSG='() (abbrechen)
Ich kann folgendes für dich tun:'

Das Handy siehe Screenshot.

Beta-User

Sieht m.E. OK aus, was versendet wird. Das Problem scheint eher auf der Handy-app zu sein. Hatte das auch schon, dass die inline-Tastatur veraltet war, weiß aber grade auch nicht mehr, wie das zu beheben war. Alte Nachricht löschen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

HeikoS

Zitat von: Beta-User am 08 Dezember 2022, 07:41:34
Sieht m.E. OK aus, was versendet wird. Das Problem scheint eher auf der Handy-app zu sein. Hatte das auch schon, dass die inline-Tastatur veraltet war, weiß aber grade auch nicht mehr, wie das zu beheben war. Alte Nachricht löschen?
Ich habe tatsächlich mal den kompletten Nachrichtenverlauf (für alle Teilnehmer) gelöscht, jetzt ist die alte Inline-Tastatur weg.
Ändert aber nichts daran, dass der Meta-Dialog nicht angezeigt wird.

Beta-User

Ist denn wenigstens der "Umschalter" sichtbar? Da müsste nirgendwo ein komischer Schnörkel auf einer Taste sein.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

HeikoS

Meint das Symbol mit den 4 Kästen drin? (Im Screenshot links von Anhangklammer/Kamera)

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

GammaTwin

Grüße,

mir ist etwas unschönes passiert - aber auch interessant :)

Folgendes ist passiert:
- Der Telegram-Bot war in einem Menu, in dem sich Dinge schalten lassen - z.B Licht. Dort sind mehrere Lampen.
- Gleichzeitig war FHEM down
- Ich habe Licht geschalten, erst eins, dann ein weiteres. Passiert ist natürlich nicht. Die zu sendenden Texte standen aber da (logisch)
- Als ich FHEM wieder gestartet habe, wurden die Befehle abgearbeitet - Lichter gehen an :)

Das ist aber unschön. Wenn dies bei der Haustür passiert. Öffnung nach Stunden, vielleicht niemand da  :o

Daher meine Frage: kann ich in FHEM erkennen, wann die Nachricht in Telegram gesendet wurde? Ich habe kein Reading gefunden.

binford6000

#778
Hallo Zusammen,
ich habe heute bemerkt, dass msgDialog nicht mehr Dialoge ausliefert und der TelegramBot nur eine Fehlermeldung ausgibt wenn ich den Metadialog anfordere:

Callback returned error :Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message:

Im Log ist aber sehr schön zu sehen, dass der Metadialog den Dialog korrekt zusammenbaut:
2023.01.24 10:50:50.742 3: get TYPE=msgDialog:FILTER=NAME!=metaDialog:FILTER=NAME!=.*_fav:FILTER=NAME!=.*_sys:FILTER=NAME!=.*_user:FILTER=allowed=.*(rr_Sebastian|everyone).* trigger : 01.⭐️...Favoriten...⭐️
02.👩🏼..Bewohner..👩🏻
03.💡...Lampen....💡
04.🔋.Steckdosen.🔋
05.👾....Robbi.....👾
05.↕️..Rollläden..↕️
06.⚠️....Notfall.....⚠️
09.🛒.Einkaufsliste.🛍
10.🛠....System....🛠


Was läuft denn hier schief?

EDIT: set metaDialog reset hat nicht geholfen...

VG Sebastian

Beta-User

Hmm, scheint mir kein originäres Problem von msgDialog zu sein, die Meldung würde ich in TelegramBot verorten (#2325).

Eventuell musst du zwischendurch mal was anderes senden? (Ansonsten müßte die alte message ja noch vorhanden sein?)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files