Autor Thema: Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen  (Gelesen 3438 mal)

Offline pula

  • Full Member
  • ***
  • Beiträge: 402
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
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Offline Vanagon

  • New Member
  • *
  • Beiträge: 15
Antw:Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
« Antwort #1 am: 26 August 2015, 19:26:10 »
Super Sache! Genau das habe ich gesucht. Vielen Dank dafür.

Offline Ascoban

  • New Member
  • *
  • Beiträge: 21
Antw:Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
« Antwort #2 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.

Offline masked__rider

  • Newbie
  • Beiträge: 1
Antw:Fhem-Kommandos per Fernbedienung aus openelec (kodi) absetzen
« Antwort #3 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.
« Letzte Änderung: 16 September 2017, 15:42:05 von masked__rider »

 

decade-submarginal