DOIF ...set... Anweisung erstellen

Begonnen von rohlande, 15 Dezember 2021, 15:45:07

Vorheriges Thema - Nächstes Thema

rohlande

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
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

Damian

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:
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF