Intégration externe de la barre de son Sennheiser Ambeo

Bonjour à tous,

Un produit allemand pour changer :wink:

Entreprise : Sennheiser
Produit : Ambeo
Type : Barre de son

Les premiers tests avec Ambeo Plus sont terminés. Je n’ai pas les autres types sous la main.

Actuellement, uniquement disponible dans la branche :

"ghcr.io/tomgermany/gladys-sennheiser-ambeo:feat-ambeo-soundbar-integration"`

Amusez-vous bien à essayer, tester, les suggestions, compléments et remarques sont les bienvenus, en tant que débutant absolu sur Github, peut-être mieux ici et pas sur Github, merci d’avance pour cela.

Cordialement
Tom

Le manifeste :

{
"manifest_version": 1,
"type": "device",
"name": "Sennheiser AMBEO Soundbar",
"description": {
"en": "Control and monitor Sennheiser AMBEO Soundbar Max, Plus and Mini over your local network.",
"fr": "Pilotez les barres de son Sennheiser AMBEO Max, Plus et Mini sur votre réseau local."
},
"version": "1.0.0",
"docker_image": "``ghcr.io/tomgermany/gladys-sennheiser-ambeo:feat-ambeo-soundbar-integration``",
"gladys_version": ">=5.1.0",
"categories": [
"music"
],
"transports": [
"local"
],
"config_schema": [
{
"key": "host",
"type": "string",
"label": {
"en": "Soundbar IP address",
"fr": "Adresse IP de la barre de son"
},
"description": {
"en": "IP address or hostname of the soundbar (shown in the Smart Control app or your router).",
"fr": "Adresse IP ou nom d'hôte de la barre de son (visible dans l'app Smart Control ou votre routeur)."
},
"placeholder": {
"en": "e.g. 192.168.1.50",
"fr": "ex. 192.168.1.50"
},
"required": true
},
{
"key": "poll_frequency",
"type": "number",
"label": {
"en": "Refresh interval (s)",
"fr": "Intervalle de rafraîchissement (s)"
},
"description": {
"en": "How often the soundbar state is read, in seconds (one minute minimum).",
"fr": "Fréquence de lecture de l'état, en secondes (une minute minimum)."
},
"required": false,
"default": 60,
"min": 60,
"max": 3600
},
{
"key": "volume_step",
"type": "number",
"label": {
"en": "Widget volume step",
"fr": "Pas de volume du widget"
},
"description": {
"en": "Volume units added or removed by the Louder / Quieter buttons.",
"fr": "Unités de volume ajoutées ou retirées par les boutons Plus fort / Moins fort."
},
"required": false,
"default": 5,
"min": 1,
"max": 20
},
{
"key": "sounds_intro",
"type": "section",
"label": {
"en": "Sounds of the scenes",
"fr": "Sons des scènes"
},
"description": {
"en": "The sound files are served by the integration itself on its own port: open that port, drop your MP3 or WAV files there, then reload this screen. A three second sample tone is installed on first start.",
"fr": "Les fichiers sons sont servis par l'intégration elle-même sur son propre port : ouvrez ce port, déposez vos MP3 ou WAV, puis rechargez cet écran. Un son d'exemple de trois secondes est installé au premier démarrage."
}
},
{
"key": "default_sound",
"type": "string",
"label": {
"en": "Default sound file",
"fr": "Fichier son par défaut"
},
"description": {
"en": "Name of the file played when a scene names none. Sample files: tone.wav, or tone.mp3 once you add it to the folder.",
"fr": "Nom du fichier joué quand une scène n'en nomme pas. Fichiers d'exemple : tone.wav, ou tone.mp3 dès que vous l'ajoutez au dossier."
},
"placeholder": {
"en": "tone.wav",
"fr": "tone.wav"
},
"required": false,
"default": "tone.wav"
},
{
"key": "volume_max",
"type": "number",
"label": {
"en": "Too loud above",
"fr": "Trop fort au-delà de"
},
"description": {
"en": "Fires the 'volume crossed a limit' trigger when the volume goes above this value. 0 disables it.",
"fr": "Déclenche « le volume franchit une limite » quand le volume dépasse cette valeur. 0 désactive."
},
"required": false,
"default": 70,
"min": 0,
"max": 100
},
{
"key": "volume_min",
"type": "number",
"label": {
"en": "Too quiet below",
"fr": "Trop faible en dessous de"
},
"description": {
"en": "Fires the 'volume crossed a limit' trigger when the volume drops below this value. 0 disables it.",
"fr": "Déclenche « le volume franchit une limite » quand le volume passe sous cette valeur. 0 désactive."
},
"required": false,
"default": 10,
"min": 0,
"max": 100
}
],
"widgets": [
{
"key": "remote",
"label": {
"en": "Soundbar remote",
"fr": "Télécommande barre de son"
},
"description": {
"en": "Power, volume and input selection of the soundbar.",
"fr": "Marche/arrêt, volume et choix de l'entrée de la barre de son."
},
"icon": "speaker",
"action_timeout_seconds": 15
}
],
"scene_triggers": [
{
"key": "volume_threshold_crossed",
"label": {
"en": "Volume crossed a limit",
"fr": "Le volume franchit une limite"
},
"description": {
"en": "The soundbar volume went above the 'too loud' limit or below the 'too quiet' limit set in the configuration.",
"fr": "Le volume de la barre est passé au-dessus de la limite « trop fort » ou en dessous de la limite « trop faible »."
},
"fields": [
{
"key": "direction",
"type": "select",
"label": {
"en": "Direction",
"fr": "Sens"
},
"options": [
{
"value": "over",
"label": {
"en": "Too loud",
"fr": "Trop fort"
}
},
{
"value": "under",
"label": {
"en": "Too quiet",
"fr": "Trop faible"
}
}
]
}
],
"variables": [
{
"key": "direction",
"type": "string",
"label": {
"en": "Direction",
"fr": "Sens"
}
},
{
"key": "limit",
"type": "number",
"label": {
"en": "Limit",
"fr": "Limite"
}
},
{
"key": "volume",
"type": "number",
"label": {
"en": "Volume",
"fr": "Volume"
}
}
]
}
],
"scene_actions": [
{
"key": "play_sound",
"label": {
"en": "Play a sound on the soundbar",
"fr": "Jouer un son sur la barre de son"
},
"description": {
"en": "Makes the soundbar play an MP3 or WAV, either from a http(s) URL or from a file of its 'sounds' folder.",
"fr": "Fait jouer un MP3 ou WAV à la barre : depuis une URL http(s) ou depuis un fichier du dossier « sounds »."
},
"timeout_seconds": 30,
"fields": [
{
"key": "source",
"type": "select",
"label": {
"en": "Source of the file",
"fr": "Source du fichier"
},
"required": true,
"default": "data",
"options": [
{
"value": "data",
"label": {
"en": "File of the 'sounds' folder",
"fr": "Fichier du dossier « sounds »"
}
},
{
"value": "url",
"label": {
"en": "http(s) URL",
"fr": "URL http(s)"
}
}
]
},
{
"key": "file",
"type": "string",
"label": {
"en": "File name",
"fr": "Nom du fichier"
},
"description": {
"en": "Name of the file in the integration's 'sounds' folder, e.g. tone.wav or alarm.mp3. Empty uses the default sound of the configuration.",
"fr": "Nom du fichier dans le dossier « sounds », ex. tone.wav ou alarme.mp3. Vide = son par défaut de la configuration."
},
"placeholder": {
"en": "tone.wav",
"fr": "tone.wav"
}
},
{
"key": "url",
"type": "string",
"label": {
"en": "File URL",
"fr": "URL du fichier"
},
"description": {
"en": "Direct http(s) link to the file, reachable by the soundbar.",
"fr": "Lien http(s) direct vers le fichier, joignable par la barre."
},
"placeholder": {
"en": "``https://example.com/alarm.mp3``",
"fr": "``https://exemple.fr/alarme.mp3``"
}
},
{
"key": "volume",
"type": "number",
"label": {
"en": "Volume (optional)",
"fr": "Volume (optionnel)"
},
"description": {
"en": "Volume to set before playing, 0 to 100. Leave empty to keep the current volume.",
"fr": "Volume à régler avant la lecture, de 0 à 100. Laissez vide pour conserver le volume actuel."
}
}
]
}
]
}. Laisser vide pour garder le volume actuel."
},
"min": 0,
"max": 100
}
],
"outputs": [
{
"key": "played",
"type": "boolean",
"label": {
"en": "Sound sent",
"fr": "Son envoyé"
}
},
{
"key": "file",
"type": "string",
"label": {
"en": "File played",
"fr": "Fichier joué"
}
}
]
},
{
"key": "read_state",
"label": {
"en": "Read the soundbar state",
"fr": "Lire l'état de la barre de son"
},
"description": {
"en": "Reads the soundbar now and hands volume, mute, input, sound profile and codec to the following actions.",
"fr": "Lit la barre maintenant et transmet volume, sourdine, entrée, profil sonore et codec aux actions suivantes."
},
"timeout_seconds": 30,
"outputs": [
{
"key": "volume",
"type": "number",
"label": {
"en": "Volume",
"fr": "Volume"
}
},
{
"key": "muted",
"type": "boolean",
"label": {
"en": "Muted",
"fr": "Sourdine"
}
},
{
"key": "input",
"type": "string",
"label": {
"en": "Input",
"fr": "Entrée"
}
},
{
"key": "preset",
"type": "string",
"label": {
"en": "Sound profile",
"fr": "Profil sonore"
}
},
{
"key": "codec",
"type": "string",
"label": {
"en": "Codec",
"fr": "Codec"
}
}
]
},
{
"key": "set_volume",
"label": {
"en": "Set the soundbar volume",
"fr": "Régler le volume de la barre"
},
"description": {
"en": "Sets the soundbar volume to an absolute value.",
"fr": "Règle le volume de la barre à une valeur absolue."
},
"timeout_seconds": 30,
"fields": [
{
"key": "volume",
"type": "number",
"label": {
"en": "Volume",
"fr": "Volume"
},
"required": true,
"min": 0,
"max": 100
}
],
"outputs": [
{
"key": "volume",
"type": "number",
"label": {
"en": "Volume",
"fr": "Volume"
}
}
]
}
]
`}