Module für XBMC

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

Vorheriges Thema - Nächstes Thema

siggi85

Zitat von: FhemPiUser am 21 August 2016, 20:47:20
...aber wie finde den Namen bzw. <addonid> und die parameter heraus?

addon <addonid> <parametername> <parametervalue> - Executes addon with one Parameter, for example set xbmc addon script.json-cec command activate

Der Aufruf des Addons mit Paremetern muss im Addon programmiert sein, damit der Aufruf funktioniert. Hierfür entweder die Doku des Addons oder den Quellcode durchsuchen. Ansonsten bleibt nur die Kontaktanfrage zum jeweiligen Programmierer des Addons ob und inwiefern eine Steuerung möglich ist.

Wichtig ist hierbei auch die Definition in der Commandref: "Executes Addon" heißt nicht gezwungener Weise auch "Open Addon".

DazDavid

Hat zufällig schon mal jemand versucht einen Stream an KODI zu senden (das klappt ja über "open") und an eine bestimmte Stelle des Filmes zu springen? Ich würde gerne einen Film oder eine Serie z.B. am Notebook anfangen und im Wohnzimmer weiterschauen können und mit KODI Bordmitteln geht das leider nicht so recht wie ich das gern hätte, mit FHEM könnte das schon eher klappen nur fehlt mir der Teil wie ich an die Stelle springe, an welcher ich vorher aufgehört habe.

Laut XBMC API gibt es die Commands getpercentage() und SeekPercentage() welche die Position in Prozent angibt. Hat jemand eine Idee wie man das in das Addon implementieren könnte?
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

Amenophis86

Mach es dir einfacher und stelle auf eine gemeinsame Datenbank um. Dazu findest du viel im Internet. Habe zuhause zwei Pi, welche mit OSMC bzw. Kodi laufen. Beide greifen auf die Dateien meiner NAS zu und teilen sich eine Datenbank, welche auch auf meiner NAS liegen. Wenn ich einen Film nun beim einen stoppe, kann ich ihn an der gleichen Stelle beim anderen weiter schauen. Musst nur immer schauen, dass bei einem Update beide es installieren, sonst kann es ab und an zu Problemen kommen. Und natürlich müssen beide Zugriff auf das Netzwerk für die Datenbank haben.
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...

justme1968

schau mal weiter oben im thread. das hat schon mal jemand gebaut.

oder plex verwenden. da geht das automatisch über alle player hinweg :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

DazDavid

@Amenophis86: Danke für den Hinweis aber nicht umsonst habe ich geschrieben das es mit Bordmitteln nicht so klappt wie ich es gern hätten. Die gemeinsame Datenbank gilt nämlich nur für lokale Medien, nicht aber für Streams welche aus Addons geliefert werden. Hier müsste man für jedes Addon eine Lösung finden, was in FHEM sicherlich einfacher zu lösen wäre.

@justme1968: Ich werde mir gern mal Plex anschauen da ich da jetzt schon häufiger drüber gestolpert bin. Außerdem suche ich mal die Stelle die du im Thread meinst.
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

DazDavid

Weisst du zufällig noch wo in etwa das Thema schon mal behandelt wurde? Der Thread ist ja mittlerweile recht lang geworden und über die Suche hab ich auch nichts passendes gefunden.
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

Amenophis86

Zitat von: DazDavid am 28 Oktober 2016, 12:05:43
@Amenophis86: Danke für den Hinweis aber nicht umsonst habe ich geschrieben das es mit Bordmitteln nicht so klappt wie ich es gern hätten. Die gemeinsame Datenbank gilt nämlich nur für lokale Medien, nicht aber für Streams welche aus Addons geliefert werden. Hier müsste man für jedes Addon eine Lösung finden, was in FHEM sicherlich einfacher zu lösen wäre.

Oh, hatte das mit den Streams überlesen. Sry :)
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...

DazDavid

@justme1968: danke ich habe den von dir erwähnten Eintrag gefunden (falls noch jemand sucht irgendwo auf Seite 10 oder 11)
Ich werde mich mal daran versuchen das Problem zu lösen.

Außerdem auch ein Danke an alle Beteiligte dieses Moduls. Super arbeit!!!
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

DazDavid

Ich habe jetzt mal versucht das Player.Seek Kommando in das XBMC Modul einzubinden, allerdings scheint einfach nichts zu passieren. Zugegeben ich habe auch keine Ahnung von Perl aber ich bin Lernwillig :)

