ich versuche mit folgendem DOIF den aktuellen Stromverbrauch einer Steckdose in der greenwave 6er schaltsteckdose auszulesen.
Internals:
DEF ([greenwave.power:power] ne [va.greenwave.power:state]) ## vergleich neu mit alt
(
(get tv_6 meter 2) ## holen
(set va.greenwave.power [greenwave.power:power]) ## aktualisieren
)
NAME do.greenwave.power
NR 173
NTFY_ORDER 50-do.greenwave.power
STATE cmd_1
TYPE DOIF
Readings:
2015-10-08 16:22:04 Device va.greenwave.power
2015-10-08 16:22:08 cmd_event greenwave.power
2015-10-08 16:22:08 cmd_nr 1
2015-10-08 16:22:04 e_greenwave.power_power 0.9 W previous: 0.8 delta_time: 9 s
2015-10-08 16:22:04 e_va.greenwave.power_state 0.9 W previous: 0.8 delta_time: 9 s
2015-10-08 16:22:08 error get tv_6 meter 2: power: 0.9 W previous: 0.8 delta_time: 9 s
2015-10-08 16:22:08 state cmd_1
Condition:
0 ReadingValDoIf('greenwave.power','power','') ne ReadingValDoIf('va.greenwave.power','state','')
Devices:
0 greenwave.power va.greenwave.power
all greenwave.power va.greenwave.power
Do:
0:
0 (get tv_6 meter 2) (set va.greenwave.power [greenwave.power:power])
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
Itimer:
Readings:
0 greenwave.power:power va.greenwave.power:state
all greenwave.power:power va.greenwave.power:state
State:
Timerfunc:
Trigger:
Attributes:
do always
room Doif
das ergebniss ist richtig, aber es wird als readings:error ausgegeben:
2015-10-08 16:22:08 error get tv_6 meter 2: power: 0.9 W previous: 0.8 delta_time: 9 s
wenn ich den get befehl direkt eingebe gibt es keine Probleme.
bei 2 get befehlen hintereinander, (es gibt ja schließlich 6 Steckdosen) bekommt der 2. und folgende ein timeout??
Zitat von: 3dmanipulator am 08 Oktober 2015, 16:31:22
ich versuche mit folgendem DOIF den aktuellen Stromverbrauch einer Steckdose in der greenwave 6er schaltsteckdose auszulesen.
Internals:
DEF ([greenwave.power:power] ne [va.greenwave.power:state]) ## vergleich neu mit alt
(
(get tv_6 meter 2) ## holen
(set va.greenwave.power [greenwave.power:power]) ## aktualisieren
)
NAME do.greenwave.power
NR 173
NTFY_ORDER 50-do.greenwave.power
STATE cmd_1
TYPE DOIF
Readings:
2015-10-08 16:22:04 Device va.greenwave.power
2015-10-08 16:22:08 cmd_event greenwave.power
2015-10-08 16:22:08 cmd_nr 1
2015-10-08 16:22:04 e_greenwave.power_power 0.9 W previous: 0.8 delta_time: 9 s
2015-10-08 16:22:04 e_va.greenwave.power_state 0.9 W previous: 0.8 delta_time: 9 s
2015-10-08 16:22:08 error get tv_6 meter 2: power: 0.9 W previous: 0.8 delta_time: 9 s
2015-10-08 16:22:08 state cmd_1
Condition:
0 ReadingValDoIf('greenwave.power','power','') ne ReadingValDoIf('va.greenwave.power','state','')
Devices:
0 greenwave.power va.greenwave.power
all greenwave.power va.greenwave.power
Do:
0:
0 (get tv_6 meter 2) (set va.greenwave.power [greenwave.power:power])
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
Itimer:
Readings:
0 greenwave.power:power va.greenwave.power:state
all greenwave.power:power va.greenwave.power:state
State:
Timerfunc:
Trigger:
Attributes:
do always
room Doif
das ergebniss ist richtig, aber es wird als readings:error ausgegeben:
2015-10-08 16:22:08 error get tv_6 meter 2: power: 0.9 W previous: 0.8 delta_time: 9 s
wenn ich den get befehl direkt eingebe gibt es keine Probleme.
bei 2 get befehlen hintereinander, (es gibt ja schließlich 6 Steckdosen) bekommt der 2. und folgende ein timeout??
Der Error kommt immer dann, wenn das Kommando einen Returnwert ungleich Null liefert. Das Kommando wird dennoch ausgeführt.
Gruß
Damian
stimmt :)
...und auch die timeout Meldungen kann man ignorieren
danke und grüße
horst