Neues Modul: RCC (Windows Multimedia)

Begonnen von elbielefeld, 18 Mai 2013, 20:27:40

Vorheriges Thema - Nächstes Thema

elbielefeld

Hallo zusammen,

ich habe ein kleines Modul geschrieben, über welches man Multimediafunktionen seines PCs steuern kann. Mir ging es hauptsächlich darum, die Videoausgabe umzustellen (Da mein PC auch am Verstärker angeschlossen ist) und den VLC Player zu starten. Vorraussetzung ist die Installation eines kleinen Dienstes auf dem Computer, welcher die Befehle von FHEM umsetzt.

Vorraussetzungen:
=================
Für das Ändern der Videoausgabe: mind. Windows 7, Benutzer muss angemeldet sein
Für das Starten des VLC Players: mind. Windows XP (nicht getestet), Benutzer muss angemeldet sein
Für das Herunterfahren: mind. Windows XP (nicht getestet)
Für den Windows Dienst: .Net 4 (Wird automatisch installiert, wenn nicht vorhanden)

Funktionen:
===========
Ändern der Videoausgabe extern / intern (Wie über die Tastenkombination Windows-Taste + P)
Herunterfahren des PCs
Starten des VLC Players

Installation:
=============
Windows Dienst: Installation über setup.exe, UDP Port 13377 muss in der Firewall des PCs frei geschaltet sein
RCC.pm Modul: Kopieren in das Verzeichnis xxx/fhem/FHEM/, danach Modul laden mit fhem Befehl "reload RCC"
Definierung eines Geräts über: define <Name> RCC <IP-des-Computers-mit-RCC-Dienst>

Wenn weitere Funktionen gewünscht sind, immer her mit den Anregungen ;)

Viel Erfolg,
Eric

elbielefeld

Update:

über den Befehl startprogram kann nun jedes beliebige Programm mit Parametern gestartet werden. Vorraussetzung ist ein angemeldeter Benutzer.

Beispiel:


set Computer1 startprogram ping google.de


Grüße, Eric

bsl02

Hallo Eric,

Danke für das Modul. Die Einrichtung hat geklappt, VLC wird auf meinem PC leer geöffnet.

Zitat von: elbielefeld schrieb am Sa, 18 Mai 2013 20:27Wenn weitere Funktionen gewünscht sind, immer her mit den Anregungen ;)

Gern, daher die Frage: Kann ich VLC auch direkt mit einem Link für Webradio (s.u.) aufrufen?
Mein Vorhaben: Strom EIN für Stereoanlage, Starten von WoZi-PC, Start VLC mit Webradio.

Bisher antwortet FHEM wie folgt:
unknown argument //stream.hoerradar.de/absolutradio-mp3, choose one of external, internal, shutdown, startvlc, startprogram

Auch per Webcommand komme ich nicht weiter:
webCmd startvlc vvv http://stream.hoerradar.de/absolutradio-mp3

Die manuelle Ergänzung von VLC klappt jedenfalls.

zu den VLC-Kommandos:
Zitathttp://www.computervideos.eu/videolan-vlc-media-player/220-vlc-uebersicht-befehle-fuer-kommandozeile.html

Gruß,
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

elbielefeld

Moin moin,

für startvlc werden momentan keine Parameter unterstützt. Werd ich aber noch einbauen. Übergangsweise kannst du es natürlich über startprogram mit dem VLC-Pfad (Pfad natürlich anpassen, wenn VLC woanders installiert ist) lösen:


set computer startprogram C:\Program Files (x86)\VideoLAN\VLC\vlc.exe http://stream.hoerradar.de/absolutradio-mp3


Gruß, Eric

elbielefeld

Hallo

es gibt wieder Neues ;)

- startvlc unterstützt nun Parameter
- Neues set-command: startvlcmonitored: startet VLC (Mit optionalen Parameter) und überwacht den Status der Wiedergabe. Reading-Name: vlcstatus. Folgende Events werden generiert:
  stopped - Wenn die Wiedergabe gestoppt ist
  paused - Wenn die Wiedergabe pausiert ist
  playing - Wenn etwas abgespielt wird
  finished - Wenn die Wiedergabe beendet ist
  closed - Wenn das überwachte VLC Programm geschlossen wird
