Hi,
will gerade mein frontend mit uzsuSelectRadio verschönern.
Meine Fragen:
1. In den Beispielen, die ich gefunden gabe, wird mal setList, mal widgetOverride verwendet. Ist das gleichwertig, bzw. wann nimmt man welches?
2.Das uzsuSelectRadio funktioniert auf einem dummy
Internals:
NAME hzg_nachts
NR 298
STATE off
TYPE dummy
Readings:
2015-09-28 22:09:34 state off
Attributes:
group Heizung
icon sani_heating_temp
room Wohnung,Heizung
setList state:uzsuSelectRadio,on,off
webCmd state
aber auf anderen devices nicht, z.B. auf diesem:
Internals:
BTN 57
DEF 2332 57
IODev CUL
NAME hzg_Dauer
NR 101
STATE off
TYPE FS20
XMIT 2332
Code:
1 2332 57
Readings:
2015-09-28 14:11:43 state off
Attributes:
IODev CUL
dummy 1
fm_order 16
group Heizung
icon sani_heating_automatic
model fs20st
room Wohnung,Heizung
setList state:uzsuSelectRadio,on,off
webCmd state
widgetOverride state:uzsuSelectRadio,on,off
Was mache ich falsch?
Vielen Dank schon im Voraus für eure Unterstützung,
Uli
setList nimmst du für dummys oder für readingsProxy. das sind die einzigen devices die von sich aus keine set kommandos können und denen diese über das setList attribut beigebracht werden.
alle anderen device haben eine liste von unterstützen kommandos. das was bei set ? zurück kommt und kennen kein setList attribut. hier kann mit widgetOverride die für ein bestimmtes set verwendetes widget überschrieben werden.
wenn es kein entsprechendes set kommando gibt kannst du es auch nicht in den webCmd verwenden auch nicht überschreiben.
du kannst zwar mit cmdalias im prinzip neue kommandos für ein device definieren, diese werden aber bei webCmd nicht berücksichtigt. wenn es dir nur ums aussehen geht könntest du einen readingsProxy definieren und die set on und set off dann ans echte device weiter reichen.
gruss
andre
Hi André,
ah, ok.
Habe auf "hzg_Dauer" nun die setList gelöscht.
Das ist ein FS20-device, das kann on+off.
Dennoch erscheint das uzsuSelectRadio nicht, das WF sieht aus wie angehängt.
Was kann ich noch versuchen?
Gruß, Uli
on und off sind aber zwei kommandos (nicht ein kommando mit einem parameter) und es gibt aber kein state kommando. direkt du kannst nur on und off getrennt als webCmd verwenden und state gar nicht.
du kannst entweder einen readingsProxy dazwischen schalten (oder einen dummy mit notify) und da die setList verwenden.
oder:
- du suchst dir eines der vorhanden kommandos aus, z.b. on und verwendest es als webCmd.
- über widgegOverride sorgst du dafür das diese kommando dann on und off als parameter bekommt: widgetOverride on:uzsuSelectRadio,on,off.
- mit cmdalias kannst du jetzt dafür sorgen das dieses kommando das es so eigentlich nicht gibt (set hzg_Dauer on on und set hzg_Dauer on off) auch verstanden wird:
define a1 cmdalias set hzg_Dauer on on AS set hzg_Dauer on und define a2 cmdalias set hzg_Dauer on off AS set hzg_Dauer off
- damit das widget beim seiten aufbau richtig initialisiert wird brauchst du noch ein reading mit dem aktuellen state das genau so heisst wie das kommando:
attr hzg_Dauer userReadings on {ReadingsVal($name,'state','')}
das würde dann zwar so aussehen wie du willst und kein zusätzliches device brauchen, ist aber nicht wirklich einfacher noch selbsterklärender als ein readingsProxy:define hzg_DauerProxy hzg_Dauer:state
attr hzg_DauerProxy setList state:uzsuSelectRadio,on,off
und dann hzg_DauerProxy statt hzg_Dauer im frontend verwenden.
gruss
andre