
Sommaire
Pourquoi ?
Les possibilités du plugin Virtuel disponible avec Jeedom peuvent être assez abstraites. Je vais donc vous donner les principaux objectifs de ce plugin en vous citant un cas d’usage à chaque fois :
- Utiliser des commandes de plusieurs équipements (fusionner).
- Imaginons que vous ayez un équipement mesurant la température, un autre mesurant l’humidité et un dernier la pression de l’air, mais que vous ayez envie d’obtenir ces informations via un seul équipement.
- Séparer vos commandes (scinder).
- Imaginons cette fois que vous ayez un équipement mesurant température et humidité, mais que vous ayez envie de séparer totalement ces deux commandes pour attribuer un widget spécifique à chacune d’entre elles.
- Donner le résultat d’un calcul de valeurs (calculer).
- Enfin imaginons que vous souhaitez, pour des raisons de précision, utiliser trois capteurs de température dans une même pièce, mais n’afficher qu’une valeur : la moyenne des trois mesures.
Enfin, ce plugin est parfaitement complémentaire avec le plugin Widget qui vous permettra, une fois vos commandes créées, de les associer à un widget que vous aurez personnalisé en amont.
Comment ?
Installez le plugin depuis le Market (gratuit).
Accédez ensuite à la création d’équipement en choisissant le plugin installé.
Créez alors votre premier équipement virtuel que j’appellerai ici « test« , et validez.
Pensez bien sur à l’activer et à le rendre visible si vous voulez le retrouver dans votre dashboard.
On retrouve dans le même onglet une option d’auto-actualisation que je vous conseil de programmer à toutes les minutes (via le point d’interrogation, vous gagnerez en simplicité) pour les valeurs d’informations critiques / binaires (comme le passage sur batterie / secteur si vous créez un virtuel pour un onduleur par exemple).
Je laisse cependant le champ vide pour les autres situations (capteur de température par exemple). En effet, le rafraîchissement se fait tout de même automatiquement, sans avoir d’écart notable entre la relève de la température par l’équipement réel et l’actualisation du virtuel.
On retrouve ensuite en haut à droite une option permettant d’importer un équipement : cette option peut être utilisée plusieurs fois si vous souhaitez ainsi importer les commandes de plusieurs équipements pour ensuite faire un tri et ne garder que celles qui vous intéressent.
Attention cependant, j’ai observé pour ma part un souci lors de l’import : si je tente d’importer un équipement ayant une commande de température par exemple, alors que j’ai déjà importé un premier équipement ayant cette commande de température, toutes les commandes du second équipement seront importées, sauf celle-ci.
Pas de panique, vous pouvez tout aussi simplement ajouter une info virtuelle et rechercher la commande concernée pour l’importer unitairement (idem si vous avez besoin d’importer une commande virtuelle).
Pour aller plus loin
Je n’ai personnellement jamais eu besoin d’en savoir plus sur les virtuels. Aussi, je vais essentiellement reprendre pour la suite des éléments présents dans la documentation officielle disponible ici en essayant de mettre quelque informations complémentaires dans les explications.
Interrupteur virtuel
Nous allons devoir créer deux états : On et Off. Pour cela, cliquez sur « Ajouter une commande virtuelle » à deux reprises.
Saisissez ensuite sur la première commande : « On » dans le nom, « Etat » dans le nom de la valeur et « 1 » dans la valeur elle-même.
De la même manière saisissez pour la deuxième ligne : « Off« , « Etat« , « 0« .
Sauvegardez ensuite : Jeedom aura automatiquement créé une commande d’information virtuelle. Son affichage n’étant pas utile, masquez la et choisissez bien « Etat » dans la première colonne des deux commandes créées précédemment.
Enfin, servez-vous du bouton de configuration à droite de chaque commande créée pour choisir un widget pour chacune d’entre elle (comme le widget « Light » par exemple). Si nécessaire, consultez la partie dédiée à la personnalisation de vos widgets disponible à cette adresse.
Slider virtuel
De la même façon que précédemment, cliquez sur « Ajouter une commande virtuelle » à une seule reprise cette fois et configurez la de cette façon :
Puis sauvegardez : Jeedom créera à nouveau la commande info. Masquez la et choisissez comme tout à l’heure « Etat » à gauche, puis sauvegardez.
Interrupteur de type toggle
Comme précédemment, cliquez sur « Ajouter une commande virtuelle » et configurez la de cette façon :
Sauvegardez, et Jeedom créera encore la commande info qui va bien.
Il vous faudra mettre la valeur not(\#[…][…][Etat]#) (en le remplaçant par votre propre commande) et ne pas masquer la commande info cette fois-ci. Vous devriez avoir un résultat similaire à celui-ci :
Virtuel pour réaliser un calcul
Pratique si vous souhaitez, par exemple, calculer une moyenne, transformer une valeur numérique en format horaire. Globalement, vous devez bien choisir le sous-type en fonction du type d’information et mettre l’unité correspondante.
Exemple où je transforme une valeur numérique en format horaire :
Avec le widget qui va bien, j’obtiens ce résultat dans le dashboard :
Exécuter plusieurs commandes en une commande
Rien de bien particulier : il faut juste mettre les deux actions sur la même ligne en les séparant d’un && .
Attention cependant, le sous-type de la commande doit être le même que ceux des deux commandes choisies.
Retour d’état virtuel
Si vous avez un équipement qui peut être en état On/Off, vous pouvez créer un retour d’état virtuel. Dans l’exemple qui suit, j’ai importé les commandes On/Off de ma gateway Xiaomi puis créé une commande info.
Après avoir sauvegardé, j’ai choisi dans la colonne « Paramètres » le champ « Etat » également avec une valeur à 0 pour Off, et 1 pour On. Vous pouvez ensuite le laisser affiché de sorte à lui attribuer le widget de votre choix.
Affecter une valeur à un virtuel par API.
Vous pouvez changer une information virtuelle par API en utilisant cette forme :
http://#IP_JEEDOM#/core/api/jeeApi.php?apikey=#APIKEY#&type=virtual&id=#ID#&value=#value#
Ce qui donne, en prenant pour exemple le retour d’état virtuel créé précédemment :
http://192.168.1.20/core/api/jeeApi.php?apikey=XXXXXXXXXX&type=virtual&id=1088&value=99
où :
192.168.1.20 = IP de mon Jeedom en local (évidemment, il faudrait mettre mon IP publique si j’appelai cette API depuis l’extérieur de mon réseau).
XXXXXXXXXX = API Key qu’on trouve dans la partie « Configuration > API » de Jeedom via le champ « Clef API Virtuel« .
1088 = L’ID du virtuel créé (cf première colonne).
99 = valeur donnée à la commande virtuelle.
Virtuel du lever/coucher du soleil
Si vous souhaitez programmer des scénarios au lever/coucher du soleil, il est préférable d’opter pour cette méthode que d’utiliser le plugin Weather. En effet, cette solution à l’avantage d’être entièrement fiable, native à Jeedom, et n’a pas besoin d’un plugin tiers comme celui-ci.
Pour commencer, vous aurez besoin de récupérer la latitude et la longitude de votre foyer. Ces informations peuvent être facilement récupérées sur ce site en saisissant votre adresse : https://www.coordonnees-gps.fr/.
Depuis Jeedom, accédez au plugin Virtuel et créez en un avec le nom de votre choix. Définissez ensuite une auto-actualisation journalière, comme à 01h00 par exemple.
Dans l’onglet « Commandes« , créez ensuite deux informations virtuelles utilisant cette forme :
- Lever du soleil : date_sunrise(#timestamp# ,1, <votre latitude>, <votre longitude>, 90+35/60, date(« Z »,#timestamp#)/3600)
- Coucher du soleil : date_sunset(#timestamp# ,1, <votre latitude>, <votre longitude>, 90+35/60, date(« Z »,#timestamp#)/3600)
A ce stade, cela est suffisant si vous souhaitez uniquement l’afficher puisque le résultat sera sous la forme XX:XX. Pour être utilisé dans un bloc « A », Jeedom a cependant besoin d’une forme Hmm. Pour cela, créez deux nouvelles informations dans le même virtuel en utilisant cette forme :
- FormatLeverSoleil : str_replace(« : », » »,#[Système][Lever – coucher du soleil][Lever du soleil]#)
- FormatCoucherSoleil : str_replace(« : », » »,#[Système][Lever – coucher du soleil][Coucher du soleil]#)
Vous pouvez maintenant utiliser ces valeurs dans vos scénarios. A titre d’exemple, je l’utilise pour ouvrir et fermer automatiquement mes volets au lever et au coucher du soleil. J’utilise donc un scénario s’exécutant tous les jours à 02h00.
Je crée ensuite des blocs « A » pour programmer l’ouverture et la fermeture de mes volets quotidiennement.
Et ensuite ?
Vos virtuels étant créés, je vous suggère de les personnaliser avec le plugin widget.
Attention, maintenant, il faut utiliser la clef API « virtuel » et non celle générique à Jeedom pour l’utilisation via API.
Tres bien ce site, j’aurai aimé trouver cela à mes débuts…;-)
C’est corrigé merci 🙂
C’est à dire ????
Merci pour l’article. Venant de Domoticz, les virtuels dans Jeedom sont plus complexes. J’ai encore beaucoup de mal à comprendre et à faire marcher mes virtuels.
> 1088 = L’ID du virtuel créé (cf première colonne).
Mais lequel d’ID? Pour un simple interrupteur, il y une info et 2 commandes, donc 3 ID.
Il n’y aucun retour concernant l’API? Je n’ai qu’une réponse vide. Et pour le moment mon virtuel ne change pas (j’ai essayé les 3 ID).
Bonjour,
J’ai une petite question concernant la catégorie « plusieurs commandes en une » : le « && » vaut pour un « et », mais y a-t-il un moyen syntaxique de faire un « ou » pour des infos qui renvoient un booléen? (Par exemple, dans une pièce où il y a plusieurs lampes, l’info devrait indiquer 1 s’il y a au moins une des lampes d’allumées et 0 si elles sont toutes éteintes.)
En tout cas cet article m’a été bien utile pour la construction de mes virtuels, merci 🙂
Re-bonjour !
J’ai finalement trouvé : c’était simplement (et très logiquement ^^) un « + » qu’il fallait mettre entre les deux infos 😉
Merci encore 🙂
Hello ! Bonne continuation et merci pour ton commentaire !
Bonjour, merci pour cette astuce du lever/coucher de Soleil ! Vraiment utile !
Pour ma part, les commandes me donnent l’heure en utc pour l’avoir en temps local j’ai supprimé le bloc « date(« Z »,#timestamp#)/3600 ».
Bonjour,
J’ai suivi ce tuto pour creer une commande d’ouverture de mes volets ar, par contre uniquement 3 sur 4 fonctionnent
Le volet seul de la salle la commande est OK, celui ci descend bien qd je l’actionne
[Salle][Volet Salle][DESCENDRE]
Par contre la commande virtuelle associant les 4 volets les 3 premiers ok par contre le dernier ne bouge pas
#[Bureau][Volet Bureau][Descendre]# && #[Cellier][Volet Cellier][Dsecendre]# && #[Cuisine][Volet Cuisine][DESCENDRE]# && #[Salle][Volet Salle][DESCENDRE]#
Est ce qu’il y a une limitation dans l’envoi des messages, ou prévoir une tempo, j’ai beau chercher je ne trouve pas la solution.
Merci de votre aide.
PS : je débute grace à ce tuto j’ai fait ma première commande virtuelle
Hello, essai peut être de tester uniquement #[Salle][Volet Salle][DESCENDRE]# dans ton virtuel et regarde tes logs pour voir ce qu’il se passe exactement. Attention aussi aux fautes de frappes : Dsecendre au lieu de Descendre. En revanche, il ne doit pas s’agir d’une restriction, pas besoin de temporiser normalement. En revanche, plutôt que d’utiliser un virtuel qui regroupe toutes les commandes pour descendre tes volets, tu peux aussi faire un scénario qui utilise la commande descendre native à chacun de tes volets et qui les exécute successivement.
Bonjour et merci pour le tuto :
On voit que l’on peut déclencher facilement une action genre « allumer la lumière » dans un virtule, mais comment passer un paramètre pour une action style « placer le volet dans la position » en passant en paramètre par exemple 50 ?
Bonsoir et merci pour les astuces.
Comment décaler l’action d’ouverture des volets de X h ou min par rapport au lever du soleil svp car en été ça va piquer dans les chambres à coucher si les volets s’ouvrent à 5h ?
MercI
Bonjour,
Je ne trouve pas le plugin Virtuel dans le market.
Est-il compatible avec certaines versions Jeedom seulement ?
Je suis en 4.1.27
Merci