msgDialog: Instant Messaging als FHEM Interface

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

Vorheriges Thema - Nächstes Thema

trixer

Zitat von: Wuehler am 26 Januar 2019, 15:25:14
Hi Mark,

Dann könnte es noch an irgendeinem Leerzeichen an unpassender Stelle liegen. Hast du schon eine 99_myUtils.pm? Darin neue Funktion anlegen und aus dem Dialog aufrufen.
Das wäre meiner Meinung nach die einfachste Variante das Problem weiter einzugrenzen. Darin kannst du dann auch alles mit Logausgaben zupflastern.
VG,
Dirk
Hi Dirk,
das mach ich heute Abend mal.
Danke
Mark

Gesendet von meinem LG-H870 mit Tapatalk


trixer

#586
Hi Dirk,
habe das jetzt mal auf die Schnelle in die 99_myUtils.pm ausgelagert.
So hat es funktioniert. Ich werde aber noch mal auf die API von openweathermap schauen müssen und das Ganze etwas liebevoller gestalten aber das ist ein anderes Thema.
Es sieht jetzt so aus (Textarray habe ich nur interessehalber aufgebaut):

############################################################################
###                 Hilfsroutine für SendImage                           ###
############################################################################

sub MsgSendImage ($)
{
    my ($msgText) = @_;
Log(3,'Übergabe an MsgSendImage: ' . $msgText);
    my @msgTextarray = split(/.*:\s/, $msgText);
    my $msgTextTeil1 = $msgTextarray[1];
    my $msgTextTeil2 = split(/;/, $msgTextTeil1);

  if ($msgText eq "Wetterjetzt") {
    fhem "set Telegram sendImage /opt/fhem/www/images/default/weather/".ReadingsVal('WessumWetter','icon','0').".png Das Wetter jetzt: "
  .ReadingsVal('WessumWetter','current_date_time','0')." ".ReadingsVal('WessumWetter','condition','0')." "
  .ReadingsVal('WessumWetter','temp_c','0')."C° ".ReadingsVal('WessumWetter','humidity','0')."% "
  .ReadingsVal('WessumWetter','wind_condition','0');
  }elsif ($msgText eq "Wetterprognose") {
    fhem "set Telegram sendImage /opt/fhem/www/images/default/weather/".ReadingsVal('WessumWetter','hfc1_icon','0').".png Das Wetter am: "
  .ReadingsVal('WessumWetter','hfc1_pubDate','0')." ".ReadingsVal('WessumWetter','hfc1_condition','0')." Min:"
  .ReadingsVal('WessumWetter','hfc1_tempLow','0')."C° Max: ".ReadingsVal('WessumWetter','hfc1_tempHigh','0')."C° ";

  }else  {
      fhem "set Telegram message Keine Wetterdaten vorhanden!"
  }
}


...und Aufruf im msdDialog entsprechend:
    "Wetter jetzt":{\
    "commands": "{ MsgSendImage('Wetterjetzt') }",\
    "message":[\
      "(%me%) ",\
      "Aktuelles Wetter."\
    ]\
    },\
    "Wetter Prognose":{\
"commands": "{ MsgSendImage('Wetterprognose') }" ,\
    "message":[\
      "(%me%) ",\
      "Das Wetter von heute."\
    ]\
    },\
    "Wetterdaten aktualisieren":{\
    "commands": "set WessumWetter update",\
    "message":[\
      "(%me%) ",\
      "Aktualisierung Wetterdaten angefragt."\
    ]\
}\
    }\
}


Danke für den Tipp!

Schönes Wochenende
Mark

jazzor

Guten Abend zusammen,

kann man die Menüeinträge löschen?
Ich nutze den Metadialog als Hauptmenü und wenn ich dann per abbrechen - egal an welchem Punkt - den Dialog abbreche, bekomme ich zwar die Antwort "Dialog abgebrochen" aber die Menüeinträge bleiben sicht- und klickbar.
Ich hatte im Kopf, dass die sich auch mal ausblendeten, bin mir aber nicht sicher. Hat jemand eine Idee?

