Gestions des slots multiples

Bonjour,

J’aimerai lancer une discussion sur la gestion dans jeedom des slots multiple.

Exemple, dans la console:
eteins la lumière dans le salon et la cuisine
intent: lightsTurnOffJeedom
house_room salon
house_room cuisine

remonté dans jeedom:
eteins la lumière dans le salon unknownword la cuisine
house_room : cuisine

Actuellement, seul le dernier house_room remonte et dans un scénario on check:
SI tag(house_room) == ‘cuisine’
ou perso, SI tag(house_room) in [‘cuisine’, ‘en bas’, ‘maison’]
Ce qui me permet de tout éteindre en disant “éteins les lumières de la maison” aussi

Pourrait on envisager d’avoir un tableau pour les slots multiples ?
Le plugin pourrait faire un check, si tableau a un seul élément, on le passe en string pour ne pas casser les scénarios actuels, et si plusieurs on passe un tableau ou une string sous forme “salon,cuisine” ?
ensuite:
SI tag(house_room) matches("/salon/") OU tag(house_room) matches("/maison/")

Ou tout autre solution permettant ne pas casser les scénarios actuels (perso je veux bien refaire tout mes scénarios pour çà) tout en passant des slots multiples ?

Qu’en pensez vous ?

On peut peu-etre passer une représentation du tableau en string, ex: #house_room#:"[cuisine,salon]"
Et ensuite tester l’inverse:
SI ‘cuisine’ in tag(house_room) -> SI ‘cuisine’ in [‘cuisine’,‘maison’]
Je vais faire quelque tests pour voir ce qu’il est possible de faire.

array_intersect([‘cuisine’,‘maison’], [‘salon’,‘cuisine’]) -> marche pas

Mais est-ce envisagable pour snips de modifier le plugin jeedom en ce sens ?
Sachant que la stable n’a pas bougé malgré les durations et probability bien pratique en beta …

2 Likes

Hello Kiboost:

I am very happy to tell you that this is already on the roadmap. We will move to implementation this week!

So nice !

How will you implement this ? Not sure we can pass an array as tag, will you pass comma separated string, or so other trick ?

Hi back,

I dont think we can pass array as well. The thing in my mind is comma… Will have a test to find out the best way. BTW, the fact is each tag is an element in the tag array. But we can’t use the JSON formate, so better to have a single symbol separating multi values

for example, if I have two house_room “cuisine” and “salon”:
tag(houseroom) = “cuisine,salon”

I can check:

tag(houseroom) matches “/cuisine/” OR “/salon/”

which would indeed works nice ! :wink:

More detail please.

tag(house_room) matches “/cuisine/” OR “/salon/”, this expression is accepted by scenario condition box?

Yes.

In your scenario you add a if/else bloc and write:

IF tag(house_room) matches “/cuisine/” OR “/salon/” THEN

So if the house_room string is: “cuisine,maison”, you ask if this string contains “cuisine” or “salon”. Which is true.

In real case use I would check:
IF tag(house_room) matches “/kitchen/” OR “/house/” THEN -light on kitchen-
IF tag(house_room) matches “/livingroom/” OR “/house/” THEN -light on livingroom-

so in following cases it would match:

  • hey snip, turn light on in kitchen -> light in kitchen
  • hey snip, turn light on in the house -> light in kitchen AND livingroom
  • hey snips, turn light on in kitchen and living room -> light in kitchen AND livingroom
2 Likes

Like this idea. Will move onto it as soon as we release the latest led code today.

Effectivement, ça serai pas mal.
Actuellement, je me base sur la requête pour que ça marche.