Alimenter dynamiquement selector
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Alimenter dynamiquement selector
Bonsoir
Peut on alimenter le selector d’un switch via dzvents ou json ?
Pierrotori
Peut on alimenter le selector d’un switch via dzvents ou json ?
Pierrotori
Re: Alimenter dynamiquement selector
En DzVents avec un .setlevel(XX) : https://www.domoticz.com/wiki/DzVents:_ ... or_etc..29
En Json : https://www.domoticz.com/wiki/Domoticz_ ... tor_Switch
En Json : https://www.domoticz.com/wiki/Domoticz_ ... tor_Switch
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Alimenter dynamiquement selector
Setlevel c’est pour positionner un niveau
Moi je voudrais ajouter un niveau
Moi je voudrais ajouter un niveau
Re: Alimenter dynamiquement selector
ça doit être possible mais c'est pas prévu/fait pour.
Par exemple
ça modifie la liste des level.
Dans Options, c'est du base64, traduit, ça donne ça :
Si ça peut aider.
Par exemple
Code : Tout sélectionner
http://ipdomo/json.htm?addjvalue=0&addjvalue2=0&customimage=0&description=&idx=IDX&name=Test+Custom&options=TGV2ZWxOYW1lczpPZmZ8Q2xpY2t8TG9uZyBDbGlja3xEb3VibGUgQ2xpY2t8VHJpcGxlIENsaWNrfExvbmcgQ2xpY2sgUmVsZWFzZXx0ZXN0O0xldmVsQWN0aW9uczp8fHx8fHw7U2VsZWN0b3JTdHlsZToxO0xldmVsT2ZmSGlkZGVuOmZhbHNl&protected=false&strparam1=&strparam2=&switchtype=18&type=setused&used=trueDans Options, c'est du base64, traduit, ça donne ça :
Code : Tout sélectionner
LevelNames:Off|Click|Long Click|Double Click|Triple Click|Long Click Release|test;LevelActions:||||||;SelectorStyle:1;LevelOffHidden:falseRe: Alimenter dynamiquement selector
Rajouter un niveau a un sélecteur ? Là, je ne sais pas
Je ne le vois pas dans les doc DzVents ou API. Maintenant il doit bien y avoir une possibilité puisque les plugins Python sont capables de créer des widgets sélecteurs avec des valeurs spécifiques.
Tu peux nous expliquer ton besoin ?
Je ne le vois pas dans les doc DzVents ou API. Maintenant il doit bien y avoir une possibilité puisque les plugins Python sont capables de créer des widgets sélecteurs avec des valeurs spécifiques.
Tu peux nous expliquer ton besoin ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Alimenter dynamiquement selector
je souhaiterais alimenter cette liste avec le nom de mes scripts timer en auto puisque ayant que des scripts dzvents à ce jour, je peux scanner tous les fichiers commençant par t_*.lua et mettre à jour une fois par jour la liste du sélecteur avec une action sur le sélecteur de type json qui enverrait la commande dz.emitEvent('nom_script')
Le but serait que quand j'ai besoin de tester je puisse le faire à la demande avec un envoi de la commande dz.emitEvent('nom_script') en appuyant sur le switch correspondant au script du selecteur, ce qui évite de modifier le timer dans le script
Et les scripts auront ce code on = { customEvents = { 'nom_script' } }, systématiquement dans mon modèle de script de type timer
Le but serait que quand j'ai besoin de tester je puisse le faire à la demande avec un envoi de la commande dz.emitEvent('nom_script') en appuyant sur le switch correspondant au script du selecteur, ce qui évite de modifier le timer dans le script
Et les scripts auront ce code on = { customEvents = { 'nom_script' } }, systématiquement dans mon modèle de script de type timer
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Alimenter dynamiquement selector
donc oui on peut le faire via l'url ou l'ensemble des niveaux est encodé en base 64 bits, il faudra utiliser la fonction toBase64(string): Function: ) Encode a string to base64, voir https://www.domoticz.com/wiki/DzVents:_ ... _scripting
Exemple Switch 242 en Selector non protégé avec menu selection et menu off actif
ici suppression de tous les niveaux avec la chaine : LevelNames:;LevelActions:;SelectorStyle:1;LevelOffHidden:false7
ici ajout des niveaux aa et bb avec la chaine LevelNames:Off|aa|bb;LevelActions:||;SelectorStyle:1;LevelOffHidden:false
Question
Du coup avant de me lancer, comment récupère t'on le statut on/off d'un selector car le statut ramène le niveau sélectionné ?
Exemple Switch 242 en Selector non protégé avec menu selection et menu off actif
ici suppression de tous les niveaux avec la chaine : LevelNames:;LevelActions:;SelectorStyle:1;LevelOffHidden:false7
Code : Tout sélectionner
curl -s 'http://127..0.0.1:8080/json.htm?addjvalue=0&addjvalue2=0&customimage=124&description=&idx=242&name=reset_version&options=TGV2ZWxOYW1lczo7TGV2ZWxBY3Rpb25zOjtTZWxlY3RvclN0eWxlOjE7TGV2ZWxPZmZIaWRkZW46ZmFsc2U%3D&protected=false&strparam1=&strparam2=&switchtype=18&type=setused&used=true'Code : Tout sélectionner
curl -s 'http://127.0.0.1:8080/json.htm?addjvalue=0&addjvalue2=0&customimage=124&description=&idx=242&name=reset_version&options=TGV2ZWxOYW1lczpPZmZ8YWF8YmI7TGV2ZWxBY3Rpb25zOnx8O1NlbGVjdG9yU3R5bGU6MTtMZXZlbE9mZkhpZGRlbjpmYWxzZQ%3D%3D&protected=false&strparam1=&strparam2=&switchtype=18&type=setused&used=true'Du coup avant de me lancer, comment récupère t'on le statut on/off d'un selector car le statut ramène le niveau sélectionné ?
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Alimenter dynamiquement selector
Du coup j'ai trouvé, il faut utiliser domoticz.devices(ScriptSelector).nValue il est soit egal à 2 si On ou 0 si Off, bien sure il faut que l'option Cacher le niveau Off ne soit pas Active
Le script prendra tous les scripts de type timer afin d'alimenter un selector et donc exécuter celui-ci sans modifier le timer du script
il faudra donc intégrer dans tous les scripts la notion de
gestion custom events
Ajouter le param item
et pour le fun tracer le déclenchement et réarmer le switch du selector qui la device 242 dans mon cas
Le script prendra tous les scripts de type timer afin d'alimenter un selector et donc exécuter celui-ci sans modifier le timer du script
il faudra donc intégrer dans tous les scripts la notion de
gestion custom events
Code : Tout sélectionner
on = {
timer = { 'at 00:05' },
customEvents = { 't_mode_calcul' }
},Code : Tout sélectionner
execute = function(dz,item)Code : Tout sélectionner
-- PROGRAM STARTS
dz.log('============== mode calcul ==================', dz.LOG_INFO)
if item.isTimer then
dz.log('Déclenchement timer', dz.LOG_DEBUG)
elseif item.isCustomEvent then
dz.log('Déclenchement reset force', dz.LOG_DEBUG)
dz.devices(242).switchOn()
else
return
end