igami

Zitat von: jazzor am 02 Februar 2019, 23:28:52
Guten Abend zusammen,

kann man die Menüeinträge löschen?
Ich nutze den Metadialog als Hauptmenü und wenn ich dann per abbrechen - egal an welchem Punkt - den Dialog abbreche, bekomme ich zwar die Antwort "Dialog abgebrochen" aber die Menüeinträge bleiben sicht- und klickbar.
Ich hatte im Kopf, dass die sich auch mal ausblendeten, bin mir aber nicht sicher. Hat jemand eine Idee?
Du benutzt inline keyboards? Ich selbst nutze die nicht, aber es gibt die Möglichkeit Nachrichten zu verändern.
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

jazzor

Zitat von: igami am 03 Februar 2019, 08:31:49
Du benutzt inline keyboards? Ich selbst nutze die nicht, aber es gibt die Möglichkeit Nachrichten zu verändern.
Tatsächlich nutze ich die normalen Keyboards.
Anbei mal zwei Bilder, um das Problem  zu verdeutlichen.
Nachdem ich abbrechen eingegeben habe, wird das Keyboard nicht ausgeblendet, und ich war mir sicher, dass es früher ausgeblendet wurde.

Wuehler

#590
Moin,

Ich denke du könntest dem Keyboard den Parameter one_time_keyboard mitgeben oder den Key ReplyKeyboardRemove verwenden.
Siehe
https://core.telegram.org/bots/api

VG,
Dirk

Edit: Ist noch ein ToDo im TelegramBot. Vielleicht kannst du Viegener ja unterstützen

jazzor

Zitat von: Wuehler am 05 Februar 2019, 18:56:47
Moin,

Ich denke du könntest dem Keyboard den Parameter one_time_keyboard mitgeben oder den Key ReplyKeyboardRemove verwenden.
Siehe
https://core.telegram.org/bots/api

VG,
Dirk

Edit: Ist noch ein ToDo im TelegramBot. Vielleicht kannst du Viegener ja unterstützen

Habe gerade mal mit verbose 5 auf meinem TelegramBot-Device mitgeloggt, als ich den meta-Dialog aus dem wiki frisch aufgerufen habe.

2019.02.06 21:27:13 5: TelegramBot_Set Telegram: called
2019.02.06 21:27:13 4: TelegramBot_Set Telegram: Processing TelegramBot_Set( message )
2019.02.06 21:27:13 4: TelegramBot_MakeKeyboard Telegram: json :{"keyboard":[["Tankstelle"],["abbrechen"]],"one_time_keyboard":true}: is utf8? yes
2019.02.06 21:27:13 4: TelegramBot_MakeKeyboard Telegram: json downgraded :{"keyboard":[["Tankstelle"],["abbrechen"]],"one_time_keyboard":true}: is utf8? no
2019.02.06 21:27:13 5: TelegramBot_Set Telegram: start send for cmd :message: and sendType :0:
2019.02.06 21:27:13 5: TelegramBot_SendIt Telegram: called
2019.02.06 21:27:13 5: TelegramBot_SendIt Telegram: try to send message to :############: -:
Ich kann folgendes für dich tun:: - add :{"keyboard":[["Tankstelle"],["abbrechen"]],"one_time_keyboard":true}: - replyid :<undef>::    options ::

Wie man sieht, wird "one_time_keyboard":true mitgesendet.
Um den Fehler dann weiter einzugrenzen, habe ich das Menü mit der portable Variante von Telegram am PC getestet, aber da scheint alles zu  funktionieren.
Ich gehe also momentan davon aus, dass es ein Bug in der iOs Version von Telegram ist.
Kann das jemand bestätigen oder alternativ widerlegen?
Vielen Dank!

