Page 1 sur 3

listes variables

Publié : 07 juin 2016, 12:59
par Stef17
Salut
Aprés pas mal de recherche je ne trouve pas ce que je cherche... une liste de type de variable de domticz afin de les utiliser dans les scripts...
Je vois des exemples mais pas de page sur internet où elles seraient listées...

Par exemple pour les variables utilisateur c'est :
uservariables[« Nomdelavariable »]

Re: listes variables

Publié : 07 juin 2016, 13:13
par jackslayter

Re: listes variables

Publié : 07 juin 2016, 13:39
par vil1driver
Salut,

il n'est pas très utile de connaitre le type qui n'est autre que du formatage à l'enregistrement, le contenu restera toujours une chaine

Re: listes variables

Publié : 07 juin 2016, 14:39
par Stef17
y a pas besoin de respecter un formatage ??? si je veux par exemple :
1 si l'interrupteur "salon" est sur "on" alors allume le device "machin"... faut bien que je les nomme ????

2 si dans un script je veux dire uservariables[« diff »] == consigne du thermostat "thermostat_SDB" - la donnée de la temperature "Temp_SDB" je suppose aussi qu'il faut bien que j'appelle ces données d'un certaine façon non ????

Re: listes variables

Publié : 07 juin 2016, 15:21
par vil1driver
1) dans ce cas les variables utilisateurs n'entrent pas en ligne de compte.
2) ne pas confondre, une variable dans un script, et une variable utilisateur dans domoticz (menu réglage > plus d'options > variables utilisateur)

Re: listes variables

Publié : 07 juin 2016, 18:51
par Stef17
Le probleme d'être aussi nul que moi, c'est qu'on a du mal a se faire comprendre....
Je voulais seulement dire que ce serait bien de trouver une liste pour savoir où trouver le vocabulaire lua domoticz
J'essaie encore de m'expliquer :D
C'est déjà pas facile pour les novice d'apprendre un langage, mais en plus s'il aussi difficile qu'actuellement de trouver à chaque fois comment utiliser un "élément" dans domoticz, cela devient trés chiant ;)

Alors pour faire simple comment t’écrirais en langage lua :
"difference" = consigne du thermostat qui s'appelle "thermostat_SDB" moins la donnée de la sonde temperature qui s'appelle "Temp_SDB"
J'imagine bien que cela doit etre un truc comme
XXXXXX['difference']==XXXXXXXXX['thermostat_SDB']-XXXXXXXXXXX['Temp_SDB']
Mais par quoi remplacer les XXXXXXXXXXXX

Par exemple j'ai compris que devicechanged['Exterieur'] veux dire que le device 'Exterieur' à changé.... donc si je devais utiliser je mettre devicechanged['Temp_SDB']

Re: listes variables

Publié : 07 juin 2016, 18:57
par vil1driver
En somme tu veux de la doc ?
Et bien le wiki est fait pour ça,
Tu as aussi les excellents articles de Patrice sur le blog
Tu as également la bible des scripts sur ce forum
Tu as également dans le dossier lua, 2 scripts de demo.

Si tu fais ton curieux tu va trouver une tonne d'info..

https://www.domoticz.com/wiki/Thermostat_control

https://www.domoticz.com/wiki/Events

https://www.domoticz.com/wiki/Event_script_examples

Pour le devicechanged, oui tu as bien compris ;)

La clé c'est la lecture
Tu t'exerces avec des trucs tout simple puis tu ajoutes petit à petit des conditions et/ou actions dans tes scripts, bien penser à utiliser la fonction print() pour voir des choses dans le log domoticz, ça aide énormément au debug

Re: listes variables

Publié : 07 juin 2016, 19:48
par Stef17
c'était une simple remarque... au cas ou cela aurait été fait...
Une liste sommaire de commande utile sans toutes les explications...

Genre liste des commande linux ou shell courante.... mais pour Domoticz

Je vais faire avec comme depuis environ 10 ans dans mon boulot... que je bidouille des script que je ne comprends pas toujours ;)

