Forum eedomus http://forum.eedomus.fr/ |
|
[résolu] json conditionnels http://forum.eedomus.fr/viewtopic.php?f=50&t=9456 |
Page 1 sur 1 |
Auteur: | thrymartin [ 02 Avr 2020 05:32 ] |
Sujet du message: | [résolu] json conditionnels |
Hello, juste me répondre par oui ou par non, que je ne recherche pas pour rien si une case à cocher permet d'installer conditionnellement un capteur peut on aller plus loin ? possible de... - faire apparaitre des cases à cocher ? (voir une combobox) = selon la sélection d'une combobox = selon un coche sur une case (donc peut on avoir des conditionnels sur Parameters et pas que sur Devices (parameters) ? parce que si non, la fenêtre de création ne peut pas être interactive... - la sélection d'une combobox est elle conditionnelle ? (si telle sélection, alors faire tel et tel capteur configuré comme ci et comme ça) ( un peu comme une case à cocher en fait) si oui... "create" : ? ("plugin.parameters.?nomparamètre?" == "choix" ou "....== choix" ?) pas compris parent-id (pour créer un canal ? create ne suffit pas ?) canal (c'est un device ? sinon quoi ?) ah oui, dernière : on peut créer plusieurs device selon le nombre inscrit dans un numberfield ? y a une vraie doc quelque part ? (heu désolé merguez, mais même chez toi, c'est expéditif sur le json - en tout cas à propos des créations de device optionnelles) ==== c'est hors sujet, mais bon, avant que j'essaye : on peut afficher un vrai texte dans un periphérique ? plusieurs lignes ? l'icone va s'adapter en taille si oui ? je veux afficher par exemple un texte de 10 lignes ... oui ? non ? et puisque j'y suis : quand on crée d'un coup X devices, est ce qu'ils ne vont pas tous vouloir se mettre a jour en même temps ? ce qui n'est pas bien du tout ... ou doit on forcer l'edition manuelle par exemple d'un xpath, pour forcer les creations completes une à une) merci |
Auteur: | KikiFUNstyle [ 02 Avr 2020 10:58 ] |
Sujet du message: | Re: json conditionnels |
Salut Thierry, Voici les docs pour les plugins https://gitlab.com/eedomus/shelly-plugin https://docs.google.com/document/d/1j6N ... IQN2ZUaZ0s Je peux te donner quelques éléments de réponse
non
Dans la doc de Merguez07
C'est le Rattacher à disponible pour les capteurs HTTP dans les paramètres Expert Le mieux c'est de faire des tests avec la documentation fourni c'est comme cela que j'ai compris quelques subtilités |
Auteur: | thrymartin [ 02 Avr 2020 12:02 ] |
Sujet du message: | Re: json conditionnels |
OK merci du "non" au premier, je faisais des tests de conditionnels (qui ne fonctionnaient évidemment pas) pour rien, mais donc, les pages de création ne peuvent être que déclaratives, ça restreint complètement, que dis-je drastiquement ! les possibilités en cas d'installation en série non déterminées en fonction et en nombre (des capteurs divers sur une passerelle dans mon cas) : donc la page de création ne peut être que - soit on installe un par un, mais l'utilisateur ne va pas recharger le plugin à chaque fois, quand il peut faire un clone et l'éditer - soit on met une tonne de cases à cocher pour tous les cas de figure et ça devient frapadingue du coup... du coup l'installation conditionnelle a une utilité toute relative ça devrait donner une idée au staf Eedomus ça ! permettre les if dans le json, y a toute une littérature sur l'utilisation des conditionnels en json... ================================================= parent / enfant : doc de merguez: définition en boucle : y aura des parents et des enfants et les enfants verront le nom des parents ... oui heu... hein ? parametre expert : le ? donne : "rattacher un périphérique à un autre pour en faciliter la gestion" donc je traduis puisque maintenant on emploi un autre vocabulaire : rattacher un enfant a son parent pour en faciliter la gestion ... gestion de quoi ? ====== ah j'ai trouvé : (doc capteur) "L’intérêt se trouve notamment après la création de canaux à votre périphérique HTTP en utilisant l'option Rattacher à, dès lors, le changement d'une de ces variables sera répliqué sur tous les canaux du périphériques." sauf que la, il faut obligatoirement aller sur le parent pour changer la variable, par exemple, ça m'interresse pour un groupe de capteurs que quand on change un VAR par exemple, ça se répercute sur les autres ... sauf... sauf qu'ils sont tous au même niveau, ya pas de "parent" donc ça ne me sert à rien ... (?) d'ailleurs je ne vois toujours pas à quoi ça peut servir !? quel capteur serait parent des autres ? par exemple, on dit qu'un anemometre peut donner plusieurs données, réappelées canaux, alors qu'on peut considérer que ce sont simplement des capteurs différents. bref : une fois qu'on a tous ces canaux, ou est le capteur parent ? exemple, on simplifie a 2 : anemometre donne vitesse, direction - ça fait 2 capteurs en fait, on peut appeler ça canaux, mais ... ya pas de supercanal parent ! qui serait le fils de l'autre ? ça n'a pas de sens ou alors un exemple... si on peut dans un groupe, qu'une donnée changée dans un de ses membre se répercute, ça, ça a de l'intéret hierarchiser, heu ... vraiment j'ai besoin d'un exemple ! je n'ai aucun, et je n'arrive même pas a imaginer un, capteur etre au niveau supéreiur d'un autre ... j'ai le cerveau mou, surement le cov19 je sais, je suis ch... ================================================= Bon, je vais voir les docs que tu as indiqué |
Auteur: | merguez07 [ 02 Avr 2020 13:18 ] |
Sujet du message: | Re: json conditionnels |
non, ici la notion de parent /enfant est juste un moyen pour relier entre eux un groupe de capteurs qui utilisent les mêmes variables, les mêmes fréquences de requetes, et le même nombre d'ignorer les erreurs. Une fois reliés entre eux (on choisit un parent et , de fait, tous les capteurs ayant le même parent sont dans le même groupe), il suffit de faire une modification (un changement de variable, de frequence ou d'ignorer les erreurs) sur un membre de la famille (parent ou enfant) pour qu'il se repercute à toute la famille.
Peu importe, la notion de parent est juste un subterfuge pour relier des capteurs entre eux, il n'y a pas vraiment de hierarchie. Ne te prend pas plus la tête. tu désignes au hasard un parent et tu affilies les autres capteurs |
Auteur: | thrymartin [ 02 Avr 2020 13:50 ] |
Sujet du message: | Re: json conditionnels |
AH ben voila une bonne nouvelle ! mais pourquoi ils n'ont pas indiqué "groupe", et qu'on doive indiquer un membre au hasard pour former le groupe qui s'y réfère ? mais bon ça concerne uniquement les VAR et le polling, (et les erreurs dis tu), c'est tout ? pas les unités, les pieces et autres usages... encore moins le XPath ou l'URL tu confirmes ? si oui, c'est bysance pour Mobile Alerts, c'est juste ce qu'il faut, au lieu d'insister sur le fait qu'il faut dupliquer les VAR et le Polling je mourrais moins bête mais je mourrais quand même (C° Marion Montaigne - Arte) merci merguez ================= dans la foulée j'avais d'autres questions non encore répondues: *combobox (appel ? : avec le == tout entre parenthèse dans create ?) *periphérique avec un texte (de 10 lignes par exemple) : ça s'affiche ? (bon, je sais, je pourrais essayer, mais si on le sait déjà, je gagne du temps *creation de tout un tas de devices capteurs avec le json: ils vont pas tous avoir un polling qui démarre en même temps, ce qui va faire un encombrement au même moment dans la box (j'avais posé une suggestion pour les espacer dans l'intervalle de polling, mais sans succes apparemment) |
Auteur: | merguez07 [ 03 Avr 2020 07:37 ] |
Sujet du message: | Re: json conditionnels |
c'est une bonne question, d'autant que la notion de canal est dans ce contexte un peu flou pour moi
oui je regarde pour tes autres questions |
Auteur: | merguez07 [ 03 Avr 2020 19:46 ] |
Sujet du message: | Re: json conditionnels |
regarde le json du plugin EedoBase (dans le store)
Là j'ai pas testé.
là j'avoue ne pas avoir compris ta question |
Auteur: | thrymartin [ 04 Avr 2020 04:43 ] |
Sujet du message: | Re: json conditionnels |
OK, je regarde Eedobase et je me ferais l'expérience du texte... Pour la mise à jour des devices, soient 3 capteurs : capteur1, capteur2, capteur3 si on les crée manuellement, un par un, on peut avoir: capteur1 telle valeur depuis 5mn capteur2 telle valeur depuis 10mn capteur3 telle valeur depuis 20mn avec un polling à 30mn, ça s'échelonne dans le temps Si on les crée tout ensemble d'un seul coup, on aura "depuis xmn" pour tout le monde et donc, à un moment donné de la mise à jour... tous les capteurs en même temps vont vouloir se mettre à jour et balancer des requetes ... et encombrer l'Eedomus, le reseau z-wave ou le reseau tout court... ça rejoint ma suggestion ici |
Auteur: | thrymartin [ 05 Avr 2020 09:57 ] |
Sujet du message: | Re: json conditionnels |
périphérique avec texte de 10 lignes : widget html / code 54 / testé (bulletin météo france) bon, j'ai posé la suggestion des if then else (voir des opérandes and, or... ou les opérateurs + - ... dans le json) ça existe, on a de la doc pour ça... mais pas chez eedomus si seulement... du coup, ça regle tous les problemes ! pour les capteurs créés en même temps, c'est clair, ils se mettront tous a jour en même temps j'ai posé suggestion de gestion auti la dessus par rapport au polling : - si polling dépassé, ne pas attendre le prochain ! après 30sec ou 1 mn, prendre le plus éloigné de sa mise ajour ratée (ne concerne pas les trucs à pile, dépendant... des trucs a piles) - si 2 periphériques trop proches en mise a jour, les distancier ! le satf ne devrait pas avoir de difficulté, j'aurai la main, ça me semble presque basique ! me demande même si on pourrait pas faire un php, ça serait lourdingue, mais bon : PS : en cas de "canaux", ça va pas fonctionner : c'est 0 ou valeur pooling pour tous d'un seul coup ! la c'est mort ou il faudrait les décanaliser avant pour réaliser l'opération ... (?) en fait ça doit être possible, mais du coup, c'est superlourdingue, ya pas c'ets un boulot pour le staf sauf si y 'en a un qui s'y colle (moi j'ai déjà trop de truc en projet pour mon Mobile Alerts) et il ne reste donc que cette question : (json) comment, d'une maniere ou d'une autre, savoir si tel périphérique, dont on connait le nom, est présent // j'ai regardé Eedobase et ça ne m'aide pas : la liste est préconfigurée, elle est connue, donc c'est faciloe de faire des ==3 ==4 ... moi ma liste, c'est celle des capteurs (json/list) je l'ai restreinte au mode texte et capteur, mais ça ne suffit pas, ça ne sort pas QUE celui que je veux, le mieux ce serait de le sortir avec son nom Voila c'était la question parceque la combo box renvoi comme valeur l'ID, on ne peut pas faire autrement puisque c'est ça qu'il faut pour lui attribuer le parent-ID sauf que c'est le label que je voudrais tester create ... label sélectionné == tel nom on peut ou pas ? merci |
Auteur: | thrymartin [ 06 Avr 2020 06:06 ] |
Sujet du message: | Re: json conditionnels |
Bon, j'ai tout essayé, il est strictement impossible de faire quoique ce soit de personnalisé pour réaliser une installation globale et qui tienne compte de toutes les possibilités ! Nom d'un chien le staf ! mettez nous des interpréteurs de conditionnels et d'opérances dans les json eedomus, on pourrait faire des plugins de la mort qui tue des didacticiels "Applying subschemas conditionally" on en trouve partout sur le net (du coup j'ai quand même perdu du temps a tout essayer ... mais quand ça veut pas, ça veut pas...) bref, (vu que c'est pour Mobile Alerts : c'est une passerelle, on ne sait strictement pas ce qu'on va lui mettre dessus par avance : 10 thermomètres ou juste un anémomètre ... ?) ou alors il faut faire plusieurs dizaines de cases à cocher ... Ca se complique encore avec le problème de 'canaux', qui me semblent maintenant indispensables, puisque j'avais précisé que les valeurs VAR et Polling devaient être identiques sur tous les capteurs Mobile Alerts ! ça regle trop bien le problème pour s'en passer. (la du coup, même en créant plusieurs dizaines de cases à cocher, on ne peux rien faire, puisque parent_id dépend de l'existence ou non du capteur parent ! or il n'existe pas en cas de première installation de cette version qui va arriver bientôt sous peu) impossible sauf... SAUF à n'installer qu'un capteur à la foi, puisque le seul conditionnel qu'on possede, c'est create et qui ne supporte qu'une seule condition true/false ou un N° d'Item dans une liste (un seul ou plusieurs (sous) canaux en cas de "max" "min" "moyenne" ... mais je n'en suis pas encore la) donc j'ai contourné le manque de conditionnel avec 2 listes (combo) - une liste des capteurs ou le capteur parent devrait s'y trouver, on en connait le nom - une liste de type de capteurs à créer DONT le capteur parent, s'il n'est pas dans la liste ça ne crée donc qu'un type de capteur et quand on a plusieurs capteurs du même type, il est absurde de toute façon, de relancer le plugin, le clonage est tellement plus rapide / facile et entièrement paramétré, au nom, à la pièce et au XPath près : soit moins de paramètres et de complications que de relancer le plugin a moi ça me semble bien merci moi-même action ! PS, y aurait pas eu ce confinement, sérieux, je ne me serais jamais lancé la dessus je me serais arrêté au plugin actuel |
Auteur: | thrymartin [ 25 Avr 2020 08:30 ] |
Sujet du message: | Re: [résolu] json conditionnels |
Bon, ben c'est possible un JSON "conditionnel" avec une astuce ! on n'a pas le droit aux IF THEN ELSE (ça aurait pu, les docs générales json en parlent) mais on peut contourner le probleme parce que "create" ... accepte les calculs et dans ces calculs accepte les variables ! tout ce qu'il veut c'est un résultat VRAI ou FAUX donc on peut utiliser des drapeaux (informatiques) et c'est un moyen de contourner le problème. mais arrêtez de faire - (si vous voulez un tuto, ya qu'a demander) Bon j'ai mis résolu parce que j'ai la réponse à tout * oui aux conditionnels (créer selon si ci et ça) * fenêtre de création dynamique: non, mais personnalisée à choix multiples oui * explication parent/enfants * texte dans le périphérique : oui, il existe un plugin pour ça, paramétrable * pb des polling, c'est un problème général (et ça se décale sans cesse) * périphérique présent dont on connait le nom ? oui en PHP, non dans les combo json * mieux de créer qu'un type de capteur à la fois ? oui (mais on peut avec un seul plugin) |
Auteur: | thrymartin [ 29 Avr 2020 12:34 ] |
Sujet du message: | Re: [résolu] json conditionnels |
Bon, je vais me rabat-joiter : calmos je baisse les bras sur les conditionnels : ON PEUT PAS Je me suis fait avoir parce que dans le conditionnel "create" si on s'écarte du chemin extrêmement limité, l'expression est toujours vraie ! donc mes essais de remplacer ==4 par 2+2 ou 2+variable mise à 2, d'un côté ou de l'autre fonctionnaient ! et j'ai crié victoire top tôt bref; et ça peut intéresser même pour ceux qui ne voient pas l'intérêt de conditionnels : - dans les combos destinés à créer des devices, on n'a le droit qu'à un maximum de 10 choix et uniquement des valeurs de 0 à 9 puisque dans les comparaisons des creates, ne sont acceptées que les valeurs de 0 à 9 (ou un plugin.parameters.x dont la valeur ne peut être que de 0 à 9), tout autre choix ou expression donnera un résultat "vrai" donc à partir de 10 ou si on crée une expression (par exemple une addition) cela donnera toujours un résultat vrai et donc le device sera créé : "create" : "device.parameters.toto==9" créé si toto = 9 sinon rien "create" : "device.parameters.toto==10" créé, quelque soit toto "create" : "device.parameters.toto==device.parameters.titi" fonctionne si toto et titi<10 "create" : "device.parameters.toto==device.parameters.titi+1" créé, quelque soient toto ou titi |
Auteur: | KikiFUNstyle [ 29 Avr 2020 16:19 ] |
Sujet du message: | Re: [résolu] json conditionnels |
Oui j'ai le même constat que toi ! Avec mon plugin Shelly je voulais rajouter des valeurs mais cela ne marche pas DINGUE https://gitlab.com/eedomus/shelly-plugi ... n.json#L21 https://gitlab.com/eedomus/shelly-plugi ... json#L1006 |
Auteur: | thrymartin [ 30 Avr 2020 05:00 ] |
Sujet du message: | Re: [résolu] json conditionnels |
Hello, Je viens de demander à la team - de permettre des vrais comparaisons true/false avec au moins le signe plus genre "create" : "parametre1==parametre2 + X", - de permettre au delà de 10 sinon, la comparaison ci dessus va être limitée à des combo de moins de 5 choix... (il ne faut pas que les valeurs additionnées aient plus d'une combinaison => "parametre1 + parametre2 == 5" peut venir de 1 + 4 ou de 2 + 3, etc. pas bon donc ça oblige a avoir toute valeur possible, exemple : combo1 : 1,2,3,4,5 combo2 : 10,20,30,40 pour qu'une addition ne représente qu'un seul et unique couple de valeurs) ça permet de valider des choix conditionnels en évitant les erreurs de l'utilisateur exemple combo1 choix 1,2,3 combo2 choix 1,4 ne concernant QUE le choix 1 et ça marcherai donc comme ça : à part les create des choix 2 et 3 du combo1 "create" : "parametre1+parametre2==2", "create" : "parametre1+parametre2==5", ça a l'air de rien, mais on pourrait faire des trucs puissants avec 3 listes, qui reproduisent exactement le fonctionnement des if/then/else ! et donc réaliser de vrais installations interactives sans avoir besoin de multiplier les plugins, des choix de langue, de présentation de périphérique, etc. sinon, actuellement, la seule solution est de multiplier les combo et de faire une entrée vide besoin de 12 choix : combo1 avec 7 choix (dont "pas de choix" en 0 par exemple) combo 2 avec 7 choix (dont "pas de choix" en 0 par exemple) la, y a pas de protection (un create possible par combo la ou on voulait un seul en tout) |
Auteur: | KikiFUNstyle [ 30 Avr 2020 13:27 ] |
Sujet du message: | Re: [résolu] json conditionnels |
Merci pour l'astuce ! Il faudrait même pouvoir faire des >= <= dans les comparaisons ... |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |