Page 1 sur 1

Erreur : attempt to call a nil value (field 'devices')

Publié : 17 oct. 2023, 23:40
par padbol2002
Bonjour

j'ai un Dummy type Selector à 4 niveaux (0,10,20,30)
je veux afficher dans le log la valeur du niveau (et pas son nom)
bah j'ai plein d'erreur..

Code : Tout sélectionner

local selecteur = tonumber(domoticz.devices('Regulation_Chambres').rawData[1])
domoticz.log(selecteur, domoticz.LOG_FORCE)

Code : Tout sélectionner

attempt to call a nil value (field 'devices')
et
 attempt to call a nil value (field 'log')
une idée?
merci

Re: Erreur : attempt to call a nil value (field 'devices')

Publié : 18 oct. 2023, 11:13
par boum
bonjour, sans le scripe en entier, ce sera dur de diagnostiquer. il y a dix mille façons d'obtenir ce message. je crois que @Keros a dans sa signature des liens pour aider à débuguer

au pif, le paramètre de la fonction execute n'est pas domoticz mais dz

Re: Erreur : attempt to call a nil value (field 'devices')

Publié : 18 oct. 2023, 11:17
par padbol2002
Le script est entier !!
juste 2 lignes

Re: Erreur : attempt to call a nil value (field 'devices')

Publié : 18 oct. 2023, 12:19
par Neutrino
Si le script est entier, il manque beaucoup de chose .
J'ai le sentiment que tu essaies de faire du dzvents dans un script lua.

Re: Erreur : attempt to call a nil value (field 'devices')

Publié : 18 oct. 2023, 12:42
par Keros
On parle de moi :mrgreen:

@padbol2002, repart des scripts proposés par défaut dans l'éditeur de scripts de DomoticZ quand tu créé un nouveau script. Tu verras qu'il te manque des choses (que ce soit en LUA ou DzVents).

Re: Erreur : attempt to call a nil value (field 'devices')

Publié : 18 oct. 2023, 12:52
par padbol2002
Effectivement, j'ai omis le code minimal

Code : Tout sélectionner

return {
    on = {
        timer = {
            'every 1 minutes' -- Vous pouvez ajuster la fréquence de l'exécution du script
        }
    },
    execute = function(domoticz, triggeredItem)
        local selectorLevel = tonumber(domoticz.devices('Regulation_Chambres').rawData[1])

        if selectorLevel then
            domoticz.log("Niveau du Dummy Selector : " .. selectorLevel, domoticz.LOG_FORCE)
        else
            domoticz.log("La variable n'a pas été trouvée.", domoticz.LOG_ERROR)
        end
    end

}
Je vais pouvoir poursuivre
encore merci

Re: Erreur : attempt to call a nil value (field 'devices')

Publié : 18 oct. 2023, 18:22
par Keros
Pourquoi faire comme ça ? Tu peux extraire directement la valeur du level d'un selecteur https://www.domoticz.com/wiki/DzVents:_next_generation_Lua_scripting#Switch_.28dimmer.2C_selector_etc..29.