Module für XBMC

Begonnen von Dennis B., 06 Januar 2013, 22:32:24

Vorheriges Thema - Nächstes Thema

DazDavid

Yeeey  ;)

Ich hab jetzt aber doch noch das Zeitformat geändert, da es für meine Zwecke auch praktischer ist und gar nicht so schwer war wie gedacht.
Der Befehl lautet jetzt set name seek hh:mm:ss wobei die einzelnen Werte auch Einstellig sein können.

Im Anhang die aktualisierte Version.

Danke fürs Einchecken und natürlich das Feedback.
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

vbs

Danke, gefällt mir! Upgedatet...

visionsurfer

Hi,

sorry ich muss mal dumm fragen, aber wie bekommt man das genau zum laufen. Ich dachte ich wüsste wie :) Aber es läuft nicht.

Ich habe ein KODI auf einem Raspberry PI3. Mit LibreELEC. Alles Standard Installation. Also nichts besonderes.

Das hier hab ich in KODI auch aktiviert:

TCP: In System/Settings/Network/Services activate Allow programs on this system to control Kodi for localhost access only and Allow programs on other systems to control Kodi for access from other computers as well

Ich hab alles dann in FHEM so versucht:

define kodi XBMC 192.168.178.51 tcp kodi kodi

Das Gerät wurde angelegt, aber er hat nicht connected. Es stand immer disconnect da.

Also hab ich es geändert und wie folgt versucht:

define kodi XBMC 192.168.178.51:8080 tcp kodi kodi

Weil ich diesen Port in meinem KODI gesehen habe. Den Username und Passwort hab ich vorher so festgelegt. Jetzt wurde das Gerät angelegt und er Connected auch.

Jetzt steht OPEN im State. Aber die Readings werden nicht erneuert, wenn ich z.B. Live TV schaue. Ich kann durch SET auch nicht Pause oder irgendwas senden. Das System reagiert nicht.

Was mache ich falsch ?

Komme ich da nicht intern automatisch durch ? Muss ich da noch was in der Fritzbox einstellen ? Ich bin doch intern in meinem Netz.

Wie habt ihr das gemacht ? Auf meinem FHEM ist auch libson-perl installiert.

Ich hatte gehofft das es Plug & Play geht :)

Grüße,
Visionsurfer

visionsurfer

Hi,

also falscher Alarm. Ich hab es hinbekommen. Ich hab das Device noch mal gelöscht. Mein KODI Raspberry noch mal neu gestartet und das Device ganz normal ohne besondere Angabe von einem Port noch mal definiert.

Lief sofort.

Perfekt.

Was für ein Update Intervall habt ihr so eingestellt ? Da müsste ja eigentlich ein ziemlich kurzer rein, oder ?
Weil ich möchte das nun mit anderen Sachen wie Licht usw. verbinden. Aber ich will natürlich nicht 60 Sekunden warten, bis was passiert.

Was macht da Sinn ?

Grüße,
Visionsurfer

C0mmanda

Ich habe mehrere Kodis (4Stk insgesamt aktuell) eingebunden mit unterschiedlichen Zeiten von 60-30sec.

Stati wie play und pause werden jedoch unabhängig vom Intervall sofort übertragen. Und genau da liegt auch so
ein bisschen der Hund begraben, denn beim zappen (Live-TV) sendet Kodi stets kurz "stopped" um dann wieder auf "play" zu wechseln was dann eine Lightshow im Wohnzimmer generiert wenn man direkt darauf reagiert.

Das glatt zu bügeln habe ich noch nicht so richtig hinbekommen.... ich reagiere mit einem DOIF auf den Playstatus um Lightscene zu steuern.
Für Tipps bin ich hier sehr empfänglich.

grtz
CmdA

hillbicks

Du kannst das zumindest ein wenig einschraenken in dem Du im DOIF noch den type mit abfragst, also entweder movie und episode einschliessen oder livetv ausschliessen.

visionsurfer

Hi,

Kennst du den Thread. Da scheint es Lösungen zu geben.

https://forum.fhem.de/index.php/topic,52675.15.html

Würde das gehen? Weil ich werde dann wenn ich soweit bin vor dem gleichen Problem stehen.

Grüße
Visionsurfer

Amenophis86

Zitat von: C0mmanda am 10 November 2016, 23:22:33
Stati wie play und pause werden jedoch unabhängig vom Intervall sofort übertragen. Und genau da liegt auch so
ein bisschen der Hund begraben, denn beim zappen (Live-TV) sendet Kodi stets kurz "stopped" um dann wieder auf "play" zu wechseln was dann eine Lightshow im Wohnzimmer generiert wenn man direkt darauf reagiert.

