Module für XBMC

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

Vorheriges Thema - Nächstes Thema

CicakDOS

Hi,

die Quellen sind im XBMC eingebunden ?
Falls ja, versuche bitte die URL aufzubauen ohne "Benutzer:Passwort@" z.B.:

set wzXBMC picture 'smb://192.168.1.11/fotos/FHEM' '001.JPG'

Die API-Schnittstelle liefert kein ReturnCode wenn Pfad nicht angesprochen werden kann.
Und wie Du selber erkennen konntest, XBMC liefert nur schwarzes Bild, dabei wird kein Eintrag im XBMC Log erzeugt.
Deswegen ist eine Fehleranalyse an sich absolut schwer, meistens liegt es an der Berechtigung zwischen einzelnen Instanzen.

Grüßle

Dieter100

Hallo,
eine Frage zum Modul:
Ist es irgendwie möglich einen Radiostream, welcher als Playlist vorliegt,
über FHEM zu starten bzw. zu stoppen?

Gruß
Dieter

CicakDOS

Hi Dieter,

was du als Test versuchen könntest, wäre direkt mit deinem XBMC über Browser zu kommunizieren:

PlaylistID "1" starten:
http://XBMC_IP:PORT/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Open","params":{"item":{"playlistid":1},"options":{"repeat":"all"}}}

Playlist stoppen:
http://XBMC_IP:PORT/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Stop"}

Falls beide Befehle funktionieren sollten, dann würde ich die bestehende Funktion erweitert bzw. verbessern.

Grüßle

Dieter100

Hi,

danke für die Antwort.
Momentan kann ich die Playlist folgendermaßen starten:

http://XBMC_IP/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.Open", "params": { "item": { "file": "special://profile/playlists/music/xxx.m3u" } }, "id": 1}

Bzw. wieder stoppen:

http://XBMC_IP/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Stop","params":{"playerid":0}}

Wenn ich dies URL-Encode, kann ich über GetHttpFile die entsprechende Playlist starten.

{GetHttpFile("XBMC_IP", "/jsonrpc?request=%7B%22jsonrpc%22%3A+%222.0%22%2C+%22method%22%3A+%22Player.Open%22%2C+%22params%22%3A+%7B+%22item%22%3A+%7B+%22file%22%3A+%22special%3A%2F%2Fprofile%2Fplaylists%2Fmusic%2Fxxx.m3u%22+%7D+%7D%2C+%22id%22%3A+1%7D")}

Grüße
Dieter

AK-868

Hallo zusammen.

Ich hab FHEM auf WindowsXP portiert.
Da in Zukunft wohl noch mehr dazu kommen wird.

1. Jetzt bekomm ich den Fehler das ppid nicht gefunden werden kann.

Ist auch klar.


sub XBMC_Ready


Versucht wohl den Prozess abzufragen. Den gibt es unter Windows nicht.

Die Sub rausgenommen, plus $hash->{ReadyFn} = "XBMC_Ready";

Klappt leider nicht. Status nur Initialized. Auch wenn ich die Windows-Firewall abschalte.

Anpingen kann ich XBMC. Mit anderer FHEM version  auf Wheezy läufts. Finde den Fehler nicht.

Danke für die Hilfe.
Hardware FHEM:
Neue Fritzbox 7390 keine Labor von AVM
Konfigurationsadapter Lan
Funk-Schließerkontaktschnittstellen
Funk-Fenster/Türkontakt
Funk-Schaltaktoren UP ein und zweifach
Funk-Jalousieaktoren
Funk-Rauchmelder


RedOne

Hallo,

ich muss da jetzt auch noch mal was blödes fragen.

Ich hab ne fritzbox mit einem USB Stick dran (8gb) wo ich meine Musick draufspiele.

kann mir jemand sagen wie ich das mit xbmc am besten anstelle oder geht das nicht.

ich habe jetzt schon diesen Befehl ausprobiert

set AppleTV play http//192.168.178.1:49200/AUDIO/DLNA-1-0/General-USBFlashDisk-01/Musick

weil das ist der dateiname in XBMC funktioniert aber nicht

Gruß RedOne
FHEM auf RaspberryPi
AVR-NET-IO mit Ethersex
HM-LAN-Adapter
4 HM-RT-CC-DN
CUL886Mhz culfw 1.55 + FHEMduino V 1.0b1

dennisb

#51
@AK-868: Da ich XBMC bei mir nicht immer am laufen hatte, musste ich einen Weg finden, damit FHEM nicht blockiert, wenn XBMC aus ist... Wenn XBMC nicht läuft, dann kommt es bei der Suche nach XBMC zu einem Timeout der FHEM blockiert. Daher hab ich die Suche in einen seperaten Prozess ausgelagert. Ich könnte das Ausbauen, damit du das Modul auch unter Windows benutzen kannst, aber das macht nur Sinn, wenn du XBMC immer am laufen hast.


dennisb

Habe mich mal drangesetzt und das Modul mal erweitert. Es werden jetzt deutlich mehr Commands unterstützt und ich habe auch ein Remotecontrol layout angelegt. Die Nutzung des Moduls ist am Anfang der Datei beschrieben.

@AK-868: FHEM scheint nicht mehr zu blockieren, wenn XBMC nicht läuft, daher wird jetzt standardmäßig nicht mehr in einem separatem Prozess nach XBMC gesucht. Man kann das über ein Attribut aber wieder aktivieren. Im Idealfall funktioniert es jetzt auch mit Windows.

Was muss ein Modul eigentlich erfüllen, damit es in FHEM aufgenommen wird?

