Domoticz/ESP8266/ESPEASY

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Domoticz/ESP8266/ESPEASY

Message par Keros »

Tant mieux :)

Vas-y petit à petit, tu vas y arriver !

Pour vérifier après un certain délai, c'est pas très évident. Je pense que le plus facile serait de déclencher un autre device virtuel après le fameux délai ; device virtuel qui lancerait le script de vérification.
Il y a peut-être d'autres solutions plus simples...
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
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Domoticz/ESP8266/ESPEASY

Message par david86 »

OK, en effet petit à petit...
J'ai réussi à récupérer ma valeur de pression selon mon capteur dummy.
Je vais voir ce que je vais arriver à en faire par la suite.

Finalement, entre le lua et le DZEVENT, ok la rédaction n'est pas la même, mais l'intéret de l'un par rapport à l'autre c'est quoi ?
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Domoticz/ESP8266/ESPEASY

Message par Keros »

Le DZvent est du LUA mais appliquer à DomoticZ. C'est ce qu'on appelle une programmation orientée objet.

Niveau fonctionnement, je ne pense pas qu'il y est une différence. Niveau syntaxe : l'un dit "active ceci", l'autre dit "passe ceci à On".
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
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Domoticz/ESP8266/ESPEASY

Message par david86 »

Ok !
Pour la quête sur le temps, je me demande si je vais pas chercher avec l’argument os.date() et peut être %S pour jouer avec les secondes...
Je ne vois pas comment créer une boucle du genre :

Si interrupteur == on then
For i=os.date(%S),i<30,i++
CommandArray(sendNotification...)

En gros qu’il prenne i à la seconde et qu’il rajoute 30 secondes et envoi à partir de ce moment la notification.

Jouable ? Perplexe la...
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Domoticz/ESP8266/ESPEASY

Message par Keros »

Non, ça tu ne peux pas le faire.
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
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Domoticz/ESP8266/ESPEASY

Message par david86 »

Ça aurait été trop facile hein sinon...
😢
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

Re: Domoticz/ESP8266/ESPEASY

Message par david86 »

Bonsoir Keros,
Pour le moment je n'ai pas cherché avec la fonction os.date() à faire quoi que ce soit, je suis resté sur ton idée d'interrupteur virtuel sur lesquels je met une tempo d'allumage et lorsqu'il s'enclenche, ça déclenche ma contrainte de temps et la vérification est alors faite.
J'ai voulu réduire mes conditions, plutôt que faire des if then if then if then, j'ai voulu faire faire un if then else mais ça n'a pas fonctionné, j'ai du faire un if then else if

Si dans ce code je remplace le else if (condition) par un simple else, je reçoit des notifications toutes les 2 secondes.... Je comprend pas trop pourquoi.

Et bien écoute, je te remercie encore, moi qui y'a 2 jours je me demandais comment je m'en serai sorti... Ce n'est rien de folichon, mais bien content d'y être arrivé. Merci ;-)

Code : Tout sélectionner

Heure_Actuelle=os.date("%X")

commandArray = {}


if (devicechanged['Interrupteur salon'] == 'On') then
    commandArray['Timer-Virtuel-5s'] = 'On'
    commandArray['Timer-Virtuel-120s'] = 'On'
end

if (devicechanged['Timer-Virtuel-120s'] == 'On'and (otherdevices_temperature['Temp-virtuel'] < 100)) then

    pression = (otherdevices['Temp-virtuel'])
    pression=tonumber(pression)
    
    commandArray['SendNotification']='DANGER POMPE#Désamorçage POMPE à : '..(Heure_Actuelle)..' @ '..(pression)..' bars#2'
    commandArray['Interrupteur salon'] = 'Off'
    
    elseif(devicechanged['Timer-Virtuel-120s'] == 'On'and (otherdevices_temperature['Temp-virtuel'] > 100)) then
    commandArray['SendNotification']='POMPE OK#@bars#0'
end

return commandArray
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Domoticz/ESP8266/ESPEASY

Message par Keros »

Très content que tu sois arrivé à te lancer :)

Tu ne peux pas utiliser de Else car ta première condition est sur un devicechanged. La condition else est donc rempli pour tous les autres devicechanged. Ce qui explique pourquoi t'en as autant.
C'est ta condition and ... qu'il faut que tu places dans autre if en dessous. Et là tu pourras utiliser le Else.
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
Répondre