Attr commands - Kommandodefinition abhängig von weiterer Bedingung möglich?

Begonnen von DS_Starter, 22 Dezember 2021, 15:17:03

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo zusammen,

ich habe in einer Readinggroup über das Attr 'commands' Drop-Down Listen generiert:


{
'eBusHeatingSet.sollcurvea'    => '1_RadiatorenHK_Heizkurve:selectnumbers,0.20,0.20,1.70,1,lin',
'eBusHeatingSet.solldaya'      => '1_RadiatorenHK_Tagtemperatur_Soll:selectnumbers,15.0,0.5,26.0,1,lin',
'eBusHeatingSet.sollnighta'    => '1_RadiatorenHK_Nachttemperatur_Soll:selectnumbers,10.0,1.0,22.0,1,lin',
'eBusHeatingSet.sollcurven'    => '1_FussbodenHK_Heizkurve:selectnumbers,0.20,0.20,1.70,1,lin',
'eBusHeatingSet.solldayn'      => '1_FussbodenHK_Tagtemperatur_Soll:selectnumbers,15.0,0.5,26.0,1,lin',
'eBusHeatingSet.sollnightn'    => '1_FussbodenHK_Nachttemperatur_Soll:selectnumbers,10.0,1.0,22.0,1,lin',
'eBusHeatingSet.sollwater'     => '1_Warmwasser_Solltemperatur:selectnumbers,40.0,1.0,60.0,1,lin',
'eBusHeatingSet.watermode'     => '1_Warmwasser_Modus:select,off,auto,day',
'eBusHeatingSet.heatingmode'   => '1_Heizen_Modus:select,off,auto,day,night',
'eBusHeatingSet.heatmodefbhk'  => '1_FussbodenHK_Heizen_Modus:select,off,auto,day,night',
'eBusHeatingSet.heatmoderadhk' => '1_RadiatorenHK_Heizen_Modus:select,off,auto,day,night',
'eBusHeatingSet.modefbhk'      => '1_FussbodenHK_AutoOffMode:eco,night',
'eBusHeatingSet.moderadhk'     => '1_RadiatorenHK_AutoOffMode:eco,night',
}


Mein Ziel ist es nun abhängig von einer weiteren Bedingung (z.B. wie ein Reading in einem Dummy gesetzt ist) entweder die oben dargestellten Drop-Downs anzuwenden oder alternativ einen festen Wert (z.B. "locked") anzuzeigen und somit keine Einstellungsänderungen über die RG zu erlauben.

Kennt jemand einen Weg über das Attr ?
Ich habe if/else Kontrukte wie in "valueFormat" möglich versucht, aber das hat nicht zum Ziel geführt, d.h. nicht funktioniert.


Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Nach einem Blick in den readingsGroup Code hat sich mir eine Lösung angeboten.
Das Attr 'commands'  wird nicht zur Laufzeit ausgewertet, sondern wird beim Setzen des Attributes ausgewertet und mit diesem Status in einen helper überführt.
Man muß zur Lösung dieses use cases nur die Auswertung/Überführung in den helper neu ausführen. Dadurch werden die Bedingungen in dem Attr neu ausgewertet und das Ergebnis in den helper geschrieben.
Damit klappt nun mein Use case.
Es ist mit (wenig) Coding in einem notify verbunden. Bei Bedarf kann ich meinen Ansatz gerne posten.

schöne Feiertage   
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter