Dummy mit inhalt füttern von Samsung TV Probleme mit notify

Begonnen von Pascal94, 21 September 2017, 14:27:19

Vorheriges Thema - Nächstes Thema

Pascal94

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


CoolTux

Ganz schön kompliziert. Wenn Du das nur für TabletUI brauchst dann lege ein userReading an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Pascal94

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.

Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

CBSnake

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
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

rabehd

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?
Auch funktionierende Lösungen kann man hinterfragen.

rabehd

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
Auch funktionierende Lösungen kann man hinterfragen.

CoolTux


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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Pascal94

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

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!


CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Mundus

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

Pascal94

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!!