Valeur non numérique dans une condition

Bonsoir,

Je dois mal m’y prendre ( :frowning: ), mais je me trouve bloqué dans la condition de la scène suivante :

Comment faire pour teste l’état de ma variable « state » (qui est soit « stop », soit « play ») ?

Merci pour vos lumières,
Belle soirée,
Jean

Salut @jean_bruder, tu n’es pas fou, ce n’est pas possible actuellement :smiley:

Il y a une demande de fonctionnalité :

1 « J'aime »

Bonjour @pierre-gilles

Comme d’habitude, te voilà à ma rescousse :smiling_face_with_three_hearts:

Du coup, je vais devoir patienter … Aurais-tu une idée d’un délais de prise en compte de ce changement, car du coup, me voilà bloqué …

Une fois de plus, je ne peux que te/vous remercier pour ce magnifique produit qu’est Gladys :heart:

Belle journée,
Jean

Il va falloir voter pour cette demande @jean_bruder :wink:

2 « J'aime »

Bonjour @mutmut

C’est chose faite :+1:

2 « J'aime »

Salut @jean_bruder,

Tu peux m’expliquer exactement ce que tu essaies de faire ?

Je suis sûr qu’il y a des solutions de contournement en attendant :slight_smile:

Bonjour @pierre-gilles

J’ai fait l’acquisition du bouton suivant : Neue Tuya ZigBee Smart Knob Schalter DIY Drahtlose Szene Taste Drehbare Dimmer Schalter Haushaltsgeräte Automatisierung Verknüpfung Remoter - AliExpress 13

Il a vocation de pouvoir contrôler, par pièce, l’ambiance sonore (volume +/-, pause/lecture, ambiance/piste musicale/radio précédente/suivante) suivant la manipulation : clic, double clic, rotation gauche/droite, etc …

Le besoin le plus basique est « pause/lecture », qui sera effectué par un simple clic : si c’est en lecture, on passe en pause, et réciproquement …

Pour se faire, je récupère via une requête l’état de lecture :

Et je souhaite donc comparer la valeur de retour de « state » afin de faire réagie Gladys :

Mais cela n’est actuellement pas possible :frowning: J’avoue que c’est loin d’être absolument nécessaire, puisque je pilote l’audio depuis nos smartphones respectifs (application MALP : https://play.google.com/store/apps/details?id=org.gateshipone.malp&hl=fr), mais je n’aime pas rester bloqué sur un bête problème technique :slight_smile:

Je vois que tu fais appel à une API « domotiks », j’imagine que c’est un serveur Domoticz local ?

Peux-tu me montrer la scène complète ? Quel est ton déclencheur (trigger) dans Gladys ?

Bonsoir @pierre-gilles

« Domotiks » est l’un de mes mini serveurs dédié aux applications conteneurisées, incluant un certains nombre de micro-services, dont une API « maison » permettant de piloter le démon « MPD » (pour l’audio des scènes d’ambiances). Donc, rien à voir avec « Domoticz » :stuck_out_tongue:

Le déclencheur est le suivant :

Suit un premier bloc qui récupère l’état actuel du serveur audio :

Suivi d’un test conditionnel visant à détecter l’état et à définir le nouvel état (bascule « stop/start ») :

Bien entendu, je ne suis pas allé plus loin, faute de pouvoir réaliser le test …

Belle fin de soirée,
Jean

Merci pour les précisions :slight_smile:

Est-ce que tu as moyen de modifier cette API maison ?

Cette API maison pourrait retourner un entier à la place du string, ce qui en plus collerait avec les fonctionnalités natives de musique qu’on a actuellement dans Gladys :

Utiliser ces fonctionnalités natives te permettrait en plus d’utiliser le lecteur sur le tableau de bord avec ton serveur MPD :

Idéalement, si tu as moyen de modifier l’API maison pour envoyer les changements d’états en MQTT à Gladys, ça te permettrait d’avoir le widget de musique toujours à jour sur ton tableau de bord :slight_smile:

Si c’est quelque chose qui te parle, je peux t’indiquer toute la marche à suivre ! Et honnêtement, je pense que c’est une meilleure solution que d’utiliser un string qui ne correspond à rien dans Gladys :slight_smile:

1 « J'aime »

Bonjour @pierre-gilles

Cela me semble plutôt pas mal. J’avais (mal …) compris que ce lecteur est limité à Sonos :sweat_smile:

Maintenant, j’ai besoin de comprendre comment adapter tout ça ?

A te relire,
Jean

1 « J'aime »

Top :slight_smile: Non, dans Gladys rien n’est réservé à une seule intégration, tout est développé pour être 100% ouvert.

Tu peux utiliser l’intégration MQTT pour créer un appareil de musique « Virtuel » :

Tu peux ajouter toutes les fonctionnalités liées à la musique bien sûr, on supporte actuellement :

  • Play → Fonctionnalité « push » dont le seul état accepté est juste « 1 »
  • Pause → Fonctionnalité « push » dont le seul état accepté est juste « 1 »
  • Précédent → Fonctionnalité « push » dont le seul état accepté est juste « 1 »
  • Suivant → Fonctionnalité « push » dont le seul état accepté est juste « 1 »
  • État de la lecture → Deux états possibles :
    • « 1 » = en cours de lecture
    • « 0 » = en pause

Ensuite, dans ton serveur maison, il faut que tu propages à Gladys l’état de la lecture, et que tu écoutes un changement côté Gladys.

Propager l’état de lecture

Je ne sais pas dans quel langage est codé ton serveur maison, si c’était en Node.js, tu pourrais faire :

const mqtt = require("mqtt");
const client = mqtt.connect("mqtt://192.168.1.10", {
  username: 'gladys',
  password: 'aaaaaaaaa'
});

const PLAYBACK_TOPIC = "gladys/master/device/mqtt:serveur-mpd-musique/feature/mqtt:serveur-mpd-etat-lecture/state";

client.on("connect", () => {
    // Exemple en cas de lecture
   client.publish(PLAYBACK_TOPIC, "1");
  // Exemple en cas de pause
   client.publish(PLAYBACK_TOPIC, "0");
});

J’avais fait une vidéo sur le sujet de l’intégration MQTT : https://www.youtube.com/watch?v=o5yn_FnYtkc

Envoyer une commande au serveur MPD

Ensuite, pour envoyer une commande depuis Gladys, 2 options :

  • En MQTT
  • En HTTP via une scène

Si ton serveur peut écouter un topic MQTT, alors tu peux juste écouter chaque topic de chaque commande (play, pause, etc…), et réagir à chaque message. C’est le plus pratique et le plus efficient à mon avis.

Sinon, si tu préfères faire ça en HTTP, tu peux faire une scène qui écoute le changement d’état de chaque bouton (il va falloir faire une scène par bouton du coup, c’est moins confortable que via MQTT) :

Mais à mon avis, tu peux intégrer tout ça en quelques minutes :slight_smile:

N’hésite pas si tu as besoin d’aide, on peut même s’appeler si tu veux débugger ça avec moi.

2 « J'aime »

@jean_bruder Alors ça a marché au final ?