Hallo zusammen.
ich möchte, wenn unser Fernseher an ist, eine Lampe über eine schaltbare Steckdose anschalten,
bzw. wenn der Fernseher ausgeschaltet wird wieder ausschalten.
In einer Ausbaustufe soll sich dann das Ein-/Ausschalteverhalten an der Dämmerung "orientieren",
also wenn es dunkel wird soll die Bedingung erst wirksam sein.
Aber soweit bin ich noch nicht.
Mir ist es schon gelungen unseren SONY KDL-46HX755 über
define TV_Wohnzimmer BRAVIA 192.168.178.27
attr TV_Wohnzimmer devStateIcon on:rc_GREEN:off off:rc_YELLOW:on absent:rc_STOP:on
attr TV_Wohnzimmer icon it_television
attr TV_Wohnzimmer webCmd volume:channelUp:channelDown:on:off
"anzusprechen", wobei das Einschalten nicht, wohl aber das Ausschalten funktioniert, aber das nur nebenher.
Ich habe folgende IF Abfrage geschrieben, die Steckdose zwar einschaltet, aber nicht ausschaltet.
Mir ist aufgefallen, das der Status, ob der TV an ist oder nicht, immer ganz schön zeitversetzt (bis zu 5 Min.) kommt,
deshalb habe ich die Abfrage auch so gesetzt, dass sie alle 30 Sekunden abgefragt wird.
Aber irgendwo scheint ein riesen Bock in dieser Logik zu sein:
+*00:00:30 { if (ReadingsVal ("TV_Wohnzimmer","presence",99) == present)
{ fhem("define Steckdose_on notify TV_Wohnzimmer set Steckdose on") }
else (ReadingsVal ("TV_Wohnzimmer","presence",99) == absent)
{ fhem("define Steckdose_off notify TV_Wohnzimmer set Steckdose off") }
}
Weiß jemand von Euch hier Rat?
Danke!
Mit DOIF schon probiert? Wobei,wer schaltet die Steckdose on wenn tv eingeschaltet werden soll?
send from OP3
Sorry überlesen,du willst ext. Lampe schalten.
DOIF ([TV_Wohnzimmer] eq "on") (set Steckdose on)
DOELSEIF ([TV_Wohnzimmer] eq "off") (set Steckdose off)
send from OP3
Hallo satprofi,
helf' mir bite mal auf die Sprünge, habe ich das richtig gemacht:
define Fernsehsteuerung DOIF ([TV_Wohnzimmer] eq "on") (set Steckdose on) DOELSEIF ([TV_Wohnzimmer] eq "off") (set Steckdose off)
Da passiert nicht's. Ich poste Dir mal das Listing vom TV_Wohnzimmer:
Internals:
CFGFN /opt/fhem/mycfg/99_tests.cfg
CHANGED
CHANNELCOUNT 50
DEF 192.168.178.27
INTERVAL 45
NAME TV_Wohnzimmer
NR 37
STATE absent
TYPE BRAVIA
generation
modelName
name
Readings:
2016-09-30 19:52:49 area DEU
2016-09-30 19:34:10 channel -
2016-09-30 19:34:10 channelId -
2016-09-30 19:52:49 country DEU
2016-09-30 19:34:10 currentMedia -
2016-09-30 19:34:10 currentTitle -
2016-09-30 19:52:49 generation 1.1
2016-09-30 19:34:10 input -
2016-09-30 19:52:49 language ger
2016-09-30 19:52:49 modelName KDL-46HX755
2016-10-01 02:57:33 mute off
2016-09-30 19:52:49 name BRAVIA
2016-10-02 12:24:40 power off
2016-10-02 13:25:39 presence absent
2016-10-02 12:24:40 state absent
2016-10-02 12:15:11 volume 1
Helper:
ADDRESS 192.168.178.27
AVAILABLE 0
HEADER X-CERS-DEVICE-ID: fhem_remote
lastInput
Port:
IRCC 80
SERVICE 80
UPNP 52323
Device:
Attributes:
devStateIcon on:rc_GREEN:off off:rc_YELLOW:on absent:rc_STOP:on
icon it_television
webCmd volume:channelUp:channelDown:on:off
Versuche [TV_Wohnzimmer:power] eq "on"
send from OP3
Bei den readings siehst was du nehmen kannst
send from OP3
Du müsstest auf [TV_Wohnzimmer:presence] eq "present" oder "absent" triggern.
Wenn Du den DEF-Editor verwendest, kannst Du das DOIF (http://fhem.de/commandref_DE.html#DOIF) auch strukturieren (Zeilenumbruch, Komentar), siehe
DOIF: Tips leichtere Bedienung Syntaxhervorhebung Klammerprüfung Suchen&Ersetzen (https://forum.fhem.de/index.php/topic,45373.0.html)
Mit tv bist du wirklich verbunden?
send from OP3