perez

Erst mal vielen Dank an igami für das nette Modul.
Ich habe inzwischen mehrere Dialoge erstellt funktioniert alles bestens.
Allerdings frage ich mich, ob es möglich wäre nach absetzen der commands ein weiteren commands sofort hinterher zu senden, ohne erst ins Menü zu wechseln. Ich denke da an Lautstärke, wenn die z.B. zu laut gewählt wurdeund man diese mit absetzen erneuten commands auf passenden Wert bringt? Danke.

Hier ein Ausschnitt:
"Player":{
    "message":[
   "(0%|5%|10%|15%|20%) ",
   "(25%|30%|35%|40%|45%) ",
   "(50%|55%|60%|65%|70%) ",
   "(75%|80%|85%|90%|100%) ",
    "(abbrechen|zurück) ",
    "Bitte die Laustärke wählen"
  ],
  "0%":{
  "commands": "set Player_XY volume 0",
  "message":[
      "(%me%) ",
    "Lautstärke wurde verändert"
  ]   
   },
"5%":{
  "commands": "set Player_XY volume 5",
  "message":[
      "(%me%) ",
    "Lautstärke wurde verändert"
  ]   
   },
"10%":{
  "commands": "set Player_XY volume 10",
  "message":[
      "(%me%) ",
    "Lautstärke wurde verändert"
  ]   
   },
"15%":{
  "commands": "set Player_XY volume 15",
  "message":[
      "(%me%) ",
    "Lautstärke wurde verändert"
  ]   
   }

Smarti

#593
Hallo,

ich tobe mich gerade am Einkaufs Dialog aus, ich möchte / habe dieser erweitert. Allerdings habe ich noch ein Perl Verständnis Problem.

Ich lasse mir die Listen auflisten und kann eine auswählen, diese "merke" ich mir mit einem setreading. Nun benötige ich diese Liste wieder an diversen stellen dieses lese ich entweder durch ein ReadingsVal oder [$SELF:reading] zurück.

Allerdings kann ich nicht $SELF nutzen, da sonst einen error bekomme "Bareword "PostIt_Dialog" not allowed". Mir ist klar, dass dies mit dem Gültigkeitsbereich der Variable zusammenhängt, aber wie bekomme ich dies universell gelöst?

Momentan tut der Dialog, allerdings nur wenn ich $SELF durch den entsprechend Dialog Namen ersetze, ich möchte dies aber universell haben...


defmod PostIt_Dialog msgDialog { "Listen": {\
    "message": [\
  "{my $content = ReadingsVal('%PostMe%', 'postmeCnt', '');;my $list;; my @a;; for my $i (0..$content) { $list = 'postme'.sprintf('%02i',$i).'Name';; push(@a,ReadingsVal('%PostMe%',$list,''));;};; foreach (@a) {$content .= '('.$_.') ';;};;return('Keine Listen vorhanden') unless(@a);; return ($content);;}",\
  "Bitte eine Liste auswählen:"\
  ],\
\
  "Einkaufsliste": {\
  "match": "^(?!beenden).+",\
"commands": "setreading $SELF list $message",\
"message": [\
  "(Waren hinzufügen) ", \
  "(Waren entfernen) ", \
  "(einkaufen) ", \
  "(abbrechen) ",\
  "{my $content = (split(': ', fhem('get %PostMe% list '.ReadingsVal('PostIt_Dialog','list',''))))[1];;;; return('Keine Einträge vorhanden in \"[$SELF:list]\"') unless($content);;;; return(join('\n', split(',', $content)));;;;}"\
],\
"Waren hinzufügen": {\
  "message": [\
"Bitte jede Ware als neue Nachricht hinzufügen.",\
"Das hinzufügen von Waren durch \"/beenden\" beenden."\
  ],\
  "Ware hinzufügen": {\
"match": "[^/]+",\
"commands": [\
  "set %PostMe% add [$SELF:list] $message",\
  "setreading $SELF $recipient_history Listen|Einkaufsliste|Waren hinzufügen"\
]\
  }\
},\
"Waren entfernen": {\
  "message": [\
"{return('(' . join(') (', split(',', (split(': ', fhem('get %PostMe% list '.ReadingsVal('PostIt_Dialog','list',''))))[1]), 'beenden'). ') ')}",\
"Welche Ware möchtest du entfernen?"\
  ],\
  "Ware entfernen": {\
"match": "^(?!beenden).+",\
"commands": [\
  "set %PostMe% remove [$SELF:list] $message",\
  "set $SELF say @$recipient Listen|Einkaufsliste|Waren entfernen"\
]\
  }\
},\
"einkaufen": {\
  "commands": [\
"setreading $SELF $recipient_history Listen|Einkaufsliste|noch einzukaufen"\
  ],\
  "message": [\
"{return('(' . join(') (', split(',', (split(': ', fhem('get %PostMe% list '.ReadingsVal('PostIt_Dialog','list',''))))[1])) . ') ')}",\
"(beenden) ",\
"Bitte die Waren der Reihenfolge nach auswählen in der sie eingekauft werden."\
  ]\
},\
"noch einzukaufen": {\
  "message": [\
"{return('(' . join(') (', split(',', (split(': ', fhem('get %PostMe% list '.ReadingsVal('PostIt_Dialog','list',''))))[1])) . ') ')}",\
"(beenden) ",\
"Noch einzukaufen:"\
  ],\
  "Ware eingekauft": {\
"match": "^(?!beenden).+",\
"commands": [\
  "set %PostMe% remove [$SELF:list] $message",\
  "set $SELF say @$recipient Listen|Einkaufsliste|noch einzukaufen"\
]\
  }\
}    \
  }\
}\
}
attr PostIt_Dialog allowed rr_xxx,rr_yyy
attr PostIt_Dialog evalSpecials PostMe=PostIt
attr PostIt_Dialog group Dialog
attr PostIt_Dialog room Einkaufsliste,msg

setstate PostIt_Dialog rr_yyy: Toom
setstate PostIt_Dialog 2019-02-21 23:05:29 list Toom
setstate PostIt_Dialog 2019-02-21 23:05:29 state rr_yyy: Toom


Edit: Habe noch das History set $SELF say @$recipient Listen|Einkaufsliste|noch einzukaufen angepasst, damit der Dialog "läuft"

igami

Zitat von: perez am 21 Februar 2019, 19:41:04
Allerdings frage ich mich, ob es möglich wäre nach absetzen der commands ein weiteren commands sofort hinterher zu senden, ohne erst ins Menü zu wechseln. Ich denke da an Lautstärke, wenn die z.B. zu laut gewählt wurdeund man diese mit absetzen erneuten commands auf passenden Wert bringt?
Dafür muss das "history"-Reading passend mit einem command gesetzt werden:

"setreading $SELF $recipient_history [i:$SELF:TRIGGER]|<Pfad zur passenden Stelle>"
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

ErzGabriel

Hallo zusammen.
Ich versuche mir gerade einen Dialog zu bauen, indem ich Stausinformationen vom System erhalte.
Aber er funktioniert jetzt schon nicht, weil ich immer eine Fehlermeldung beim speichern erhalte, irgendwas mit den Klammern stimmt da nicht aber mir wills nicht in den Schädel, was ich falsch mache. Kann mal bitte einer von Euch drauf schauen und mir sagen, wo mein Fehler ist. Danke.


defmod status_Dialog msgDialog {"Systeminformationen":{\
  "message": [\
    "(Fenster) ",\
    "(Batterien Fenster) ",\
    "(Batterien Heizung) ",\
    "(Netzwerk) ",\
    "(System) ",\
    "TelegramBot_MTYPE=queryInline (%me%) ",\
    "Welche Informationen:"\
  ],\
    "Fenster":{\
    "message":[\
      "{return('(Wohnzimmer links) ') if(ReadingsVal('W_WOHN_L', 'state', ''))}",\
      "{return('(Wohnzimmer mitte) ') if(ReadingsVal('W_WOHN_M', 'state', ''))}",\
      "{return('(Wohnzimmer rechts) ') if(ReadingsVal('W_WOHN_R', 'state', ''))}",\
      "{return('(Büro links) ') if(ReadingsVal('W_BUERO_L', 'state', ''))}",\
      "{return('(Büro rechts) ') if(ReadingsVal('W_BUERO_R', 'state', ''))}",\
      "{return('(Küche links) ') if(ReadingsVal('W_KUECHE_L', 'state', ''))}",\
      "{return('(Küche rechts) ') if(ReadingsVal('W_KUECHE_R', 'state', ''))}",\
      "{return('(Schlafzimmer links) ') if(ReadingsVal('W_BED_L', 'state', ''))}",\
      "{return('(Schlafzimmer rechts) ') if(ReadingsVal('W_BED_R', 'state', ''))}",\
      "(zurück) ",\
      "TelegramBot_MTYPE=queryInline (%me%) "\
    ],\
    },\
    "Batterien Fenster":{\
    "message":[\
      "{return('(Wohnzimmer links) ') if(ReadingsVal('W_WOHN_L', 'batteryState', ''))}",\
      "{return('(Wohnzimmer mitte) ') if(ReadingsVal('W_WOHN_M', 'batteryState', ''))}",\
      "{return('(Wohnzimmer rechts) ') if(ReadingsVal('W_WOHN_R', 'batteryState', ''))}",\
      "{return('(Büro links) ') if(ReadingsVal('W_BUERO_L', 'batteryState', ''))}",\
      "{return('(Büro rechts) ') if(ReadingsVal('W_BUERO_R', 'batteryState', ''))}",\
      "{return('(Küche links) ') if(ReadingsVal('W_KUECHE_L', 'batteryState', ''))}",\
      "{return('(Küche rechts) ') if(ReadingsVal('W_KUECHE_R', 'batteryState', ''))}",\
      "{return('(Schlafzimmer links) ') if(ReadingsVal('W_BED_L', 'batteryState', ''))}",\
      "{return('(Schlafzimmer rechts) ') if(ReadingsVal('W_BED_R', 'batteryState', ''))}",\
      "(zurück) ",\
      "TelegramBot_MTYPE=queryInline (%me%) "\
    ],\
    },\
    "Batterien Heizung":{\
    "message":[\
      "{return('(Wohnzimmer) ') if(ReadingsVal('HZ_WOHNZ', 'battery', ''))}",\
      "{return('(Büro) ') if(ReadingsVal('HZ_BUERO', 'battery', ''))}",\
      "{return('(Küche) ') if(ReadingsVal('HZ_KUECHE', 'battery', ''))}",\
      "{return('(Schlafzimmer) ') if(ReadingsVal('HZ_BED', 'battery', ''))}",\
      "(zurück) ",\
      "TelegramBot_MTYPE=queryInline (%me%) "\
    ],\
    },\
   }\
}\
}
attr status_Dialog allowed rr_Marcus
attr status_Dialog room Telegram

