DevelopmentGuidelinesAV: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
Zeile 48: Zeile 48:
| '''power''' || <nowiki>on|off</nowiki> || Ist das Gerät an oder aus?
| '''power''' || <nowiki>on|off</nowiki> || Ist das Gerät an oder aus?
|-
|-
| '''presence''' || <nowiki>yes|no</nowiki> || Ist das Gerät aktuell ansprechbar? Sollte das Gerät aufgrund abgeschalteten Stromzufuhr, o.ä. aktuell nicht steuerbar sein, so sollte dies mit dem Wert "no" verdeutlicht werden. In solch einem Fall sollte ein set-Befehl eine entsprechende Fehlermeldung bringen. Evtl. StatusUpdate-Timer sollten ensprechende Fehlermeldungen nur einmal im Log, etc. festhalten und Fehlermeldungen beim nächsten Status-Update entsprechend unterdrücken um so die Logfiles nicht unnötig vollzuschreiben.  
| '''presence''' || <nowiki>present|absent</nowiki> || Ist das Gerät aktuell ansprechbar? Sollte das Gerät aufgrund abgeschalteten Stromzufuhr, o.ä. aktuell nicht steuerbar sein, so sollte dies mit dem Wert "absent" verdeutlicht werden. In solch einem Fall sollte ein set-Befehl eine entsprechende Fehlermeldung bringen. Evtl. StatusUpdate-Timer sollten ensprechende Fehlermeldungen nur einmal im Log, etc. festhalten und Fehlermeldungen beim nächsten Status-Update entsprechend unterdrücken um so die Logfiles nicht unnötig vollzuschreiben. Auch das presence reading sollte nur dann aktualisiert werden wenn sich der Status geändert hat um am timestamp sehen zu können wann das war. event-on-change-reading ist hierzu nicht ausreichend weil nur das Event unterdrückt wird der Timestamp sich aber trotzdem ändert.  
|-
|-
| '''volumePercentage''' || 0-100 % || Der prozentuale Lautstärkepegel gemessen der maximal möglichen tatsächlichen Werte.  
| '''volumePercentage''' || 0-100 % || Der prozentuale Lautstärkepegel gemessen der maximal möglichen tatsächlichen Werte.  
Zeile 54: Zeile 54:
| '''volumeStraight''' || X-Y || Der tatsächliche Lautstärkepegel des Gerätes, so wie er am Gerät angezeigt/verwendet wird.  
| '''volumeStraight''' || X-Y || Der tatsächliche Lautstärkepegel des Gerätes, so wie er am Gerät angezeigt/verwendet wird.  
|-
|-
| '''mute''' || <nowiki>yes|no</nowiki> || Ist das Gerät aktuell stumm geschaltet?
| '''mute''' || <nowiki>on|off</nowiki> || Ist das Gerät aktuell stumm geschaltet?
|-
|-
| '''currentChannel''' || ''aktuell gewählter Eingangskanal entsprechend dem Gerät''||  
| '''currentChannel''' || ''aktuell gewählter Eingangskanal entsprechend dem Gerät''||  
Zeile 63: Zeile 63:
|-
|-
| '''currentTitle''' || ''aktueller Titelname'' ||   
| '''currentTitle''' || ''aktueller Titelname'' ||   
|-
| '''currentMedia''' || ''"Name" der Wiedergabe"datei"'' ||  kann alles sein: Datei vom Filesystem, Stream aus dem Internet, m3u-URL oder was auch immer
|-
| '''playStatus''' || <nowiki>playing|paused|stopped</nowiki> || 
|-
|-
|colspan="3"| ...  
|colspan="3"| ...  

Version vom 24. Juli 2013, 22:49 Uhr


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


Auf dieser Seite sollen richtlinien für AV-Module gesammelt werden damit es einfacher wird diese zusammen mit anderen Modulen wie remotecontroll oder LightScene zu verwenden. Auch Benachrichtigungen wie Sprachdurchsagen oder Einblendungen lassen sich universeller verwenden wenn sie bei allen Geräten die dies unterstützen gleich angesprochen werden.

Der Text aus dem ursprünglichen Forumsthread war folgender:

gerade ist ja mit den tv und verstärker modulen sowie dem remotecontrol modul ziemlich schwung in den bereich audio und video geräte gekommen. zusätzlich gibt es noch eine ganze reihe älterer module wie sonor und xbmc und zwei arten itunes anzusprechen und neue module wie für die web radios oder das raspberry multiroom stehen vor der tür.
wie wäre es sich rechtzeitig auf ein möglichst einheitiches kommando set zu verständigen damit grundlegende dinge wie play/pause/volume/next bei allen geräten einheitlich, in gleicher schreibweise und mit möglichst ähnlichen parametern funktionieren?
das würde module wie die remotecontrol aber auch structure und lightscene deutlich einfacher und nützlicher machen und auch alternative frontends erleichtern wenn bestimmte features wie audio,video oder cover über ein einheitliches schema markiert würden.
mein vorschlag wäre sich an das sonos modul anzulehnen weil es mir in dieser hinsicht am fortgeschrittensten erscheint und auch weitergehende features wie cover oder durchsagen anbietet.
zu vereinheitlichen wäre dann u.a.:
- welche kommandos zu welchem zweck
- kommandos sollten einheitlich geschrieben werden. also z.b. immer klein oder immer mixed case.
- parameter sollten so weit möglich den gleichen wertebereich haben. also z.b. volume immer von 0-100.
- wenn es aus irgendeinem grund noch ein gerätespezifischer wertebereich nötig ist sollte der zusätzlich vorhanden sein.
- cover sollten immer auf die gleiche art gelesen werden können
- ...

Der Thread ist hier [1] zu finden.

Bezeichner

siehe Bezeichnungen allgmein

Kommandos

  • on/off
  • play/pause
  • volume #
  • volumeUp (könnte emuliert werden)
  • volumeDown (könnte emuliert werden)
  • mute
  • channel #
  • channel+ (könnte emuliert werden?)
  • channel- (könnte emuliert werden?)
  • ...

Readings

Diese Tabelle soll eine einheitliche Wertedefinition von Readings. Dazu zählen auch die verwendeten Werte und deren Bedeutung.

Name mögliche Werte Bedeutung
power on|off Ist das Gerät an oder aus?
presence present|absent Ist das Gerät aktuell ansprechbar? Sollte das Gerät aufgrund abgeschalteten Stromzufuhr, o.ä. aktuell nicht steuerbar sein, so sollte dies mit dem Wert "absent" verdeutlicht werden. In solch einem Fall sollte ein set-Befehl eine entsprechende Fehlermeldung bringen. Evtl. StatusUpdate-Timer sollten ensprechende Fehlermeldungen nur einmal im Log, etc. festhalten und Fehlermeldungen beim nächsten Status-Update entsprechend unterdrücken um so die Logfiles nicht unnötig vollzuschreiben. Auch das presence reading sollte nur dann aktualisiert werden wenn sich der Status geändert hat um am timestamp sehen zu können wann das war. event-on-change-reading ist hierzu nicht ausreichend weil nur das Event unterdrückt wird der Timestamp sich aber trotzdem ändert.
volumePercentage 0-100 % Der prozentuale Lautstärkepegel gemessen der maximal möglichen tatsächlichen Werte.
volumeStraight X-Y Der tatsächliche Lautstärkepegel des Gerätes, so wie er am Gerät angezeigt/verwendet wird.
mute on|off Ist das Gerät aktuell stumm geschaltet?
currentChannel aktuell gewählter Eingangskanal entsprechend dem Gerät
currentArtist aktueller Interpret
currentAlbum aktuelles Album
currentTitle aktueller Titelname
currentMedia "Name" der Wiedergabe"datei" kann alles sein: Datei vom Filesystem, Stream aus dem Internet, m3u-URL oder was auch immer
playStatus playing|paused|stopped
...

Sonstiges

wie funktioniert cover art?

wie funktionieren sprachdurchsagen oder text einblendungen?

wie funktionieren playlisten?

wie kann ich den aktuellen gesamtstatus abfragen und wieder herstellen?

...