Das Attribut eines Dummys (Slider) ändern? HowTo?

Begonnen von M_I_B, 11 November 2016, 23:29:49

Vorheriges Thema - Nächstes Thema

M_I_B

Moin Kinnaz,

im Zusammenhang mit einem reinen Anzeige- Slider (Heizungssteuerung) besteht die Notwendigkeit, das Attribut "setList" während der Laufzeit zu ändern. Daran bin ich aber gnadenlos gescheitert, wie auch hier nachzulesen: https://forum.fhem.de/index.php/topic,60425.msg519763.html#msg519763

Derzeitiger Stand ist ...
define set_RL_HZSi DOIF ([HZSP] or [HYS]) (attr HZSi setList state:rangeslider,20,0.01,80,1,rmin:{([HZSP]-[HYS])},rmax:[HZSP],readonly:1)
... wobei das natürlich nur eine Version all meiner gescheiterten Versuche war.

Knackpunt dabei ist, das natürlich dann das Ergebnis der Berechnung [HZSP]-[HYS] rmin: resp. der Wert von [HYS] rmax zugewiesen werden soll. Klappt leider in der Form nicht und auch nicht in all den anderen resp. anders geklammerten Versionen.

FRage ist also, wie man so etwas unter DOIF auf die Reihe bekommt?

Per

Aus dem Kalten:
define set_RL_HZSi DOIF ([HZSP] or [HYS]) ((attr HZSi setList state:rangeslider,20,0.01,80,1,rmin:{([HZSP]-[HYS])},rmax:[HZSP],readonly:1))
Wichtig, wg. der Kommata, die doppelte Klammer.

Interessant wären die Fehlermeldungen.

M_I_B

... hach, die Kommas ... Ja, da war ja was ^^
Erstmal Dank für den Hint... Tut aber leider nicht. Ich habe es mal stumpf 1:1 übernommen. Und Fehlermeldung fällt auch aus, da nicht vorhanden. Es passiert ganz stumpf einfach... nix...

Per

Ersetz doch mal die Variablen/Geräte durch Werte und arbeite dich langsam zum Fehler zurück.
Und zuallererst natürlich den Befehl selbst in der Cmd-Zeile testen.

M_I_B

... dat war'ne jute Idee!

Das hier funktioniert (erst mal mit festen Intervallen zum Testen):
define set_RL_HZSi DOIF ([+10]) ((attr HZSi setList state:rangeslider,20,0.01,80,1,rmin:{([HZSP:state]-[HYSh:state])},rmax:[HZSP:state],readonly:1))
attr set_RL_HZSi do always


Aber: Jetzt kommt bei jedem Wechsel FHEM mit den freundlichen Fragezeichen bei "Save Config" in der UI, sobald sich was ändert. Das ist dann so natürlich nicht zu gebrauchen ...

Ellert

Zitat von: M_I_B am 16 November 2016, 16:24:12
... dat war'ne jute Idee!

Das hier funktioniert (erst mal mit festen Intervallen zum Testen):
define set_RL_HZSi DOIF ([+10]) ((attr HZSi setList state:rangeslider,20,0.01,80,1,rmin:{([HZSP:state]-[HYSh:state])},rmax:[HZSP:state],readonly:1))
attr set_RL_HZSi do always


Aber: Jetzt kommt bei jedem Wechsel FHEM mit den freundlichen Fragezeichen bei "Save Config" in der UI, sobald sich was ändert. Das ist dann so natürlich nicht zu gebrauchen ...
Du könntest den Befehl save anhängen, also attr ...,save

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

M_I_B

... ok, da hätte ich auch drauf kommen können; damit funktioniert es ...

Ist aber dennoch nicht brauchbar. Zum einen wird dann bei jeder Änderung auf die SD geschrieben, zum anderen, und das ist ein weitaus gewichtigeres Manko, wird die zugewiesene Farbe erst nach einem Resfresh der UI gesetzt. Bei "normalen" Zugriffen auf die UI sicherlich kein Problem, wohl aber, wenn das Ganze autark auf einem 7" Display direkt an der Steuerung dargestellt werden soll ...

Ich werde mich dann wohl mal mit TabletUI o.ä. auseinander setzen in der Hoffnung, das sowas damit geht ...

Immerhin war der Lerneffekt dieser Nummer recht groß. Dafür euch allen vielen Dank...

Ellert

#8
Wenn Du nach save das
Zitat{FW_directNotify("#FHEMWEB:<Name Deines WEB Gerätes>", "location.reload(true);","" )}
anhängst, sollte die Seite neu geladen werden.

Siehe http://www.fhemwiki.de/wiki/ReadingsGroup#Links_und_Trigger , dort myUtils_refresh.

M_I_B

... super; danke! Probiere ich aus ...

Aber so als DAU gefragt: Wäre es nicht möglich, zumindest für den RangeSlider eine direkte Schnittstelle für min, max und ggf. noch color1, color2, color3 zu schaffen??? Und da gerade angesprochen: Würde es nicht Sinn machen, Slider & RangeSlider zu vereinen?
Haut mich nicht; ich frage ja nur! Keine Ahnung, was das für ein Aufwand wäre resp. ob das überhaupt möglich ist...
Das würde das ganze Rumgehampel doch wesentlich erleichtern und vor allem Schreibzugriffe auf SD so wie Zwangs- Refresh erübrigen ...

Per

Zitat von: M_I_B am 17 November 2016, 11:37:28Keine Ahnung, was das für ein Aufwand wäre resp. ob das überhaupt möglich ist...
Das ist in "DOIF" auch der falsche Ort, das zu erfragen ;).