UliM

#53
Zitat von: Dennis B. am 17 November 2013, 02:21:54
Was muss ein Modul eigentlich erfüllen, damit es in FHEM aufgenommen wird?
Hi,
1. Es muss funktionieren - das dürfte gegeben sein :)  Auch sollten die development-guidelines eingehalten sein. Für Multimedia-Module gibt es zB eine Vereinbarung zu einem einheitlichen Befehlssatz. Siehe alles das in http://www.fhemwiki.de/wiki/DevelopmentIntroduction und http://www.fhemwiki.de/wiki/DevelopmentGuidelines
2. Das Modul muss commandref-Doku enthalten (pod) - das ist noch nicht der Fall. Bitte aus einem anderen Modul abkupfern und die html-Formatierung sauber einbauen (zB dürfen Module, die im Alphabet und damit in der commandref weiter hinten kommen, nicht weiter eingerückt sein, als XBMC selbst -> alle tags müssen wieder geschlossen ein
3. Es muss die Bereitschaft bestehen, das Modul aktiv zu supporten durch Mitlesen im Forum und beantworten von Fragen.
(ich hoffe ich hab nix vergessen :)

Wenn das alles gegeben ist, ne Mail an Rudi schreiben mit user-request für SVN, dann das Modul einchecken und abwarten :)

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

ich benutze das modul schon seit der ersten version mit plex.

ich fände es klasse wenn du noch die set liste für 'set ?' einbaust um die möglichen kommandos direkt im web frontend zu haben und auch gleich den support für das remotecontroll modul mit einbaust. meine version schaut so aus:

sub
XBMC_RC_Layout() {
  my $ret;
  my @row;
  $row[0]="play:PLAY,pause:PAUSE,prev:REWIND,next:FF,mute:MUTE";
  $row[1]="attr rc_iconpath icons/remotecontrol";
  $row[2]="attr rc_iconprefix black_btn_";
  # unused available commands
  return @row;
}


zusärzlich brauchst du in deinem initialize noch das hier:$data{RC_layout}{XBMCLayout} = "XBMC_RC_Layout";

wenn du in deine set liste noch 'remotecontrol:remotecontrol' einbaust dann kannst du z.b. mitattr webCmd remotecontrol plex_doc_remote die remote controll buttons einblenden (siehe screenshot).


du kannst auch das hier noch probieren:sub
XBMC_summaryFn($$$$)
{
Log 3, "XBMC_summaryFn";
  my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
  my $hash   = $defs{$d};
  my $name = $hash->{NAME};

  return RC_attr2html($name);
}


zusärzlich brauchst du in deinem initialize noch das hier:$hash->{FW_summaryFn} = "XBMC_summaryFn";

dann bekommst du direkt die buttons direkt als device icon.

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

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

drdownload

#55
Also ich bin zu doof eine Playlist mit Stream in meinem Userdata Verzeichnis aufzumachen. Selbst mit URL-Encoding und GetHTTP funktioniert es nicht. Aber auf der Commandline mit curl bzw. direkt aus dem Browser heraus startet der Stream.

edit. selbst wenn direkt das Beispiel von Dieter100 nehme kommt nur ein Parsing Error zurück :/
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

drdownload

Verwendet eigentlich irgendjemand das Modul zum Starten von Playlists/Videos/was auch immer?
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

dennisb

#57
Hallo,

sorry, dass ich auf die Nachrichten nicht reagiert hab. Die E-Mail-Benachrichtigungen über neue Beiträge ist anscheinend mit Verschieben des Threads ausgegangen. Ist jetzt wieder an.

@drdownload: Da waren noch ein paar Fehler in dem Modul.  Habe die jetzt behoben und das öffnen von Ordnern und Dateien/URLs funktioniert jetzt. Die neue Version des Moduls ist angehangen.
Zum Öffnen einer Datei/URL wird der open Befehl genutzt:
set <xbmc_device> open "URI/Pfad"
Ordner werden über opendir geöffnet:
set <xbmc_device> opendir "Pfad_zum_ordner"

@Uli: Danke für die Infos. Hab die einheitlichen Commands für Multimedia Module noch nicht gefunden (hab aber auch nicht sehr intensiv gesucht  ;) ). Werde noch ein wenig am Modul basteln und dann probier ich euch das mal anzudrehen  :D

@Andre: Danke für die Tipps. Ein etwas umfangreicheres RC_Layout hatte ich in die letzte Version schon eingebaut. Mein erster Versuch die summaryFn zu nutzen, war erfolglos. Weiß noch nicht so recht, wo der Fehler liegt, hatte an sich nur deinen Code kopiert. Werde mir das genauer ansehen, wenn ich an nem großen Monitor sitze und nicht an meinem Laptop. Irgendwie gab RC_attr2html nichts zurück.

Gruß
Dennis

drdownload

wunderbar, jetzt funktioniert das starten von webstreams :) wenn allerdings die box im standby ist und daher xbmc nicht erreichbar schießt das fhemweb ab.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

dennisb

Oh, dass is ungünstig. Hab ne vermutung woran es liegen könnte. Gestern habe ich noch weiter am Modul gebastelt, dabei hab ich ein paar fehler behoben und die events verbessert. Die Doku sollte jetzt auch in commandref-Form sein. Die aktuelle Version befindet sich im Anhang. Im Idealfall tritt der Fehler damit nicht mehr auf. Falls dein FHEM mit der neuen Version immernoch abstürzt, müssen wir mal debuggen :) Bei mir funktioniert Stand-by auf jeden fall.