Das glatt zu bügeln habe ich noch nicht so richtig hinbekommen.... ich reagiere mit einem DOIF auf den Playstatus um Lightscene zu steuern.
Für Tipps bin ich hier sehr empfänglich.

Hast du es mal mit dem wait attr versucht? http://fhem.de/commandref_DE.html#DOIF_wait
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

C0mmanda

Asche auf mein Haupt!

Wenn man DOIF - wait richtig benutzt (Stichwort: "," + ":") funktioniert das einwandfrei!

grtz
CmdA

TWART016

Ich möchte mit FHEM beim KODI 16.1 steuern. Kodi läuft auf einem Raspberry Pi 3 mit max2play.

Mit
define KODI XBMC 192.168.178.115 tcp
habe ich es bereits eingebunden. Den Port des Webservers habe ich von 8080 auf 9090 geändert.

Internals:
   CFGFN
   DEF        192.168.178.115 tcp
   DeviceName 192.168.178.115:9090
   FD         41
   Host       192.168.178.115
   LAST_RECV  1480699134.00945
   NAME       KODI
   NR         411
   NextID     35
   PARTIAL
   Password   kodi
   Port       9090
   Protocol   tcp
   STATE      opened
   TYPE       XBMC
   Username   kodi
   Pendingplayercmds:
     10:
       method     Player.PlayPause
       Params:
         play       toggle
         playerid   -1
     11:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     12:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     13:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     14:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     15:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     16:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     17:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     18:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     19:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     21:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     22:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     24:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     25:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     27:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     28:
       method     Player.SetShuffle
       Params:
         playerid   -1
         shuffle    toggle
     3:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     31:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     34:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     37:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     4:
       method     Player.PlayPause
       Params:
         playerid   -1
     5:
       method     Player.PlayPause
       Params:
         playerid   -1
     6:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     8:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     9:
       method     Player.GetProperties
       Params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
   Readings:
     2016-12-02 18:18:54   partymode
     2016-12-02 18:18:54   playStatus      stopped
     2016-12-02 18:18:54   repeat
     2016-12-02 18:18:54   shuffle
     2016-12-02 18:18:54   speed
     2016-12-02 18:18:54   state           opened
     2016-12-02 18:18:54   system          wake
     2016-12-02 18:18:54   time
     2016-12-02 18:18:54   totaltime
Attributes:
   room       test
   updateInterval 60
   verbose    5


Der Status wird als open angezeigt. Jedoch beomme ich keine Änderung mit FHEM hin. Auch den Status sehe ich in FHEM nicht.

Das Steuern mit der Kodi iPhone App funktioniert problemlos.

Hat jemand eine Idee, warum die Kommunikation nicht funktioniert?

vbs

Mach doch zum Testen mal ein Telnet händisch auf den Port auf (in einer Konsole). Wenn du dann irgendwas in Kodi bedienst (play/stop), dann müsstest du im Telnet die Events sehen. Wenn man da was sieht, dann ists ein FHEM-Problem, wenn man nichts sieht, dann ein Kodi-Problem.

TWART016

Ein Telent funktioniert. Dann habe ich ein paar mal play/pause gedrückt, aber nicht kam im Log.

Also liegt es wohl an Kodi, wie troubleshoote ich das am besten?

vbs

Sorry, seh ich jetzt erst: Du sagst, du hast den Port des Webservers auf 9090 geändert? FHEM will nicht mit dem "normalen" Webserver reden, sondern mit dem JSON-Server. Der normale Webserver läuft auf Port 80 defaultmäßig (denk ich), der JSON auf 9090.
Also eigetnlich musst du keine Ports verstellen, du musst nur in Kodi diese Fernsteuerung aktivieren (ich glaub "Fernsteuerung durch PRogramme auf anderen Rechnern zulassen" aktiviere). Müsste irgendwo in commandref/Wiki stehen sonst. Wenn du es nicht findest, dann such ich es raus.

TWART016

Problem ist, dass die Webseite von max2play auf Port 80 (http) läuft.

Standardmäßig war der Port des Webservers auf 8080. Ändere ich es auf 80, kommt der Fehler: Failed to start.

C0mmanda

Der Webserver-Port hat übrigens nichts mit dem Port :9090 bei der Definition in Kodi zu tun!
Kein Kodi bei mir hat den Webserver-Port 9090, und jedes Kodi kommuniziert hervorragend mit FHEM.

Den Webserver würde ich also wieder ändern auf 8080...

Alles was du Kodi-seitig tun musst:

Kodi bis V16:
Einstellungen -> Dienste -> Fernbedienung -> Steuerung über entferne Programme zulassen aktivieren.

Kodi ab V17:
Einstellungen -> Dienste -> Steuerung -> Fernsteuerung durch Anwendungen anderer Rechner erlauben aktivieren.

Kodi neu starten, dann sollte es klappen.

grtz
CmdA