Hallo Experten
ich versuche mit Hilfe eines DOIF, welches die Eingabe eines ChatBot verarbeitet und an ein dummy Device übergibt zu lösen.
Leider erhalte ich bei dem Versuch die Eingabe (set SW_Bettlicht Dimmer ..) zusammenzubauen und an das Device zu triggern folgende Fehlermeldung:
DOIF SEND_SET_cmd error: set "set SW_Bettlicht Dimmer 13.5": Please define "set first
.. steht dabei für das Value was ich im ChatBot individuell eingeben kann.
Dann habe ich versucht folgenden Teil (set SW_Bettlicht Dimmer ..) aus der Eingabe wegzulassen.
Das funktioniert aber auch nicht, weil ich nicht weis wie ich dann den eigentlichen (set SW_Bettlicht Dimmer 20) im DOIF zusammenbauen kann, damit es nicht zu der Überschneidung mit "set" kommt.
Weil ich davon ausgehe, dass dies mit dem Problem der Fehlermeldung zu tun hat.
hier das List des DOIF welches den Ausgabe Befehl zusammen bauen soll aus der Eingabe des ChatBot:
(([Set_tmp_value:cmd_device_flg] eq "true") && ([Set_tmp_value:cmd_value_flg] eq "true"))
(set [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value])
(setreading Set_tmp_value cmd_out [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value])
DOELSE
Vielleicht kann man das auch ganz anders lösen.
hier noch das List des dummy Device dazu:
Internals:
FUUID 61b97e77-f33f-cb6b-6320-c44a417411001805
NAME Set_tmp_value
NR 486
STATE ???
TYPE dummy
OLDREADINGS:
READINGS:
2021-12-15 15:30:51 cmd_device SW_Bettlicht Dimmer
2021-12-15 15:30:51 cmd_device_flg true
2021-12-15 15:30:11 cmd_out SW_Bettlicht Dimmer 15
2021-12-15 15:30:11 cmd_value 15
2021-12-15 15:30:49 cmd_value_flg false
helper:
bm:
dummy_Define:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 15.12. 07:43:09
max 1.78813934326172e-05
tot 1.78813934326172e-05
mAr:
HASH(0x563cea7057d0)
Set_tmp_value dummy
dummy_Set:
cnt 1402
dmx -1000
dtot 0
dtotcnt 0
mTS 15.12. 12:08:54
max 0.00182294845581055
tot 0.0397672653198242
mAr:
HASH(0x563cea7057d0)
Set_tmp_value
?
Attributes:
DbLogExclude .*
alias Set_tmp_value
room Logik
d.h. das im cmd_out eigentlich ein (set SW_Bettlicht Dimmer 20) stehen sollte und dies dann auch am Device erfolgreich gesetzt wird.
VG denny
Bei mir funktioniert alles korrekt:
defmod di_set DOIF (1)(set [$SELF:cmd_device] [$SELF:cmd_value])
setstate di_set cmd_1
setstate di_set 2021-12-15 22:40:36 cmd 1
setstate di_set 2021-12-15 22:40:13 cmd_device bla
setstate di_set 2021-12-15 22:40:36 cmd_event set_cmd_1
setstate di_set 2021-12-15 22:40:36 cmd_nr 1
setstate di_set 2021-12-15 22:40:24 cmd_value 10
setstate di_set 2021-12-15 22:39:53 mode enabled
setstate di_set 2021-12-15 22:40:36 state cmd_1
Internals:
FUUID 5d63fc90-f33f-c0d4-a3fd-a78da754aa533c52
NAME bla
NR 15
STATE 10
TYPE dummy
READINGS:
2021-12-15 22:40:36 state 10
Attributes: