Module für XBMC

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

Vorheriges Thema - Nächstes Thema

Dennis B.

Hallo Jumbo,

habe ich leider keine Ahnung, wie man das machen kann. Ist auch nicht mein vorrangiges Ziel. Eventuell lassen sich per JSON die notwendigen URLs fürs Streaming beschaffen (was ich jetzt spontan auch nicht in der API gesehen habe), aber dann fehlen noch Player für das FHEM-Webinterface.

Gruß
Dennis

rtv

Zitat von: Dennis B. schrieb am Di, 08 Januar 2013 23:27So ich habe mal ein wenig gebastelt und eventuell einen Großteil der Probleme gelöst (wie viele neue ich geschaffen habe, wird sich noch herausstellen) :)
@rtv: Vielleicht kannst du das ja auch noch einmal bei dir testen.
Astrein - funktioniert jetzt ohne Verzögerungen!

Zitat von: Dennis B. schrieb am Di, 08 Januar 2013 23:27
Zitatein "set <xmbc> quit" wird zwar korrekt ausgeführt, aber nach dem Beenden von XBMC stirbt auch FHEM
Den Fehler habe ich gefunden und behoben. Bei mir geht's jetzt wunderbar.
Danke, klappt :)

Eine Kleinigkeit bei msg: Wenn ich z.B.
set XBMC msg "Eingehender Anruf" "555-1234567890" 10000 info
absetze, dann werden die mittleren String-Delimiter nicht richtig erkannt.

Dennis B.

Kann das gerade hier nicht testen, aber ich tippe darauf, dass der erste Part der Regex zu greedy ist. Hab das mal auf non-greedy gestellt. Bitte teste mal die angehangene Version.

rtv

Wunderbar - funktioniert ;-)

Dennis B.

Freut mich, dass es jetzt funktioniert! Hast du nebem dem Anzeigen von Anrufen schon konkrete Use Cases?
Hatte mal überlegt, dass man mit dem Modul vom Prinzip auch seine Playliste zur Laufzeit filtern könnte. Wenn man komplexe Events an hat, bekommt man ja Artist und Musiktitel im Event, die man per Regex filtern könnte. Bei nicht gewollten Titel könnte man ein "set <XBMC_device> next" absetzen. Allerdings weiß ich nicht, ob die Verzögerung nicht eventuell zu groß ist. Wäre ja blöd, wenn man immer erst 3 sek vom nächsten Titel hört (eventuell bekommt man das aber auch mit Crossfade hin).

Zitat von: Dennis B. schrieb am Di, 08 Januar 2013 23:27Für alle Commands die den Player betreffen, kann man nun angeben, welcher Player gestoppt werden soll. Beispielsweise stoppt "set <XBMC_device> stop audio" den Musikplayer. Falls kein Player angegeben ist, wird probiert alle aktiven Player zu stoppen. Solange nur ein Player aktiv ist, funktioniert das auch recht gut. Falls man aber Musik hört und Bilder anschaut, dann werden zwar zwei Commands zum Stoppen der Player geschickt, aber XBMC reagiert nur auf einen. Das Ganze scheint ein Bug in XBMC zu sein.

Habe den Bug von XBMC gemeldet, er wurde behoben. In der nächsten XBMC Version sollte es möglich sein, dass man alle Player per "set <XBMC_device> stop" stoppen kann.

dougie


Ich hab auf einem meiner RPis open ELEC laufen, was soweit okay ist (war mitunter etwas langsam, was die Reaktionszeiten anging).
Gestern sind meine nachbestellten RPis gekommen, und wie zu erwarten, waren das die Modelle mit dem 4G Chip (=512 MB RAM).

Meine "alten" Typ-B RPis haben noch den 2G Chip (=256 MB Ram).

Frage: macht das bei XBMC einen Unterschied und wenn ja, müsste ich da den Memory-Split irgendwie umstellen?

VG
Ralf

UliM

Zitat von: Dennis B. schrieb am Di, 08 Januar 2013 23:27
ZitatCan't locate JSON.pm
Hast du mal probiert http://search.cpan.org/CPAN/authors/id/M/MA/MAKAMAKA/JSON-2.53.tar.gz herunterzuladen und in den FHEM-Ordner zu entpacken (da wo auch die Module sind)?
Das normale JSON Modul hat keine weiteren Abhängigkeiten und ist, soweit ich das in Erfahrung bringen konnte, in pure perl geschrieben. Eventuell geht's auf diese Art schon.
Hi,
hab's mal entpackt nach
/var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/JSON-2.53

fhem shutdown
startfhem

-> selbe Meldung:
Can't locate JSON.pm in @INC

