msgDialog: Instant Messaging als FHEM Interface

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

Vorheriges Thema - Nächstes Thema

TM4889

Ich stehe gerade etwas auf dem Schlauch bei dem Inline-Keyboard. Im Meta Dialog wird %me% als Inline-Keyboard angezeigt, jedoch funktioniert nichts wenn ich drauf klicke. Habe auch schon bereits "(%me%:%me%)" ausprobiert, ohne erfolgt. Kann mir jemand von euch weiterhelfen und schauen was ich bei meiner Definition übersehen habe?


mein Meta Dialog

Internals:
   CFGFN      /opt/fhem/config_cfg/Test-Funktionen.cfg
   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%:%me%) ",
"Dialog beendet."
]
}
}
   FUUID      5c7a3f7e-f33f-31dd-5434-13278f6e258f01b3
   MSGCOMMAND msg push \@$recipients $message
   NAME       Main_MsgDialog
   NOTIFYDEV  TYPE=(ROOMMATE|GUEST)
   NR         1294
   NTFY_ORDER 50-Main_MsgDialog
   STATE      rr.Marcus: abbrechen
   TRIGGER    Beenden,Zurück,Abbrechen,start
   TYPE       msgDialog
   OLDREADINGS:
   READINGS:
     2019-03-02 09:33:44   state           rr.Marcus: abbrechen
Attributes:
   allowed    everyone



mein Roommate
Internals:
   CFGFN      /opt/fhem/config_cfg/Homestatus_rgr.Bewohner_rr.Marcus.cfg
   CHANGED   
   DEF        rgr.Bewohner
   DURATIONTIMER 1551515955.04479
   FUUID      5c7a3f80-f33f-31dd-38bd-24b10b168609b931
   NAME       rr.Marcus
   NOTIFYDEV  global,BT_Tag.Marcus
   NR         1421
   NTFY_ORDER 50-rr.Marcus
   READY      1
   RESIDENTGROUPS rgr.Bewohner
   STATE      ???
   TYPE       ROOMMATE
   VERSION    20_ROOMMATE.pm:v0.0.18681/2019-02-21
   READINGS:
     2019-02-21 19:59:52   durTimerAbsence 00:00:00
     2019-02-21 19:59:52   durTimerAbsence_cr 0
     2019-02-21 19:59:52   durTimerPresence 00:00:00
     2019-02-21 19:59:52   durTimerPresence_cr 0
     2019-02-21 19:59:52   durTimerSleep   00:00:00
     2019-02-21 19:59:52   durTimerSleep_cr 0
     2019-03-02 09:33:45   fhemMsgPush     (start)
Dialog abgebrochen.
     2019-03-02 09:33:45   fhemMsgPushGw    TelegramBot:@XXXXXXXXX:OK
     2019-03-02 09:33:45   fhemMsgPushPrio 0
     2019-03-02 09:33:45   fhemMsgPushState 1
     2019-03-02 09:33:45   fhemMsgPushTitle -
     2019-03-02 09:33:44   fhemMsgRcvPush  abbrechen
     2019-03-02 09:33:44   fhemMsgRcvPushGw TelegramBot
     2019-03-02 09:33:45   fhemMsgState    1
     2019-03-02 09:33:45   fhemMsgStateTypes push:1
   TIMER:
     rr.Marcus_DurationTimer:
       HASH       rr.Marcus
       MODIFIER   DurationTimer
       NAME       rr.Marcus_DurationTimer
Attributes:
   alias      Marcus
   devStateIcon .*zuhause:user_available:absent .*anwesend:user_available:absent .*abwesend:user_away:home .*verreist:user_ext_away:home .*bettfertig:scene_toilet:asleep .*schlaeft:scene_sleeping:awoken .*aufgestanden:scene_sleeping_alternat:home .*:user_unknown:home
   eventMap   home:zuhause absent:abwesend gone:verreist gotosleep:bettfertig asleep:schlaeft awoken:aufgestanden
   group      Bewohner
   icon       people_sensor
   msgContactPush TelegramBot:@XXXXXXXXX
   room       Homestatus
   rr_presenceDevices BT_Tag.Marcus
   rr_realname alias
   webCmd     state
   widgetOverride state:zuhause,bettfertig,schlaeft,aufgestanden,abwesend,verreist



mein Bot
Internals:
   CFGFN      /opt/fhem/config_cfg/Service_Message.cfg
   CHANGED   
   DEF       
   FAILS      0
   FUUID      5c7a3f7b-f33f-31dd-11ca-d411b41fea09434f
   NAME       TelegramBot
   NR         761
   OLD_POLLING 12
   POLLING    12
   SNAME      TelegramBot
   STATE      Polling
   TYPE       TelegramBot
   UPDATER    0
   WAIT       0
   me         XXXXXXXXX:SmartHomeCCU:@SmartHomeCCU_bot
   offset_id  XXXXXXXXX
   sentLastResult SUCCESS
   sentMsgId  2880
   sentMsgOptions
   sentMsgPeer Marcus
   sentMsgPeerId XXXXXXXXX
   sentMsgResult SUCCESS
   sentMsgText
