Auch hier hoffe ich auf eine Erleuchtung von DOIF-Fans: Um den WAF zu verbessern, möchte ich Heizkörperregelungen einzeln temporär abschaltbar machen. Bisher erledigte ich das über ein set <device> disabled in den Details des Device.
In meinem Versuchs-DOIF habe ich den Knopf, aber ich krieg' es nicht gebacken:
define di_uiTable_widget DOIF ##\
## versuch eines temporären set $SELF disabled/enabled über Knopf in UI-Table
attr di_uiTable_widget DOIF_Readings knopf2:{[$SELF:knopf]}
attr di_uiTable_widget room InArbeit
attr di_uiTable_widget uiTable ## FHEM-Widgets mit Hilfe der WID-Funktion\\
{package ui_Table}\
"hier restliche Ui-Table-Def"\
"Button"| widget([$SELF:knopf],"select,disabled,enabled")
# DEF ##
### versuch eines temporären set $SELF disabled/enabled über Knopf in UI-Table
# FUUID 651b322c-f33f-e1df-2fdf-a97e8a8483ab00ef
# MODEL FHEM
# NAME di_uiTable_widget
# NOTIFYDEV di_uiTable_widget,global
# NR 134551
# NTFY_ORDER 50-di_uiTable_widget
# STATE initialized
# TYPE DOIF
# VERSION 27740 2023-07-10 09:31:11
# eventCount 18
# .attraggr:
# .attrminint:
# DOIF_Readings:
# knopf2 {::ReadingValDoIf($hash,'di_uiTable_widget','knopf')}
# OLDREADINGS:
# READINGS:
# 2023-10-02 23:51:01 cmd 0
# 2023-10-02 23:35:50 knopf disabled
# 2023-10-02 23:35:50 knopf2 disabled
# 2023-10-02 23:51:01 mode enabled
# 2023-10-02 23:51:01 state initialized
# Regex:
# DOIF_Readings:
# di_uiTable_widget:
# knopf2:
# knopf ^di_uiTable_widget$:^knopf:
# accu:
# bar:
# barAvg:
# collect:
# uiTable:
# di_uiTable_widget:
# di_uiTable_widget_uiTable_c_1_1_0_0:
# knopf ^di_uiTable_widget$:^knopf:
# condition:
# do:
# 0:
# helper:
# NOTIFYDEV di_uiTable_widget,global
# globalinit 1
# last_timer 0
# sleeptimer -1
# triggerDev
# triggerEvents
# triggerEventsState
# uiState:
# uiTable:
# dev di_uiTable_widget
# header
#<table uitabid='DOIF-di_uiTable_widget' class=' block wide uiTabledoif doif-di_uiTable_widget ' style='border-top:none;'>
# package package ui_Table;
# reading knopf
# table:
# 0:
# 0:
# 0:
# 0 package ui_Table;"hier restliche Ui-Table-Def"
# 1:
# 0:
# 0:
# 0 package ui_Table;"Button"
# 1:
# 0:
# 0 package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_widget_uiTable_c_1_1_0_0', widget(::ReadingValDoIf($hash,'di_uiTable_widget','knopf'),"select,disabled,enabled"),'di_uiTable_widget','knopf')
# tc:
# td:
# 0:
# 1:
# tr:
#
setstate di_uiTable_widget initialized
setstate di_uiTable_widget 2023-10-02 23:51:01 cmd 0
setstate di_uiTable_widget 2023-10-02 23:35:50 knopf disabled
setstate di_uiTable_widget 2023-10-02 23:35:50 knopf2 disabled
setstate di_uiTable_widget 2023-10-02 23:51:01 mode enabled
setstate di_uiTable_widget 2023-10-02 23:51:01 state initialized
Gibt es einen Ansatz?
Herzliche Grüße
Christian
Damit sollte es funktionieren:
defmod di_uiTable_widget DOIF ##\
attr di_uiTable_widget do always
attr di_uiTable_widget room InArbeit
attr di_uiTable_widget uiTable ## FHEM-Widgets mit Hilfe der WID-Funktion\\
{package ui_Table}\
"hier restliche Ui-Table-Def"\
"Button"| widget([$SELF],"select,disable,enable")
Deine Definition hat lediglich das Reading per setreading geändert, du möchtest aber per set-Befehl das Device schalten, dafür braucht man kein zusätzliches Reading.
Vielen Dank und es war mal wieder bei mir knapp daneben funktioniert halt auch nicht. Die Variante der Parameter hatte ich mit WID probiert und habe.
Funktioniert einwandfrei an Ort und Stelle...
Christian