Schade.

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

Martin Fischer

Zitat von: UliM schrieb am Do, 10 Januar 2013 20:22-> selbe Meldung:
Can't locate JSON.pm in @INC

bin grad zu faul zum nachsehen:
wenn die JSON erweiterung ein einzelnes file ist, dann pack es mal unter FHEM/lib (also das lib-Verzeichnis innerhalb von $modpath).

gruss martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

henryk

Danke, funktioniert bei mir jetzt auch! Wichtig ist, update development[/courier] auszuführen, sonst gibt es Undefined subroutine &main::readingsSingleUpdate called at ./FHEM/70_XBMC.pm line 243.

Ich habe damit jetzt eine Variante von http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Beispiel_f.C3.BCr_eine_Verst.C3.A4rkerschaltung_auf_Basis_des_Player-Zustands laufen (wobei das delete ggbf. zu einem delete Medienplayer_Wohnzimmer_aus_timer : Please define Medienplayer_Wohnzimmer_aus_timer first im Log führt, aber damit kann ich leben).

Was natürlich noch schöner wäre, wäre ein generisches UPnP-Modul was dann unter anderem auch mit XBMC geht. Ich war ja drauf und dran mich an sowas ranzusetzen (obwohl Perl auch nicht meine Sprache ist), bin aber etwas zurückgeschreckt weil Net::UPnP nicht so aussieht als ob es die notwendigen Events liefern würde (und auch sonst offenbar nur blocking arbeitet) und http://perlupnp.sourceforge.net/ (was auch das Sonos-Modul im Wiki benutzt) offenbar seit 9 Jahren unmaintained ist.

Daher: Danke für dein XBMC-Modul, das nehme ich jetzt als prima Provisorium (die ja bekanntlich immer am längsten halten).

Emil

ZitatHast du mal probiert http://search.cpan.org/CPAN/authors/id/M/MA/MAKAMAKA/JSON-2.53.tar.gz herunterzuladen und in den FHEM-Ordner zu entpacken

Ich kann Bestätigen dass es auf einer Fritzbox läuft wenn man sich die benötigten Dateien unter oben genanten Link besorgt und dann die Datei JSON.pm ins richtige Verzeichnis packt: /fhem/lib/perl5/site_perl/5.12.2/mips-linux ebenfalls wird der Ordner JSON (beinhaltet u.a. backportPP.pm) mit Unterordner an diesem Ort benötigt.

Dann FHEM neustarten mit Shutdown Restart und danach läd das Modul mit reload 70_XBMC.pm problemlos und XBMC kann gesteuert werden.

Vielen Dank für das schöne Modul!

Eine Frage hätte ich allerdings auch: Wie kann man sich die aktuell gespielten Titel in FHEM anzeigen lassen? Und kann man in den Messages an XBMC auch Variablen reinschreiben (z.B. die Nummer eines Anrufers vom Callmonitor-Script)?

StefanV

[quote title=Emil schrieb am So, 14 April 2013 02:55]
ZitatEine Frage hätte ich allerdings auch: Wie kann man sich die aktuell gespielten Titel in FHEM anzeigen lassen? Und kann man in den Messages an XBMC auch Variablen reinschreiben (z.B. die Nummer eines Anrufers vom Callmonitor-Script)?

Wenn Du freetz auf der Fritte hast, dann könnte das hier ein Lösungsansatz sein...

http://www.xbmcnerds.com/index.php?page=Thread&threadID=24656

Cheers, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

AK-868

Wenn ich das richtig lese. Kann ich "nur" Play pause etc und Messages.

Ich kann aber nicht Pfeiltasten drücken nachstellen, richtig?

Oder Titel oder Ordner auswählen und Play drücken.

Puh wenn dann wartet als Neuling ein haufen Arbeit auf mich.

Gruß

Andre
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


AK-868

Ich hab JSON.pm versucht einzubringen.

Scheitere aber an der Meldung:

Can't locate JSON/backportPP.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at (eval 68) line 2. at ./FHEM/70_XBMC.pm line 70 Compilation failed in require at ./FHEM/70_XBMC.pm line 70. BEGIN failed--compilation aborted at ./FHEM/70_XBMC.pm line 70.
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


betateilchen

da fehlt das Modul JSON:backportPP als Voraussetzung.

Das war früher Bestandteil von JSON, ist aber seit Perl 5.14 ein eigenes Modul.


-----
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

AK-868

Hallo Betateilchen,

okay, frage von einem Anfänger, wo kann ich das herbekommen?

Ich hab wohl 2 Perl versionen auf dem PI

5.14 und 5.14.2

Danke für deine 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