Re: listes variables

Publié : 07 juin 2016, 19:55
par vil1driver
Ce que tu demandes est dans le 2ème lien que je t'ai donné..
Le premier donne un exemple pour le thermostat facile à comprendre..

Tout est question de methode de recherche, suivre les lien donnés est un bon début ;)

Sinon personne n'est nul, mais débutant plutôt..
Mais grâce à google et aux forums wikis personnes ne le reste bien longtemps..

J'en ai vu arriver ici sans rien connaître puis parvenir à leurs fin..

D'ailleurs je ne suis pas informaticien et avant domoticz je n'avais jamais entendu parler de lua..

Mais il ne faut pas compter les heures de lecture.

Re: listes variables

Publié : 07 juin 2016, 22:44
par Stef17
Moi c’était un simple un ressenti ou retour d’expérience pour avoir vu, installé, parametré, et utilisé beaucoup beaucoup de projet open (gratuit ou pas) perso ou en prod dans des entreprises
Tes liens sont bons pas de soucis la dessus... mais je persiste a dire qu'il manque une bonne vielle liste genre :
devicechanged['Exterieur'] = blabla
local consigne = 'nomdudevice' : création d'une variable valable dans un script qui s'appelera "consigne" et egal au device "nomdudevice"
etc

puis genre un tableau pour certaine chose
== Égal
~= Différent de
< Plus petit que
> Plus grand que
<= Plus petit que ou égal
>= Plus grand que ou égal

exemple des commande shell debian : https://wiki.debian.org/fr/ShellCommands
exemple des fonctions sur php : http://php.net/manual/fr/indexes.functions.php

puis quand tu trouve ce que tu pourrais (peut etre) utiliser tu mets les mains dans le cambouis.

D'un autre coté c'est un étudiant developpeur qui m'a simplement dis un jour "tu crois que je sais utiliser toutes les fonctions java, visual, ou php ? ben non mais le plus important c'est de savoir (ou trouver) laquelle utiliser...
Mais bon dans quelque temps je la ferais cette liste quand je serais au point...

Bon allez un petit geste tu me corrige la suite ???
Merci pour les lien j'en ai sorti cela (c'est deja pas mal) :
une script : script_device-thermSDB.lua
Le but est bien sur de réguler la température.
La logique : si la sonde change de valeur et qu'on est en période de chauffage OU si la consigne de température change et que on est en période de chauffage alors :
On transfert la température rapporté par la sonde de la salle de bain comme valeur de la variable "temperature".
Si cette variable est inférieur ou égal à la température "moins" l’écart appelé dans les variables locales hysteresis alors on allume le sèche serviette
Sinon si elle est supérieur à la température "plus" l'ecart appelé dans les variables locales hysteresis alors on éteint le sèche serviette

-- Creer par Alexandre DUBOIS - 2014
-- Modifier par stef17 - 2016
--------------------------------
------ Start of edit section ------
--------------------------------
local consigne = 'Consignes_SDB' --Température de consigne
local hysteresis = 1 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
local sonde = 'Temp_SDB' --Nom de la sonde de température
local radiateur = 'Prise_SecheServiette' --Nom du radiateur à allumer/éteindre
local periode = 'Periode_Chauffe_SDB' --Switch permettant de valider si on est en periode de chauffage de SDB
--------------------------------
-- End of edit section --
--------------------------------

commandArray = {}
if (devicechanged[sonde] and otherdevices[periode] == 'On') or (devicechanged[consigne] and otherdevices[periode] == 'On') then -- si la temperature de la sonde SDB change et que le switch de periode de chauffage est sur "On" OU si la consigne de température change et que on est en période de chauffage alors on continue
local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans la salle de bain
if (temperature <= (consigne - hysteresis)) then
print('Allumage du chauffage dans SDB')
commandArray[radiateur]='On'
elseif (temperature > (consigne + hysteresis)) then
print('Extinction du chauffage dans le salon')
commandArray[radiateur]='Off'

end
end
end
return commandArray