Hat jemand einen Tipp für mich wie ich das Ganze am besten Debugge um dem Problem auf die Schliche zu kommen?
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

DazDavid

Ich habe mein Problem gelöst und die Seek Funktion eingebaut. Vielleicht könnte sich das jemand mit mehr Programmiererfahrung nochmal anschauen und evtl könnte es durch den Maintainer auch in die offizielle Version aufgenommen werden. Vielleicht hilft es auch anderen.

Folgende Änderungen habe ich eingebaut:
Einen neuen elseif-Block für das Kommando eingebaut:
  elsif($cmd eq 'seek') {
    return XBMC_Set_Seek($hash, $args[0] + 0, $args[1] + 0, $args[2] + 0, @args);
  }


Die zugehörige Subroutine angelegt:
sub XBMC_Set_Seek($@)
{
  my ($hash,$hours,$minutes,$seconds,$player) = @_;
  my $obj = {
    'method'  => 'Player.Seek',
    'params' => {
  'value' => {
  'seconds' => $seconds,
  'minutes' => $minutes,
  'hours' => $hours
  },
      'playerid' => 0 #will be replaced with the active player
    }
  };


Mit diesen Änderungen kann man wie folgt an einen bestimmten Punkt springen:
set Name seek hour minute second

also z.B. set KODI seek 0 45 0 um an Minute 45 zu springen
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

vbs

Finde ich prinzipiell gut, danke dafür! Werde ich gerne übernehmen. Nur ein paar Anmerkungen:

- ich glaube in der Funktion selber fehlt noch ein Aufruf, der den Befehl absendet (XBMC_PlayerCommand?). Kann eigentlich so nicht funktionieren?
- ich vermute, dass du die Zeitangaben nach int konvertierst (+ 0), damit sie entsprechend korrekt in der JSON-Nachricht kodiert werden? Besser die Konvertierung dann erst in XBMC_Set_Seek vornehmen, so dass der Aufrufer davon nichts wissen mussen. Machts mMn robuster.
- unten im Modul gibts eine Doku zu den Kommandos. Wäre super, wenn du da eine Zeile spendieren könntest.
- man könnte die Zeitangabe anstatt in drei Parametern auch als einen Parameter der Form "00:45:00" angeben. Liest sich mMn besser und man hantiert mit weniger Parametern im Code. Ist aber sicherlich Geschmackssache!

Wenn du das Ganze als Patch bereit stellen könntest, dann wäre es super. Ich kann die Codeteile aber sonst auch händisch einbauen.

DazDavid

Hallo vbs,

danke für die Antwort, ich hatte mit mehr Kritik gerechnet :)

1. Was genau du hiermit meinst weiß ich nicht. Ich schaue nochmal aber ich habe es gestern mehrmals getestet und es funktionierte.
2. Korrekt, da ich die Werte als Int benötige konvertiere ich sie mit +0. Kann ich gern noch in die Subroutine verschieben.
3. Die Doku der Kommandos habe ich gesehen und bewusst für meine Zwecke erstmal weggelassen. Wenn du das übernehmen möchtest baue ich gern eine Zeile ein.
4. das mit dem Format hh:mm:ss habe ich versucht, kann ich aber so nicht direkt per JSON übergeben (Vielleicht habe ichs aber auch nur als String übergeben und es ging deshalb nicht?!). Ich versuche das nochmal, wäre natürlich Anwenderfreundlicher es in diesem Format anzugeben.

Was genau meinst du mit als Patch bereitstellen?
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

DazDavid

Hach ich weiß jetzt was du mit Punkt 1 meinst. Der Befehl ist natürlich da... Copy&Paste Error :)
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

DazDavid

So ich habe jetzt alle Punkte bis auf den mit dem Zeitformat übernommen. Eventuell schaue ich mir das nochmal an wenn ich ein bisschen Zeit habe da ich den String dann in Hours,Minutes,Seconds auseinander nehmen müsste. Mal schauen wie das geht :)

Im Anhang die aktuelle 70_XBMC.pm mit meinen Änderungen.
FHEM (up2date) on Raspberry Pi 3B | nanoCUL 868 MHz | Raspbee Zigbee Gateway | Philips Hue | Osram Lightify | MAX Thermostate

vbs

Kurz angetestet, funktioniert. Und eingecheckt... danke!