- Zusätzlich werden nun auch Events generiert, wenn sich ein Benutzer anmeldet. Wenn sich der Benutzer abmeldet, wird none als Benutzername im Event übergeben. Reading-Name: currentuser
- Alle Events funktionieren momentan nur, wenn das FHEM Webinterface auf dem Standardport 8083 und ohne Authentifizierung / SSL läuft
- Wer ein Update einer älteren Version macht, sollte das RCC-Device einmal neu definieren, damit der RCC-Dienst die IP des FHEM Servers auslesen / speichern kann.

Beispiel-notifys:


#VLC überwacht starten, wenn sich Benutzer el anmeldet
define notify_Login notify RCCDesktopEL:currentuser.el set RCCDesktopEL startvlcmonitored

#PC herunterfahren, wenn VLC Wiedergabe abgeschlossen ist
define notify_VLC notify RCCDesktopEL:vlcstatus.finished set RCCDesktopEL shutdown

#PC herunterfahren, wenn sich der Benutzer abmeldet
define notify_Login notify RCCDesktopEL:currentuser.none set RCCDesktopEL shutdown

#VLC immer neu starten, wenn es beendet wird ;D
define notify_VLC notify RCCDesktopEL:vlcstatus.closed set RCCDesktopEL startvlcmonitored


Grüße, Eric

bsl02

Hallo Eric,

>es gibt wieder Neues ;)
Danke, werde ich weiterhin gern einsetzen, so kann ich prima meinen Büro-PC vom WoZi aus per FHEM runterfahren.

Zwei Fragen:
1) Eine Installation auf dem WoZi-PC (Win7-32bit) ist am Wochenende gescheitert.
Ist die Installationsroutine evtl. nur für 64bit vorgesehen oder Anwenderfehler?  ;-)

2) Die alte Version läuft auf Büro-PC (Win7-64bit). Eine "Drüber-Installation" auch mit Admin-Rechten scheitert bisher mit "Error 1001. Der angegebene Dienst ist bereits vorhanden".
Wäre jetzt der richtige Weg zunächst die De-Installation der Altversion?

Gruß,
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

elbielefeld

Moin Stefan,

Zitat von: bsl02 schrieb am Mo, 27 Mai 2013 21:061) Eine Installation auf dem WoZi-PC (Win7-32bit) ist am Wochenende gescheitert.
Ist die Installationsroutine evtl. nur für 64bit vorgesehen oder Anwenderfehler?  ;-)
Der Dienst sollte automatisch im richtigen Modus (64 bit / 32 bit) laufen. Leider kann man das dem Installer nicht beibringen. Werde den nun auf 32 bit umgestellen, der Dienst läuft dann trotzdem im jeweils richtigen Modus. Unterschied ist nur, dass der Standard-Installationspfad dann unter Programme (x86) liegt. Bitte ein bisschen Geduld :)

Zitat von: bsl02 schrieb am Mo, 27 Mai 2013 21:062) Die alte Version läuft auf Büro-PC (Win7-64bit). Eine "Drüber-Installation" auch mit Admin-Rechten scheitert bisher mit "Error 1001. Der angegebene Dienst ist bereits vorhanden".
Wäre jetzt der richtige Weg zunächst die De-Installation der Altversion?
Mit dem Installer bin ich irgendwie auf Kriegsfuß. Es gibt zwar die Option, dass er die alte Version automatisch deinstallieren soll, machen tut ers aber nicht...
Also bitte einmal von Hand deinstallieren und neu installieren. Ab der übernächsten Version sollte das dann mit dem Update klappen.


elbielefeld

Es gibt wieder Neues :)

Zusätzlich zu diversen Bugfixes sind auch wieder neue Funktionen dazu gekommen:

