Page 1 sur 1

Bloqué par Blockly, besoin d'aide Lua

Publié : 14 juil. 2020, 10:40
par PatriceN
Bonjour,

Pas très attiré ni doué pour les lignes de code, je gère mes événements en Blockly, mais on est vite limité...

Voici mon problème :

Je souhaite démarrer mon miroir chauffant (pour qu'il soit désembué quand on sort de la douche, c'est super pratique !) quand le point de rosée est supérieur à la température de la pièce mitoyenne et qu'il y a quelqu'un dans la pièce (si ça bouge ou que la lumière est allumée).

En Blockly, ça donne ça, et ça fonctionne :
Capture.PNG
Capture.PNG (27.41 Kio) Consulté 4469 fois
Le problème est que je voudrais anticiper/optimiser en démarrant le miroir chauffant lorsque le point de rosée est supérieur à la température de la pièce voisine -3°C. C'est là que adieu Blockly qui ne gère pas les fonctions mathématiques de base, j'ai besoin de programmer ça autrement.

Je me suis déjà un peu perdu dans les ComandArray et devicename, mais je n'arrive à rien de concret...

Quelqu'un pourrait-il m'aider à démarrer en programmation Lua ou dzVents sur ce problème particulier ?

Merci!
Patrice

Re: Bloqué par Blockly, besoin d'aide Lua

Publié : 14 juil. 2020, 10:51
par Keros
Bonjour Patrice,

Regarde dans ma signature, j'ai mis quelques informations concernant la programmation : il y a quelques conseils pour commencer.

Si tu as des questions, n'hésites pas ;)

Re: Bloqué par Blockly, besoin d'aide Lua

Publié : 14 juil. 2020, 12:00
par boum
Je persiste à penser que dzVents est plus accessible que les scripts Lua classiques pour se lancer dans la programmation. Après, c'est évident, il y a une question de goût indéniable et l'accès aux différentes ressources et informations pour se former.

La référence pour dzVents, c'est https://www.domoticz.com/wiki/DzVents:_ ... _scripting
C'est en anglais, mais c'est à jour et contient la majeure partie des informations. Il y a des articles sur EasyDomoticz, mais certains ne sont pas à jours car basés sur des versions anciennes de dzVents.

Voilà une base de départ, pour se faire une idée de se qui est faisable :

Code : Tout sélectionner

return {
    on = {
        devices = {
            'SdB Motion sensor',
            'SdB Lux',
            -- peut-être ajouter d'autres déclencheurs
        },
    },

    logging =
    {
        level = domoticz.LOG_DEBUG,
        -- level = domoticz.LOG_ERROR,
        marker = 'MiroirSdB',
    },

    execute = function(domoticz, item)
        domoticz.log('Device ' .. item.name .. ' was changed.', domoticz.LOG_DEBUG)

        local lux    = domoticz.devices('SdB Lux').lux
        local motion = domoticz.devices('SdB Motion sensor').state
        local dew    = domoticz.devices('SdB').dewPoint
        local temp   = domotic.devices('Couloir').temperature
        domoticz.log('Etat actuel : lux = ' .. lux .. ', motion =' .. motion .. ', dew = ' ..  dew .. '°, temp = ' .. temp .. ' ° ', domoticz.LOG_DEBUG)

        local seuil = temperature - 3
        if ((lux > 20) or (motion == 'On')) then
            domoticz.log('Test température', domoticz.LOG_DEBUG)
            if (dew > seuil) then
                domoticz.log('Allumage du miroir chauffant', domoticz.LOG_DEBUG)
                local miroir = domoticz.devices('Miroir chauffant')
                miroir.cancelQueuedCommands()
                miroir.switchOn().checkFirst()
                miroir.switchOff().afterMin(10)
                -- on s'arrête là
                return
            end
        end

        -- condition d'extinction
        if (dew < seuil) then
            domoticz.log('Arrêt du miroir chauffant', domoticz.LOG_DEBUG)
            domoticz.devices('Miroir chauffant').switchOff().checkFirst()
        end

    end
}
Il y a probablement des erreurs dans ce code et rien n'a été testé… :mrgreen:

Tous les conseils de Keros concernant le débogage et la programmation restent valides et pertinents.
Bon courage !

Re: Bloqué par Blockly, besoin d'aide Lua

Publié : 14 juil. 2020, 17:56
par PatriceN
Trop fort!!

Je crois bien que ça a fonctionné du 1er coup !
Merci à vous 2, je vais lire et pratiquer (pas comme le karaté ;) ) !
Le fait d'avoir un parallèle entre un Blockly que je connais et un exemple de script fonctionnel est génial pour que je puisse comparer et comprendre.

Patrice

Re: Bloqué par Blockly, besoin d'aide Lua

Publié : 14 juil. 2020, 19:40
par Keros
PatriceN a écrit : 14 juil. 2020, 17:56 Merci à vous 2, je vais lire et pratiquer (pas comme le karaté ;) ) !
:lol:

Tu as quelques infos sur le Dzvents là : https://easydomoticz.com/scripts-plus-f ... cz-dzvents

Bonne découverte !!