Hallo,
ich habe einen Samsung Fernseher und dieser ist in FHEM eingetragen. Wenn er eingeschaltet ist steht dort opened. Und wenn er auschgeschaltet ist steht dort disconnected. Jetzt wollte ich einen dummy erstellen um den status in ein on oder off "umzuwandeln". Dies benötige ich für die anzeige in der Tablet UI. Dazu habe ich folgenden Code.
define Wohnzimmerfernseherstatus dummy
define Wohnzimmerfernseherstatuschangeon notify SamsungTV { if (ReadingsVal("SamsungTV","state","opened")){ fhem("set Wohnzimmerfernseherstatus on")} }
define Wohnzimmerfernseherstatuschangeoff notify SamsungTV { if (ReadingsVal("SamsungTV","state","disconnected")){ fhem("set Wohnzimmerfernseherstatus off")} }
Wenn ich den fernseher anschalte schaltet der dummy auf on.
Schalte ich den fernseher aber aus und der Status geht auf disconnected. Bleibt der dummy auf on. Ich finde leider meinen fehler nicht.
Dankeschön
Ganz schön kompliziert. Wenn Du das nur für TabletUI brauchst dann lege ein userReading an.
Ok danke erstmal. Über den Dummy mit on und off sollte der fernseher später auch mal an bzw. aus geschaltet werden. Webcmd in fhem. Bin leider anfänger und habe von dem User reading erstmal keine ahnung. Ist es denn damit möglich dann auch zu schalten?
Ist der code oben wenn er auch kompliziert ist denn falsch? Leider geht es damit nicht.
An sich sollte das schon durch geeignete Darstellungsvorgaben am Gerät SamsungTV gehen.
Wenn du mehr brauchst, schau dir mal readingsGroup an.
Damit kann man auch die Schaltbefehle hinterlegen, auch zu ganz anderen Devices (IR-FB usw.).
Beispiele gibt es einige im Wiki, oder auch hier ein etwas komplizierteres: https://forum.fhem.de/index.php/topic,75020.msg668780.html#msg668780
Hi,
welches Widget nutzt du dafür im FTUI?
Je nach Widget kannst du dort vorgeben, dass opened als Ein (Symbol farbig) und disconnected als aus (Symbol grau) interpretiert wird.
Für das spätere on/off schalten kannst ein weiteres Reading in das TV Device schreiben und darauf dann triggern, spart den extra Dummy :-)
Geht z.B. mit dem Switch Widget da können für Anzeige und schalten 2 unterschiedliche Readings genutzt werden.
<div data-type="switch" data-device="SamsungTV" data-cmd="setreading" data-set="schalten" data-get="state" data-get-on="opened" data-get-off="disconnected" data-set-on="ein" data-set-off="aus" ></div>
Grüße
Achim
Wieso 2 notify?
Wie wäre es mit "else" und "elseif"?
Hast Du denn ein Event zu dem von Dir gewünschten Zeitpunkten?
Wie wäre es mit einem Logeintag anstatt dem set, so zum Testen?
Was willst Du verwenden? Mal schreibst Du Tablet UI, dann wieder Webcmd.
Für das letzte habe ich mich bei Otto bedient:
https://heinz-otto.blogspot.de/2017/01/ein-remote-taster-in-fhem-mit.html (https://heinz-otto.blogspot.de/2017/01/ein-remote-taster-in-fhem-mit.html)
define Wohnzimmerfernseherstatuschangeon notify SamsungTV:opened set Wohnzimmerfernseherstatus on
define Wohnzimmerfernseherstatuschangeoff notify SamsungTV:disconnected set Wohnzimmerfernseherstatus off
Wenn es denn zwei sein sollen
define Wohnzimmerfernseherstatuschangeon notify SamsungTV:(opened|disconnected) { fhem("set Wohnzimmerfernseherstatus " . ($EVENT eq "opened" ? "on" : "off") }
Wenn es nur ein Notify sein soll
Zitat von: CBSnake am 21 September 2017, 16:13:52
<div data-type="switch" data-device="SamsungTV" data-cmd="setreading" data-set="schalten" data-get="state" data-get-on="opened" data-get-off="disconnected" data-set-on="ein" data-set-off="aus" ></div>
Den code habe ich nun angepasst und das klappt. Danke!
Zitat von: CoolTux am 21 September 2017, 16:24:22
define Wohnzimmerfernseherstatuschangeon notify SamsungTV:opened set Wohnzimmerfernseherstatus on
define Wohnzimmerfernseherstatuschangeoff notify SamsungTV:disconnected set Wohnzimmerfernseherstatus off
Wenn es denn zwei sein sollen
define Wohnzimmerfernseherstatuschangeon notify SamsungTV:(opened|disconnected) { fhem("set Wohnzimmerfernseherstatus " . ($EVENT eq "opened" ? "on" : "off") }
Wenn es nur ein Notify sein soll
Geht leider beides auch nicht. Der dummy passt sich nicht an. Bei opened geht er auf on aber bei disconnected nicht auf off
Zitat von: rabehd am 21 September 2017, 16:21:36
Was willst Du verwenden? Mal schreibst Du Tablet UI, dann wieder Webcmd.
Für das letzte habe ich mich bei Otto bedient:
https://heinz-otto.blogspot.de/2017/01/ein-remote-taster-in-fhem-mit.html (https://heinz-otto.blogspot.de/2017/01/ein-remote-taster-in-fhem-mit.html)
am liebsten einen dummy mit webcmd das ich per klick an und aus machen kann. Und dieser dummy lässt sich dann super einfach in die tablet ui als fernseher einbinden!
Dann stimmt Dein Event nicht. Bitte im Eventmonitor schauen was da genau kommt. Da kannst dann auch gleich ein notify für disonnected anlegen lassen.
Hi,
ich habe vor einem ähnlichen Problem gestanden, zumal der state opened bei mir auch angezeigt wird, wenn das Gerät aus ist. Ich habe mir mit einem Presence-Device und einem Notify weitergeholfen.
define pr_SamsungTV PRESENCE lan-ping 192.168.XXX.XXX
Mein Notify sieht dann wie folgt aus
defmod nt_SamsungTV notify pr_SamsungTV:.* {\
my $prSamsung = Value('pr_SamsungTV');;\
if ($prSamsung eq "present") {\
fhem "setstate SamsungTV POWERON";;\
} else {\
fhem "setstate SamsungTV POWEROFF";;\
}\
}
Achtung, ich arbeite mit setstate, da ich nicht ständig weitere notifys getriggert haben möchte. In meinem TabletUI habe ich den Fernseher dann wie folgt eingebunden:
<div data-type="switch"
data-device="pr_SamsungTV"
data-get="STATE"
data-get-on="present"
data-get-off="!on"
data-icon="oa-it_television"
data-on-color="green"
data-off-color="red"
data-background-color="blue"
data-background-icon="fa-none"
data-set-on=""
data-cmd="set SamsungTV POWEROFF"
class="">
</div>
Das gesamte Konstrukt läuft tadellos. Ich weiß natürlich nicht, ob es optimal ist, aber nach vielem Probieren ist dies zumindest lauffähig.
Gruß Mundus
Zitat von: Mundus am 21 September 2017, 17:50:11
Hi,
ich habe vor einem ähnlichen Problem gestanden, zumal der state opened bei mir auch angezeigt wird, wenn das Gerät aus ist. Ich habe mir mit einem Presence-Device und einem Notify weitergeholfen.
Vielen Dank, dies funktioniert tadelos! DANKE!!