- Neues reading: rccstatus: Der Status des RCC-Dienstes. stopped oder running. Im Normalfall kann damit auch der online/offline Status des PCs ausgelesen werden. Ohne Pings oder Ähnliches, was FHEM blockieren könnte.
- Neues set-command: mediapath: Setzt den Medienpfad auf dem Computer, in dem sich abspielbare Dateien befinden (Unterordner werden auch ausgelesen). Der Ordner wird zusätzlich überwacht. Wenn sich Dateien ändern, wird FHEM über die Änderung informiert. Die Datei- / Ordnernamen sollten möglichst kurz gehalten werden, sonst zerstört man das Layout der FHEM Website ;). Damit sich keiner sein FHEM zerschießt, werden maximal 100 Dateien ausgelesen. Diese Dateien können dann in der Auswahlliste der folgenden neuen set-Kommandos ausgewählt werden:
- Neues set-command: startvlcmedia: Startet die Wiedergabe der ausgewählten Datei
- Neues set-command: startvlcmediamonitored: Startet die überwachte Wiedergabe der ausgewählten Datei (Mit Events wie bei startvlcmonitored)
- Neues set-command: vlccommand: Sendet einen Befehl an eine überwachte Instanz von VLC (startvlcmonitored oder startvlcmediamonitored). Bitte beachten, dass einige Befehle nur funktionieren, wenn etwas abgespielt wird (z.B. Vollbildmodus aktivieren: "f on")
| Commands Syntax:
 | new (name) vod|broadcast|schedule [properties]
 | setup (name) (properties)
 | show [(name)|media|schedule]
 | del (name)|all|media|schedule
 | control (name) [instance_name] (command)
 | save (config_file)
 | export
 | load (config_file)
 | Media Proprieties Syntax:
 | input (input_name)
 | inputdel (input_name)|all
 | inputdeln input_number
 | output (output_name)
 | option (option_name)[=value]
 | enabled|disabled
 | loop|unloop (broadcast only)
 | mux (mux_name)
 | Schedule Proprieties Syntax:
 | enabled|disabled
 | append (command_until_rest_of_the_line)
 | date (year)/(month)/(day)-(hour):(minutes):(seconds)|now
 | period (years_aka_12_months)/(months_aka_30_days)/(days)-(hours):(minutes):(seconds)
 | repeat (number_of_repetitions)
 | Control Commands Syntax:
 | play [input_number]
 | pause
 | stop
 | seek [+-](percentage) | [+-](seconds)s | [+-](milliseconds)ms
 +----[ CLI commands ]
 | add XYZ . . . . . . . . . . . . . . . . . . . . add XYZ to playlist
 | enqueue XYZ . . . . . . . . . . . . . . . . . queue XYZ to playlist
 | playlist . . . . . . . . . . . . . .show items currently in playlist
 | search [string] . . search for items in playlist (or reset search)
 | sort key . . . . . . . . . . . . . . . . . . . . . sort the playlist
 | sd [sd] . . . . . . . . . . . . . show services discovery or toggle
 | play . . . . . . . . . . . . . . . . . . . . . . . . . . play stream
 | stop . . . . . . . . . . . . . . . . . . . . . . . . . . stop stream
 | next . . . . . . . . . . . . . . . . . . . . . . next playlist item
 | prev . . . . . . . . . . . . . . . . . . . . previous playlist item
 | goto, gotoitem . . . . . . . . . . . . . . . . . .goto item at index
 | repeat [on|off] . . . . . . . . . . . . . . toggle playlist repeat
 | loop [on|off] . . . . . . . . . . . . . . . . toggle playlist loop
 | random [on|off] . . . . . . . . . . . . . . toggle playlist random
 | clear . . . . . . . . . . . . . . . . . . . . . .clear the playlist
 | status . . . . . . . . . . . . . . . . . . . current playlist status
 | title [X] . . . . . . . . . . . . . . set/get title in current item
 | title_n . . . . . . . . . . . . . . . . next title in current item
 | title_p . . . . . . . . . . . . . . previous title in current item
 | chapter [X] . . . . . . . . . . . . set/get chapter in current item
 | chapter_n . . . . . . . . . . . . . . next chapter in current item
 | chapter_p . . . . . . . . . . . . previous chapter in current item
 |
 | seek X . . . . . . . . . . . seek in seconds, for instance `seek 12'
 | pause . . . . . . . . . . . . . . . . . . . . . . . . toggle pause
 | fastforward . . . . . . . . . . . . . . . . . . set to maximum rate
 | rewind . . . . . . . . . . . . . . . . . . . . . set to minimum rate
 | faster . . . . . . . . . . . . . . . . . . faster playing of stream
 | slower . . . . . . . . . . . . . . . . . . slower playing of stream
 | normal . . . . . . . . . . . . . . . . . . normal playing of stream
 | rate [playback rate] . . . . . . . . . . set playback rate to value
 | frame . . . . . . . . . . . . . . . . . . . . . play frame by frame
 | fullscreen, f, F [on|off] . . . . . . . . . . . . toggle fullscreen
 | info . . . . . . . . . . . . . .information about the current stream
 | stats . . . . . . . . . . . . . . . . show statistical information
 | get_time . . . . . . . . . .seconds elapsed since stream's beginning
 | is_playing . . . . . . . . . . . . 1 if a stream plays, 0 otherwise
 | get_title . . . . . . . . . . . . . the title of the current stream
 | get_length . . . . . . . . . . . . the length of the current stream
 |
 | volume [X] . . . . . . . . . . . . . . . . . . set/get audio volume
 | volup [X] . . . . . . . . . . . . . . . .raise audio volume X steps
 | voldown [X] . . . . . . . . . . . . . . lower audio volume X steps
 | adev [X] . . . . . . . . . . . . . . . . . . . .set/get audio device
 | achan [X] . . . . . . . . . . . . . . . . . .set/get audio channels
 | atrack [X] . . . . . . . . . . . . . . . . . . . set/get audio track
 | vtrack [X] . . . . . . . . . . . . . . . . . . . set/get video track
 | vratio [X] . . . . . . . . . . . . . . . .set/get video aspect ratio
 | vcrop, crop [X] . . . . . . . . . . . . . . . . set/get video crop
 | vzoom, zoom [X] . . . . . . . . . . . . . . . . set/get video zoom
 | vdeinterlace [X] . . . . . . . . . . . . . .set/get video deintelace
 | vdeinterlace_mode [X] . . . . . . . . set/get video deintelace mode
 | snapshot . . . . . . . . . . . . . . . . . . . . take video snapshot
 | strack [X] . . . . . . . . . . . . . . . . . set/get subtitles track
 |
 | vlm . . . . . . . . . . . . . . . . . . . . . . . . . .load the VLM
 | description . . . . . . . . . . . . . . . . . .describe this module
 | help, ? [pattern] . . . . . . . . . . . . . . . . . .a help message
 | longhelp [pattern] . . . . . . . . . . . . . . a longer help message
 | lock . . . . . . . . . . . . . . . . . . . . lock the telnet prompt
 | logout . . . . . . . . . . . . . . exit (if in a socket connection)
 | quit . . . . . . . . quit VLC (or logout if in a socket connection)
 | shutdown . . . . . . . . . . . . . . . . . . . . . . . .shutdown VLC


#Beispiel mediapath:
set computer1 mediapath C:\Users\el\Videos


Ab sofort gibt es auch eine Versionierung. Die momentane Version ist 1.0.0.0
Wer noch eine alte Version des Dienstes hat, sollte diese von Hand deinstallieren und diese Version installieren. Die nächsten Versionen können dann einfach als Update drüberinstalliert werden.

Grüße, Eric

Jan_H

Hallo!

Entwickelst Du das Modul noch weiter?
Ich habe versucht es zu installieren, aber bekomme von FHEM immer die Meldung:

configfile: Unknown module RCC

Hast du eine Idee?

Gruß
Jan

Rince

Laut seinem Profil war er am 17. April zuletzt online.
Scheint also noch da zu sein. Aber vielleicht wäre eine eMail oder eine PN auch nicht unhöflich ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Jan_H

Danke, hab ihm eine E-Mail geschrieben....

TNT0068

Ich habe das Modul mal getestet. Shutdown etc funktioniert einwandfrei. Ausser man startet FHEM neu, dann wird das Modul nicht mehr geladen,  und die devices sind dann weg.
Homematic HMLAN HMUSB Heizung, Strom und Licht , Vuduo2, Kodi, Hue, Logitech Harmony Hub, Alexa

Doggiebert

du hast aber vorher schon einen save auf die Config durchgeführt, bevor du fhem neugestartet hast? FHEM vergisst normalerweise keine Devices...
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

TNT0068

jep habe ich gemacht. Es kommt auch die Meldung das FHEM RCC.pm nicht laden kann. Wenn ich dann reload RCC.pm eingebe kann er es laden.
Homematic HMLAN HMUSB Heizung, Strom und Licht , Vuduo2, Kodi, Hue, Logitech Harmony Hub, Alexa

Tion

Danke für das Modul.Genau das. was ich gesucht habe  :)

Gruß Volker
FHEM@CT||RFXTRX,CUL868@MAX,HM-Usb,JeeLink
Jee:TX29DTH-IT||Max:Thermostat,ShutterContact,
HM:SEC-MDIR,LC-SW1-PL2,LC-Dim1TPBU-FM,PB-2-WM55
RFX:FA20RF/2, HE501EU,ITL-230,OWL Intuition-lc,YCT-100,div Brennstuhl,IT 1500
FS20:IRU,KSE||FbDect 200,EG-PM2-LAN