Autor Thema: Attr commands - Kommandodefinition abhängig von weiterer Bedingung möglich?  (Gelesen 773 mal)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7901
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 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7901
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   
« Letzte Änderung: 25 Dezember 2021, 10:21:31 von DS_Starter »
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter