Hallo alle miteinader,
Ich suche einen Lösungsansatz für das abhängige Schalten eines Aktors.
Ich habe zwei dummys - d1 und d2 - sowie einen normalen Aktor a1.
Ich möchte gerne Aktor a1 nur dann einschalten wenn d1 und d2 den status on haben und sobald d1 oder d2 den Status off hat, den Aktor a1 wieder ausschalten.
Vielleicht kann mir ja mal einer auf die Sprünge helfen.
Danke
Stephan
schau dir mal structure an. z.b. so:define beide structure d d1 d2
attr beide clientstate_behavior relative
attr beide clientstate_priority off on
und ein notify an die structure hängen.
gruss
andre
Hi!
define d1 dummy
define d2 dummy
define Kontrolle notify d1.*|d2.* {\
if ((Value("d1") = "on") && (Value("d2") = "on")) {\
fhem("set a1 on");;\
} else {\
fhem("set a1 off");;\
}\
}
MfG,MisterEltako.
hmm... so habe ich es auch gemacht, aber es funktioniert nicht mehr seit dem update auf 5.4
define beide structure d d1 d2
attr beide clientstate_behavior relative
attr beide clientstate_priority off on
attr beide room Heizung
define FileLog_beide FileLog ./log/Thermostat-%Y.log beide
attr FileLog_beide room Heizung
der Schaltbefehl:
define Heizung_einSchalten1 notify beide:on {fhem("define Heizung_einSchalten_at1 at +00:00:05 set Schalter_Therme on")}
der Status der Struktur ändert sich brav in der Weboberfläche, es fehlt einfach der Befehl zum einschalten von "Schalter_Therme"
ich bin echt ratlos und lagsam wirds kalt hier :(
Gruss
Stephan
Hast du es schon mit meinem Tip probiert?
MfG,MisterEltako
Hi MisterEltako
danke für den Code, bekomme aber folgende merkwürdige Fehlermeldung:
2013.04.11 20:32:51 3: Kontrolle return value: Can't modify non-lvalue subroutine call in scalar assignment at (eval 20388) line 1, near ""on") "
ahh, hab grad die Änderung gesehen, probiers gleich noch einmal
bei mir geht das notify, mit version 5.4.
um einzugrenzen ob das notify der structure nicht geht oder das einschaltkomando bau mal als kommando beim notify {Log 3, "on"}
das ein und schau ob etwas im log file ankommt.
warum schaltest du nicht direkt ein sondern mit 5 sekunden Verzögerung ?
gruss
andre
es sind eigentlich 3 min Verzögerung weil die Stellmotore so lange brauchen bis sie auf sind.
log baue ich gleich mal ein.
hi andre,
es wir nichts ins log geschrieben, rein garnichts.
schalte ich die struktur manuell wird ins log "on" geschrieben.
schalte ich die struktur manuell funktioniert ja auch alles. iss schon komisch.
Hi MisterEltako
bekomme leider immer noch eine merkwürdige meldung ins log:
3.04.11 20:53:56 3: Kontrolle return value: Can't modify non-lvalue subroutine call in scalar assignment at (eval 24945) line 1, near ""on") "
2013.04.11 20:56:37 3: Kontrolle return value: Can't modify non-lvalue subroutine call in scalar assignment at (eval 24946) line 1, near ""on") "
Gruss
Stephan
mach mal bitte ein list auf deine d1 und d2.
haben die wirklich die statii on und off ?
gruss
andre
Hi!
Hatte leider statt eq das Gleichheitszeichen verwendet....
So passt es jetzt:
define d1 dummy
define d2 dummy
define a1 dummy
define Kontrolle notify d1.*|d2.* {\
if ((Value("d1") eq "on") && (Value("d2") eq "on")) {\
fhem("set a1 on");;\
} else {\
fhem("set a1 off");;\
}\
}
MfG, MisterEltako.
ja, haben sie beide:
d1
Internals:
CFGFN ./FHEM/heizung.cfg
NAME regelleiste_sw_Heizung
NR 374
NTFY_TRIGGERTIME 2013-04-11 21:21:34
STATE on
TYPE dummy
Readings:
2013-04-11 21:21:34 state on
Attributes:
Steuerung_Heizung1 Heizung_Solar
alias HilfsSW Struktur/Status für Heizung
room Heizung
setList on off
webCmd on:off
d2
Internals:
CFGFN ./FHEM/heizung.cfg
NAME sw_hilfe_Solarthermie
NR 381
STATE on
TYPE dummy
Readings:
2013-04-11 21:10:22 state on
Attributes:
Steuerung_Heizung1 Heizung_Solar
alias Thermie - HilfsSW Struktur/Status für Heizung
room Heizung
setList on off
webCmd on:off
ja, Danke MisterEltako, die Heizung läuft erstmal wieder. Kann ich bei fhem("set a1 on");;\ noch ein at einbauen?
Vielen Dank euch beiden für die Mühen und die Zeit.
Ich werde mich totzdem noch weiter damit beschäftige, kann ja nicht sein dass die Struktur nicht mehr schaltet.
Gruss
Stephan
Hi!
Natürlich!
z.B.
define d1 dummy
define d2 dummy
define a1 dummy
define Kontrolle notify d1.*|d2.* {\
if ((Value("d1") eq "on") && (Value("d2") eq "on")) {\
fhem("define Heizung_ein at +00:00:05 set a1 on");;\
} else {\
fhem("set a1 off");;\
}\
}
MfG, MisterEltako
super, läuft, nochmal vielen Dank MisterEltako und andre.
Die Lösung mit if else gefällt mir eigentlich auch besser als das Konstrukt mit der Struktur.
Schönen Abend noch.
Stephan