Hallo zusammen,
ich will mir einen Wecker über eine Readingsgroup bauen.
Dafür sollen folgende Werte in Readings eines Dummys geschrieben werden:
- WeckerAktiv
- WeckerNurUnterDerWoche
- Wecker Zeit
Internals:
NAME sz_Wecker
NR 43
STATE on
TYPE dummy
Readings:
2015-04-21 18:05:51 WeckerAktiv on
2015-04-21 18:05:50 WeckerNurUnterDerWoche on
2015-04-21 18:15:10 WeckerZeit 06:00:00
2015-04-21 06:00:00 state on
Attributes:
room Schlafzimmer
userReadings WeckerAktiv,WeckerNurUnterDerWoche,WeckerZeit
Mein Ziel ist es diese Werte über eine readingsgroup elegant zu barbeiten.
Dazu habe ich mir folgende ReadingGroup definiert:
Internals:
DEF sz_Wecker:WeckerAktiv,<WeckerAn>,<WeckerAus>
sz_Wecker:WeckerNurUnterDerWoche,<WocheAn>,<WocheAus>
sz_Wecker:WeckerZeit,<Zeit>
NAME rg_sz_Wecker
NR 44
NTFY_ORDER 50-rg_sz_Wecker
STATE Initialized
TYPE readingsGroup
mayBeVisible 1
Content:
sz_Wecker 1
Content2:
DEVICES:
ARRAY(0x2341288)
ARRAY(0x2390090)
ARRAY(0x235ca70)
Fhem:
lastDefChange 12
last_update 1429633523.64461
Helper:
DEF
commands {'rg_sz_Wecker.WeckerAn' => 'setreading $DEVICE WeckerAktiv on', 'rg_sz_Wecker.WeckerAus' => 'setreading $DEVICE WeckerAktiv off','rg_sz_Wecker.WocheAn' => 'setreading $DEVICE WeckerNurUnterDerWoche on', 'rg_sz_Wecker.WocheAus' => 'setreading $DEVICE WeckerNurUnterDerWoche off', 'rg_sz_Wecker.Zeit' => 'time:' }
Valueicon:
WeckerAktiv.off off
WeckerAktiv.on on
WeckerNurUnterDerWoche.off off
WeckerNurUnterDerWoche.on on
Attributes:
commands {'rg_sz_Wecker.WeckerAn' => 'setreading $DEVICE WeckerAktiv on', 'rg_sz_Wecker.WeckerAus' => 'setreading $DEVICE WeckerAktiv off','rg_sz_Wecker.WocheAn' => 'setreading $DEVICE WeckerNurUnterDerWoche on', 'rg_sz_Wecker.WocheAus' => 'setreading $DEVICE WeckerNurUnterDerWoche off', 'rg_sz_Wecker.Zeit' => 'time:' }
room Schlafzimmer
valueIcon { 'WeckerNurUnterDerWoche.on' => 'on', 'WeckerNurUnterDerWoche.off' => 'off','WeckerAktiv.on' => 'on','WeckerAktiv.off' => 'off',}
Wie schaffe ich es die Zeit (=Dummy Reading) mit einem Widget wie unter einem Device mit setList state:time und webCmd:state über die Readingsgroup einzugeben?
'rg_sz_Wecker.Zeit' => 'time:' funktioniert leider nicht.
Falls jemand noch bessere Ideen hat, das Readingsgroup zu implementieren, bin ich Euch sehr dankbar!
Vielleicht schaust Du Dich noch ein bisschen hier im Forum um - es gibt schon gute Ansätze zum Thema Wecker. Zu erwähnen wäre das Residents Modul, das ist kürzlich erweitert worden, ausserdem kann ich mich an einen Self-Made Wecker erinnern. Und da gibt es noch USZU...
es muss so aussehen:
..., WeckerZeit => 'WeckerZeit:time',...
gruss
andre
Danke Andre,
allerdings wird dadurch der state mit 'WeckerZeit 09:00' gesetzt und nicht das userReading WeckerZeit.
das ist bei dummys immer so. du brauchst ein notify um den wert aus state in das reading zu schieben.
oder du schaust dir mal readingsProxy an. da kannst du über die setFn direkt das richtige reading schreiben.
gruß
andre