Smarti

Zitat von: ErzGabriel am 24 Februar 2019, 13:54:26
Hallo zusammen.
Ich versuche mir gerade einen Dialog zu bauen, indem ich Stausinformationen vom System erhalte.
Aber er funktioniert jetzt schon nicht, weil ich immer eine Fehlermeldung beim speichern erhalte, irgendwas mit den Klammern stimmt da nicht aber mir wills nicht in den Schädel, was ich falsch mache. Kann mal bitte einer von Euch drauf schauen und mir sagen, wo mein Fehler ist. Danke.


defmod status_Dialog msgDialog {"Systeminformationen":{\
  "message": [\
    "(Fenster) ",\
    "(Batterien Fenster) ",\
    "(Batterien Heizung) ",\
    "(Netzwerk) ",\
    "(System) ",\
    "TelegramBot_MTYPE=queryInline (%me%) ",\
    "Welche Informationen:"\
  ],\
    "Fenster":{\
    "message":[\
      "{return('(Wohnzimmer links) ') if(ReadingsVal('W_WOHN_L', 'state', ''))}",\
      "{return('(Wohnzimmer mitte) ') if(ReadingsVal('W_WOHN_M', 'state', ''))}",\
      "{return('(Wohnzimmer rechts) ') if(ReadingsVal('W_WOHN_R', 'state', ''))}",\
      "{return('(Büro links) ') if(ReadingsVal('W_BUERO_L', 'state', ''))}",\
      "{return('(Büro rechts) ') if(ReadingsVal('W_BUERO_R', 'state', ''))}",\
      "{return('(Küche links) ') if(ReadingsVal('W_KUECHE_L', 'state', ''))}",\
      "{return('(Küche rechts) ') if(ReadingsVal('W_KUECHE_R', 'state', ''))}",\
      "{return('(Schlafzimmer links) ') if(ReadingsVal('W_BED_L', 'state', ''))}",\
      "{return('(Schlafzimmer rechts) ') if(ReadingsVal('W_BED_R', 'state', ''))}",\
      "(zurück) ",\
      "TelegramBot_MTYPE=queryInline (%me%) "\
    ],\
    },\
    "Batterien Fenster":{\
    "message":[\
      "{return('(Wohnzimmer links) ') if(ReadingsVal('W_WOHN_L', 'batteryState', ''))}",\
      "{return('(Wohnzimmer mitte) ') if(ReadingsVal('W_WOHN_M', 'batteryState', ''))}",\
      "{return('(Wohnzimmer rechts) ') if(ReadingsVal('W_WOHN_R', 'batteryState', ''))}",\
      "{return('(Büro links) ') if(ReadingsVal('W_BUERO_L', 'batteryState', ''))}",\
      "{return('(Büro rechts) ') if(ReadingsVal('W_BUERO_R', 'batteryState', ''))}",\
      "{return('(Küche links) ') if(ReadingsVal('W_KUECHE_L', 'batteryState', ''))}",\
      "{return('(Küche rechts) ') if(ReadingsVal('W_KUECHE_R', 'batteryState', ''))}",\
      "{return('(Schlafzimmer links) ') if(ReadingsVal('W_BED_L', 'batteryState', ''))}",\
      "{return('(Schlafzimmer rechts) ') if(ReadingsVal('W_BED_R', 'batteryState', ''))}",\
      "(zurück) ",\
      "TelegramBot_MTYPE=queryInline (%me%) "\
    ],\
    },\
    "Batterien Heizung":{\
    "message":[\
      "{return('(Wohnzimmer) ') if(ReadingsVal('HZ_WOHNZ', 'battery', ''))}",\
      "{return('(Büro) ') if(ReadingsVal('HZ_BUERO', 'battery', ''))}",\
      "{return('(Küche) ') if(ReadingsVal('HZ_KUECHE', 'battery', ''))}",\
      "{return('(Schlafzimmer) ') if(ReadingsVal('HZ_BED', 'battery', ''))}",\
      "(zurück) ",\
      "TelegramBot_MTYPE=queryInline (%me%) "\
    ],\
    },\
   }\
}\
}
attr status_Dialog allowed rr_Marcus
attr status_Dialog room Telegram


