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

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 <\>.
padbol2002
Messages : 84
Inscription : 23 oct. 2017, 08:53

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

Message 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
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

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

Message 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
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
padbol2002
Messages : 84
Inscription : 23 oct. 2017, 08:53

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

Message par padbol2002 »

Le script est entier !!
juste 2 lignes
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

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

Message 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.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message 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).
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
padbol2002
Messages : 84
Inscription : 23 oct. 2017, 08:53

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

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message 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.
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