Dialog abgebrochen.
   AliasCmds:
   Contacts:
     XXXXXXXXX  XXXXXXXXX:Marcus:
   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.12.2
Date: Sat, 02 Mar 2019 08:33:45 GMT
Content-Type: application/json
Content-Length: 266
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     loglevel   4
     method     POST
     path       /bot780003243:AAHZZpvq-uKMarNXYzVCeOL8H3PFuFktofc/sendMessage
     protocol   https
     redirects  0
     timeout    30
     url        https://api.telegram.org/bot780003243:AAHZZpvq-uKMarNXYzVCeOL8H3PFuFktofc/sendMessage
     args:
       XXXXXXXXX
Dialog abgebrochen.
       {"inline_keyboard":[[{"callback_data":"start","text":"start"}]]}
       0
       undef
       
       1
     hash:
     sslargs:
   HU_UPD_PARAMS:
     FD         11
     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 11
     hu_port    443
     hu_portSfx
     isPolling  update
     loglevel   4
     method     GET
     offset     XXXXXXXXX
     path       /bot780003243:AAHZZpvq-uKMarNXYzVCeOL8H3PFuFktofc/getUpdates?offset=200413272&limit=5&timeout=120
     protocol   https
     redirects  0
     timeout    245
     url        https://api.telegram.org/bot780003243:AAHZZpvq-uKMarNXYzVCeOL8H3PFuFktofc/getUpdates?offset=200413272&limit=5&timeout=120
     hash:
     sslargs:
   READINGS:
     2019-03-02 09:31:55   Contacts        XXXXXXXXX:Marcus:
     2019-03-02 00:00:48   PollingErrCount 0
     2019-02-21 19:58:33   PollingLastError NonBlockingGet timed out on read from <hidden> after 245s
     2019-03-02 08:59:52   StoredCommands  FHEM set WZ.HKTH.001_Control controlMode auto
start

     2019-03-02 09:33:44   msgChat         Marcus
     2019-03-02 09:33:44   msgChatId       XXXXXXXXX
     2019-03-02 09:33:44   msgFileId       
     2019-03-02 09:33:44   msgId           2879
     2019-03-02 09:33:44   msgPeer         Marcus
     2019-03-02 09:33:44   msgPeerId       XXXXXXXXX
     2019-03-02 09:33:44   msgReplyMsgId   
     2019-03-02 09:33:44   msgText         abbrechen
     2019-03-02 09:33:44   prevMsgChat     Marcus
     2019-03-02 09:33:44   prevMsgFileId   
     2019-03-02 09:33:44   prevMsgId       2877
     2019-03-02 09:33:44   prevMsgPeer     Marcus
     2019-03-02 09:33:44   prevMsgPeerId   XXXXXXXXX
     2019-03-02 09:33:44   prevMsgReplyMsgId
     2019-03-02 09:33:44   prevMsgText     Berechtigungen
     2019-03-02 09:33:46   queryData       start
     2019-03-02 09:33:46   queryID         2961880442298486279
     2019-03-02 09:33:46   queryPeer       Marcus
     2019-03-02 09:33:46   queryPeerId     XXXXXXXXX
     2019-03-02 09:33:46   queryReplyMsgId 2880
     2019-03-02 09:33:45   sentMsgId       2880
     2019-03-02 09:33:45   sentMsgPeerId   XXXXXXXXX
     2019-03-02 09:33:45   sentMsgResult   SUCCESS
   inlinechats:
   sentQueue:
Attributes:
   alias      Telegram
   allowUnknownContacts 0
   cmdFavorites /cmd
   cmdKeyword FHEM
   cmdRestrictedPeer XXXXXXXXX
   defaultPeer XXXXXXXXX
   event-on-change-reading state
   event-on-update-reading msgText
   favorites  /[WZTemp_20]=set WZ.HKTH.001_Clima desired-temp 20.0;
/[WZTemp_23]=set WZ.HKTH.001_Clima desired-temp 23.0;
/[BADTemp_20]=set BAD.HKTH.001_Clima desired-temp 20.0;
/[BADTemp_25]=set BAD.HKTH.001_Clima desired-temp 25.0;
   favorites2Col 1
   group      Message-Service
   parseModeSend 1_Markdown
   pollingTimeout 120
   room       System
   utf8Special 1

binford6000

Moin,
dein msgConfig device wäre noch interessant...
Und hast du schon eigene Dialoge erstellt?

VG Sebastian

TM4889

Ich habe bereits eigene Dialoge erstellt, unter anderem auch einen mit einem Ziffernblock, welcher ebenfalls über ein Inline-Keyboard laufen soll.

