FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: pula am 03 Mai 2015, 17:36:17

Titel: Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
Beitrag von: pula am 03 Mai 2015, 17:36:17
Hallo,

ich habe folgende Situation:

TV+Verstärker hängen an einer (HM)-Steckdose, ein Openelec läuft bei mir 24/7 auf einer Cubox (eingebauter IR-Empfänger) mit einer alten Fernbedienung eines Samsung-TVs.

"Problem": da ich keine HM-Fernbedienung habe, müssen wir den TV immer über Handy/Tablet (andfhem) ein- bzw ausschalten, was zwar nett, aber ein wenig umständlich ist. Da der Power-Button auf der Fernbedienung eh nicht benutzt wird, lag es nahe, diesen Button dazu zu verwenden, den TV und Verstärker ein- und auszuschalten.

Mein Ansatz dazu:
Web-Aufruf der entsprechenden fhem-Adresse aus kodi.

Die Url zu dem Aufruf in meinem Fall:

https://192.168.x.x:8083/fhem?cmd=set%20wz_kino%20toggle

Funktioniert im Browser, allerdings muss Username/Passwort eingegeben werden.
Also Idee: per wget die URL aufrufen und User/Passwort mitgeben.

Leider nicht möglich, weil das wget von openelec dieses Feature nicht unterstützt. Da kodi aber intensiv mit Python arbeitet (perl ist auch nicht verfügbar), lag die Idee nahe, den Aufruf per python zu machen.

So funktionierte es bei mir:
import urllib
import urllib2
url = "https://192.168.x.x:8083/fhem?cmd=set%20wz_kino%20toggle"

username = "xxxx"
password = "xxxx"
p = urllib2.HTTPPasswordMgrWithDefaultRealm()

p.add_password(None, url, username, password)

handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

page = urllib2.urlopen(url).read()

Skript gespeichert unter /storage/.kodi/userdata/toggle_tv.py

(Kann sein, daß der import von urllib nicht notwendig ist ;-)

So weit, so gut. Nun noch in der remote.xml den entsprechenden Eintrag gemacht:

<power>XBMC.RunScript(/storage/.kodi/userdata/toggle_tv.py)</power>

Restart von kodi und fertig.

Funktioniert bei mir wunderbar - vielleicht kann das ja mal jemand brauchen....

Cheers,

Pula
Titel: Antw:Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
Beitrag von: Vanagon am 26 August 2015, 19:26:10
Super Sache! Genau das habe ich gesucht. Vielen Dank dafür.
Titel: Antw:Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
Beitrag von: Ascoban am 04 September 2015, 12:40:33
Es gibt für kodi ein fhem addon das per telnet auf fhem zugreift, da kann man auch für Musik und Film verschiedene befehle hinterlegen oder Uhrzeiten.
Titel: Antw:Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
Beitrag von: masked__rider am 13 September 2017, 20:04:20
Hallo!

Ich möchte nur kurz ein Update zum Codeschnipsel von pula geben. Und zwar funktioniert der Code nach wie vor einwandfrei, es müssen jedoch zwei Dinge geändert werden:

import urllib
import ssl
import urllib2
url = "https://ip_fhem:8083/fhem?cmd=set%eigener_Befehl"

username = "Benutzername Fhem"
password = "Passwort"
url = url.replace(" ", "%20")
p = urllib2.HTTPPasswordMgrWithDefaultRealm()

ssl._create_default_https_context = ssl._create_unverified_context
p.add_password(None, url, username, password)


handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

page = urllib2.urlopen(url).read()


Im Endeffekt sind die SSL-Einträge neu, mit denen funktioniert das ganze wieder. (Ich persönlich schalte über die Fernbedienung die mir Kodi steuert die LED´s per Toggle ein und aus)

vg
Michael

edit: Hab noch eine Zeile hinzugefügt, sodass Leerzeichen im fhem-Link automatisch zu "%20" werden.