DOIF: Während Abarbeitung auf cmd_event zugreifen.

Begonnen von RoBra81, 30 Juli 2015, 08:53:56

Vorheriges Thema - Nächstes Thema

RoBra81

Hallo Damian,

ich würde gern ein (ganz einfaches) Dialogsystem mit WhatsApp und DOIF bauen: Ein WhatsApp-Nutzer stellt eine Frage (Wie z.B. Temperatur?) und erhält entsprechend eine Antwort (z.B. Zu Hause sind 15.6°C bei 42% Luftfeuchte.).
Da ich nicht pro Nutzer und Frage einen eigenen DOELSE-Zweig machen möchte, dachte ich mir, ich könnte mittels Reading cmd_event herausbekommen, von wem die Frage kam und einfach die Antwort da hin schicken:

define WhatsApp.DI.Command DOIF ([WhatsApp.Ronny:?message..Temperatur.*] or [WhatsApp.Baerbel:?message..Temperatur.*] or [WhatsApp.Gruppe.Haus:?message..Temperatur.*]) (set [WhatsApp.DI.Command:cmd_event] send Zu Hause sind [AU.xx.KL.Klima:measured-temp]°C bei [AU.xx.KL.Klima:humidity]% Luftfeuchte.)
attr WhatsApp.DI.Command do always


Nun wird das Reading cmd_event leider erst nach oder während der Ausführung gesetzt, sodass das DOIF beim ersten Mal gar nicht geht und dann die Antwort immer an der vorherigen Fragesteller gesendet wird. Gibt es eine Möglichkeit, bereits im DOIF auf das auslösende Ereignis zuzugreifen?

Vielen Dank
Ronny

Damian

Zitat von: RoBra81 am 30 Juli 2015, 08:53:56
Hallo Damian,

ich würde gern ein (ganz einfaches) Dialogsystem mit WhatsApp und DOIF bauen: Ein WhatsApp-Nutzer stellt eine Frage (Wie z.B. Temperatur?) und erhält entsprechend eine Antwort (z.B. Zu Hause sind 15.6°C bei 42% Luftfeuchte.).
Da ich nicht pro Nutzer und Frage einen eigenen DOELSE-Zweig machen möchte, dachte ich mir, ich könnte mittels Reading cmd_event herausbekommen, von wem die Frage kam und einfach die Antwort da hin schicken:

define WhatsApp.DI.Command DOIF ([WhatsApp.Ronny:?message..Temperatur.*] or [WhatsApp.Baerbel:?message..Temperatur.*] or [WhatsApp.Gruppe.Haus:?message..Temperatur.*]) (set [WhatsApp.DI.Command:cmd_event] send Zu Hause sind [AU.xx.KL.Klima:measured-temp]°C bei [AU.xx.KL.Klima:humidity]% Luftfeuchte.)
attr WhatsApp.DI.Command do always


Nun wird das Reading cmd_event leider erst nach oder während der Ausführung gesetzt, sodass das DOIF beim ersten Mal gar nicht geht und dann die Antwort immer an der vorherigen Fragesteller gesendet wird. Gibt es eine Möglichkeit, bereits im DOIF auf das auslösende Ereignis zuzugreifen?

Vielen Dank
Ronny

siehe hier: http://forum.fhem.de/index.php/topic,39070.0.html

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

RoBra81