mein msgConfig
Internals:
   CFGFN      /opt/fhem/config_cfg/Service_Message.cfg
   FUUID      5c7a46ae-f33f-31dd-4d29-eca3aac0bf5c581b
   NAME       globalMsg
   NOTIFYDEV  TYPE=(Jabber|TelegramBot|yowsup)
   NR         752
   NTFY_ORDER 50-globalMsg
   STATE      ???
   TYPE       msgConfig
   VERSION    75_msgConfig.pm:v0.0.18681/2019-02-21
   READINGS:
     2019-02-28 19:58:36   fhemMsgPush     (%me%) aaaa
     2019-02-28 19:58:36   fhemMsgPushGw   TelegramBot:OK
     2019-02-28 19:58:36   fhemMsgPushPrio 0
     2019-02-28 19:58:36   fhemMsgPushState 1
     2019-02-28 19:58:36   fhemMsgPushTitle -
     2019-02-28 19:58:36   fhemMsgState    1
     2019-02-28 19:58:36   fhemMsgStateTypes push:1 forwards:text>push
Attributes:
   group      Global
   msgContactPush TelegramBot
   msgDialog_evalSpecials me=start
TelegramBot=TelegramBot
   room       System
   userattr   msgDialog_evalSpecials:textField-long msgDialog_msgCommand:textField

binford6000

Der cmdalias "message2queryEditInline" ist auch nicht disabled?

TM4889

Zitat von: binford6000 am 02 März 2019, 10:13:51
Der cmdalias "message2queryEditInline" ist auch nicht disabled?

Ist dieser notwendig? Dieser ist doch nur zum Versenden und nicht zum Empfang notwendig. Oder liege ich da falsch?

binford6000

Ich schalte mit einem notify von normal auf Inline Keyboard um:
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");
  }
}

Wobei ich das ewig nicht mehr gemacht habe. Finde gerade das Inline Keyboard bei Telegram super!
VG Sebastian

TM4889

Zitat von: binford6000 am 02 März 2019, 10:35:37
Ich schalte mit einem notify von normal auf Inline Keyboard um:
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");
  }
}

Wobei ich das ewig nicht mehr gemacht habe. Finde gerade das Inline Keyboard bei Telegram super!
VG Sebastian

Siehe meine vorherige Antwort #604
Ich schalte im MsgDialog auf Inline um, in dem ich vor den Button "TelegramBot_MTYPE=queryInline" setze. Das funktioniert auch soweit, nur bekomm ich es nicht hin, dass der MsgDialog auf "queryData" vom TelegramBot triggert.

binford6000

Hmm da kann ich dir leider nicht weiterhelfen.
Aber vielleicht haben die anderen msgDialog-Junkies noch eine Idee...  ;)
VG Sebastian

TM4889

Habe mir e mal etwas genauer angeschaut. Der MsgDialog trigger nur auf "TYPE=(ROOMMATE|GUEST)"-Devices, also nicht direkt auf den TelegramBot. Somit müsste der Fehler doch im ROOMMATE Device liegen? Aber laut Logfile triggert ROOMATE auf nicht auf die queryData vom Bot.

binford6000

Dann probier mal
attr rr.Marcus event-on-update-reading fhemMsgRcvPush
VG Sebastian

TM4889

#610
Zitat von: binford6000 am 02 März 2019, 11:19:14
Dann probier mal
attr rr.Marcus event-on-update-reading fhemMsgRcvPush
VG Sebastian

Bringt auch nichts, da die queryData vom Bot nicht in das Reading geschrieben werden.

Fehler gefunden 😏

Wolle02

ZitatFehler gefunden 😏

Und möchtest du vielleicht gerne andere User, die eventuell das gleiche Problem haben an deiner Lösung teilhaben lassen?

TM4889

Zitat von: Wolle02 am 02 März 2019, 17:24:48
Und möchtest du vielleicht gerne andere User, die eventuell das gleiche Problem haben an deiner Lösung teilhaben lassen?

Gern, die Fehlerquelle saß wie so oft vorm Bildschirm  :-\

attr TelegramBot event-on-change-reading state
attr TelegramBot event-on-update-reading msgText


Da war es kein Wunder, dass nichts auf "queryData" getriggert wurde.

toensi

Hallo zusammen,
ich würde gerne das Modul mit Pushbullet nutzen, bekommen jedoch immer eine Fehlermeldung beim Gateway, please help :=)

fhemMsgPushGw Pushbullet:UNDEFINED aber es ist doch da :
5c592822-f33f-c225-5839-14874032f9cbcbb6
LAST_PUSH   2019-03-10 09:27:57 NAME  push  NR  73 STATE Initialized TYPE Pushbullet Readings state Initialized

Besten Dank vorab ! :=)

igami

Zitat von: toensi am 10 März 2019, 10:06:35
Hallo zusammen,
ich würde gerne das Modul mit Pushbullet nutzen, bekommen jedoch immer eine Fehlermeldung beim Gateway, please help :=)

fhemMsgPushGw Pushbullet:UNDEFINED aber es ist doch da :
5c592822-f33f-c225-5839-14874032f9cbcbb6
LAST_PUSH   2019-03-10 09:27:57 NAME  push  NR  73 STATE Initialized TYPE Pushbullet Readings state Initialized

Besten Dank vorab ! :=)
also geht der msg Befehl schon nicht? Dann bitte an den Maintainer von msg wenden
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED