mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-02-25 17:02:14 +01:00
cardMedia
@@ -376,8 +376,153 @@ Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichni
|
||||
***
|
||||
|
||||
### Medien - cardMedia
|
||||
In work progress
|
||||
[Beschreibungen für sonos, bose, ...](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-%E2%80%90-cardMedia-%E2%80%90-Der-komplette-Leitfaden)
|
||||
|
||||
Der Alias-Medien für die cardMedia lässt sich mit dem Geräte-Manager nicht erstellen. Auch mit dem Alias-Manager unter "Automatisch erstellen" aus einem Player-Pfad ist das je nach Adapter eher eine Zufallsproduktion.
|
||||
> Es gibt von britzelpuf bereits einen noch offenen github-Issue: https://github.com/ioBroker/ioBroker.devices/issues/152 seit dem 17.03.2022
|
||||
|
||||
Der Alias gibt aktuell nur einen .ACTUAL her. Das ist jedoch für einen Media-Player definitiv zu wenig.
|
||||
|
||||
> **Es wird bis auf die Aliase für die Squeezebox kein manuell erstellter Alias mehr benötigt. In der Javascript Instanz muss "Kommando SetObject erlauben" aktiviert werden!**
|
||||
|
||||

|
||||
Obwohl das alles Aliase vom Typ Medien sind, sehen bis auf zwei alle anderen nicht korrekt aus, sind aber in der Objektstruktur korrekt und funktionieren auch mit dem NSPanel
|
||||
|
||||
|
||||
#### Spotify-Premium-Adapter
|
||||
|
||||

|
||||
|
||||
> Anleitung:
|
||||
> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
|
||||
> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
|
||||
|
||||

|
||||
|
||||
#### Alexa2-Adapter
|
||||
|
||||

|
||||
|
||||
> Anleitung:
|
||||
> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
|
||||
> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
|
||||
|
||||

|
||||
|
||||
#### Sonos-Adapter
|
||||
|
||||
> Anleitung:
|
||||
> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
|
||||
> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
|
||||
|
||||
[weitere Beschreibung hier](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-‐-cardMedia-‐-Der-komplette-Leitfaden)
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
#### Volumio-Player
|
||||
|
||||
> Anleitung:
|
||||
> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
|
||||
> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
|
||||
|
||||

|
||||
|
||||
#### Chromecast-Adpter (Google home)
|
||||
|
||||
> Anleitung:
|
||||
> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
|
||||
> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
|
||||
|
||||

|
||||
|
||||
#### Logitech SqueezeBoxRPC-Adapter
|
||||
**Skript zum Anlegen eines SqueezeBoxRPC - media-Alias (ab Version 3.4.0.6)**
|
||||
|
||||

|
||||
|
||||
<details>
|
||||
<summary><b>Spoiler:</b> JavaScript Code für Erstellung eines SqueezeBoxRPC -Alias</summary>
|
||||
|
||||
```
|
||||
const aliasPath = 'alias.0.Media.LMS'; // ggfs. Anpassen
|
||||
const aliasDevice = 'SqueezePlay'; // ggfs. Anpassen
|
||||
//Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
|
||||
|
||||
const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
|
||||
const squeezeBoxDevice = 'SqueezePlay'; // Anpassen an dein eigenes Device
|
||||
|
||||
var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
|
||||
|
||||
function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
|
||||
if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
|
||||
else {
|
||||
var obj = {};
|
||||
obj.type = idType;
|
||||
obj.common = getObject(idSrc).common
|
||||
obj.common.alias = {};
|
||||
if(idRd) {
|
||||
obj.common.alias.id = {};
|
||||
obj.common.alias.id.read = idRd;
|
||||
obj.common.alias.id.write = idSrc;
|
||||
obj.common.read = true;
|
||||
} else {
|
||||
obj.common.alias.id = idSrc;
|
||||
}
|
||||
obj.common.type = idAliasType;
|
||||
if(obj.common.read !== false && read) obj.common.alias.read = read;
|
||||
if(obj.common.write !== false && write) obj.common.alias.write = write;
|
||||
obj.common.name = idName;
|
||||
obj.common.role = idRole;
|
||||
obj.common.desc = idDst;
|
||||
if(min !== undefined) obj.common.min = min;
|
||||
if(max !== undefined) obj.common.max = max;
|
||||
if(unit) obj.common.unit = unit;
|
||||
obj.common.states = states;
|
||||
if(custom && obj.common.custom) obj.common.custom = custom;
|
||||
obj.native = {};
|
||||
setObject(idDst, obj);
|
||||
}
|
||||
}
|
||||
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM', squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'number');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
|
||||
createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
|
||||
```
|
||||
</details>
|
||||
|
||||
> Anleitung:
|
||||
> * Neues Skript (JavaScript JS) anlegen
|
||||
> * Code kopieren und einfügen
|
||||
> * Skript aktivieren und ausführen
|
||||
> * Danach wieder Deaktivieren
|
||||
|
||||
Jetzt kommt der spezielle Teil für diesen Adapter. Hierfür sind noch weitere Einstellungen erforderlich:
|
||||
* Alias Manager öffnen, den neu erstellten Alias auswählen und unter "common.role" **media** eingeben
|
||||

|
||||
|
||||

|
||||
|
||||
* unter Objekte zu den Aliasen (alias.0.) gehen:
|
||||

|
||||

|
||||
Bei **PAUSE **und **PLAY **mit dem Stiftsymbol am Ende der Zeile den Dialog aufschalten und 3. Tab Alias die Konvertierungsfunktionen einschalten und analog der nachfolgenden Bilder anpassen (Konverter beim Lesen):
|
||||

|
||||

|
||||
|
||||
Jetzt sollte der spueezeboxrpc korrekt arbeiten
|
||||
|
||||

|
||||
|
||||
|
||||
### RGB-Licht (channel rgb)
|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user