Wenn's "nur" an den Klammer liegt, versuche es mal hiermit https://jsonformatter.org/json-parser, hilft mir immer...

perez

#597
@ ErzGabriel:
Falls noch aktuell. Im Skript waren zu viele Kommas und Klammern..


defmod status_Dialog msgDialog {"Systeminformationen":{
  "message": [
    "(Fenster) ",
    "(Batterien Fenster) ",
    "(Batterien Heizung) ",
    "(Netzwerk) ",
    "(System) ",
    "TelegramBot_MTYPE=queryInline (%me%) ",
    "Welche Informationen:"
  ],
    "Fenster":{
    "message":[
      "{return('(Wohnzimmer links) ') if(ReadingsVal('W_WOHN_L', 'state', ''))}",
      "{return('(Wohnzimmer mitte) ') if(ReadingsVal('W_WOHN_M', 'state', ''))}",
      "{return('(Wohnzimmer rechts) ') if(ReadingsVal('W_WOHN_R', 'state', ''))}",
      "{return('(Büro links) ') if(ReadingsVal('W_BUERO_L', 'state', ''))}",
      "{return('(Büro rechts) ') if(ReadingsVal('W_BUERO_R', 'state', ''))}",
      "{return('(Küche links) ') if(ReadingsVal('W_KUECHE_L', 'state', ''))}",
      "{return('(Küche rechts) ') if(ReadingsVal('W_KUECHE_R', 'state', ''))}",
      "{return('(Schlafzimmer links) ') if(ReadingsVal('W_BED_L', 'state', ''))}",
      "{return('(Schlafzimmer rechts) ') if(ReadingsVal('W_BED_R', 'state', ''))}",
      "(zurück) ",
      "TelegramBot_MTYPE=queryInline (%me%) "
    ]
    },
    "Batterien Fenster":{
    "message":[
      "{return('(Wohnzimmer links) ') if(ReadingsVal('W_WOHN_L', 'batteryState', ''))}",
      "{return('(Wohnzimmer mitte) ') if(ReadingsVal('W_WOHN_M', 'batteryState', ''))}",
      "{return('(Wohnzimmer rechts) ') if(ReadingsVal('W_WOHN_R', 'batteryState', ''))}",
      "{return('(Büro links) ') if(ReadingsVal('W_BUERO_L', 'batteryState', ''))}",
      "{return('(Büro rechts) ') if(ReadingsVal('W_BUERO_R', 'batteryState', ''))}",
      "{return('(Küche links) ') if(ReadingsVal('W_KUECHE_L', 'batteryState', ''))}",
      "{return('(Küche rechts) ') if(ReadingsVal('W_KUECHE_R', 'batteryState', ''))}",
      "{return('(Schlafzimmer links) ') if(ReadingsVal('W_BED_L', 'batteryState', ''))}",
      "{return('(Schlafzimmer rechts) ') if(ReadingsVal('W_BED_R', 'batteryState', ''))}",
      "(zurück) ",
      "TelegramBot_MTYPE=queryInline (%me%) "
    ]
    },
    "Batterien Heizung":{
    "message":[
      "{return('(Wohnzimmer) ') if(ReadingsVal('HZ_WOHNZ', 'battery', ''))}",
      "{return('(Büro) ') if(ReadingsVal('HZ_BUERO', 'battery', ''))}",
      "{return('(Küche) ') if(ReadingsVal('HZ_KUECHE', 'battery', ''))}",
      "{return('(Schlafzimmer) ') if(ReadingsVal('HZ_BED', 'battery', ''))}",
      "(zurück) ",
      "TelegramBot_MTYPE=queryInline (%me%) "
    ]
    }
   }

[/code]

perez

Zitat von: igami am 22 Februar 2019, 06:27:45
Dafür muss das "history"-Reading passend mit einem command gesetzt werden:

"setreading $SELF $recipient_history [i:$SELF:TRIGGER]|<Pfad zur passenden Stelle>"


Danke!! Versuche so umzusetzen:)

ErzGabriel

@perez
Ja, Thema ist noch aktuell und ich danke Dir fürs überarbeiten.
Könntest Du mit das mit dem set history bitte mal erklären? Danke.