[Débutant] attempt to concatenate local 'val_test' (a nil value)

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 <\>.
Greg.O
Messages : 148
Inscription : 07 oct. 2017, 18:04

[Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par Greg.O »

Bonjour à tous,

s'il m'en restait, je serais en train de m'arracher les cheveux. Ca fait 2 heures que je bloque sur une erreur dans mon premier script. Mon but est de faire un script pour gérer les vitesses de ma VMC en prenant en compte l'humidité des mes salles de bain. Alors, comme je suis débutant en lua, j'ai tenté un script tout simple qui me permettrait d'afficher la valeur de l'humidité de mes salles de bain. Mais je n'ai jamais réussi ! J'ai toujours la même erreur :
attempt to concatenate local 'val_test' (a nil value)

Je mets le code ci-dessous. J'ai tout vérifié : la syntaxe des fonctions, déclarer ma variable en locale, en global, ne pas la déclarer. :evil:

Est-ce que vous voyez une erreur évidente ?

Code : Tout sélectionner

  commandArray = {}

                                    
NOM_INTERRUPTEUR_PILOTAGE_VMC = 'VMC'
NOM_INTERRUPTEUR_OnOff_VMC = 'VMC-OnOff'
NOM_INTERRUPTEUR_GV_VMC = 'VMC-GV'  
NOM_INTERRUPTEUR_DEBUG = 'ModeDebugVMC'   
NOM_INTERRUPTEUR_TEST = 'Test_GV_SDB'   
NOM_CAPTEUR_VIRTUEL_HYGRO_MOYENNE= 'Hygro_Maison_Moyenne'
VALEUR_TEST_HUMIDITE1 = 'VMC_TST_HUM_SDB1'   -- valeur de test pour l'umidité positionné dans les variables domoticz
VALEUR_TEST_HUMIDITE2 = 'VMC_TST_HUM_SDB2'   -- valeur de test pour l'umidité positionné dans les variables domoticz
local val_test = "val_test"

-- ---------------------------------------------------------------------
-- Récupération de paramètres de Domoticz passés par les interrupteurs               
-- ---------------------------------------------------------------------
  if(otherdevices[NOM_INTERRUPTEUR_DEBUG]=='On') then   -- Si le mode debug est activé dans Domoticz (inter debug sur on)
    MODE_DEBUGG= true
  else
    MODE_DEBUGG= false
  end

  if(otherdevices[NOM_INTERRUPTEUR_TEST]=='On') then   -- Si le mode test est activé dans Domoticz (inter Test sur on)
    MODE_TEST=true
  else
    MODE_TEST=false
  end

 
  if MODE_DEBUGG== true then
    val_test= otherdevices_svalues[Hum_SDB_Laurie]
    val_test= tonumber(val_test)
    print(' ')
    print(' ')
    print(' ') 
    print(' ')
    print('>>>>>>>>>>>>>>  Script de controle de la VMC v1.0 <<<<<<<<<<<<<<<<<<<<<')
	print('Humidité dans la salle de bain de Laurie : '.. val_test)
  end
 

return commandArray
Domoticz v2021.1 sur Raspberry Pi 3B+
Raspbian Buster
Capteurs T/Hum Xiaomi / ConBee II
Zwave
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: [Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par thier »

essai avec ça

Code : Tout sélectionner

 commandArray = {}

                                   
NOM_INTERRUPTEUR_PILOTAGE_VMC = 'VMC'
NOM_INTERRUPTEUR_OnOff_VMC = 'VMC-OnOff'
NOM_INTERRUPTEUR_GV_VMC = 'VMC-GV' 
NOM_INTERRUPTEUR_DEBUG = 'ModeDebugVMC'   
NOM_INTERRUPTEUR_TEST = 'Test_GV_SDB'   
NOM_CAPTEUR_VIRTUEL_HYGRO_MOYENNE= 'Hygro_Maison_Moyenne'
VALEUR_TEST_HUMIDITE1 = 'VMC_TST_HUM_SDB1'   -- valeur de test pour l'umidité positionné dans les variables domoticz
VALEUR_TEST_HUMIDITE2 = 'VMC_TST_HUM_SDB2'   -- valeur de test pour l'umidité positionné dans les variables domoticz


-- ---------------------------------------------------------------------
-- Récupération de paramètres de Domoticz passés par les interrupteurs               
-- ---------------------------------------------------------------------
  if(otherdevices[NOM_INTERRUPTEUR_DEBUG]=='On') then   -- Si le mode debug est activé dans Domoticz (inter debug sur on)
    MODE_DEBUGG= true
  else
    MODE_DEBUGG= false
  end

  if(otherdevices[NOM_INTERRUPTEUR_TEST]=='On') then   -- Si le mode test est activé dans Domoticz (inter Test sur on)
    MODE_TEST=true
  else
    MODE_TEST=false
  end

 
  if MODE_DEBUGG== true then
    local val_test=  tonumber(otherdevices_svalues['Hum_SDB_Laurie'])
    print(' ')
    print(' ')
    print(' ')
    print(' ')
    print('>>>>>>>>>>>>>>  Script de controle de la VMC v1.0 <<<<<<<<<<<<<<<<<<<<<')
   print('Humidité dans la salle de bain de Laurie : '.. val_test)
  end
 

return commandArray
Hum_SDB_Laurie doit être le nom de la sonde dont tu récupères l'humidité
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Greg.O
Messages : 148
Inscription : 07 oct. 2017, 18:04

Re: [Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par Greg.O »

Merci pour le coup de main, mais j'ai toujours la même erreur :

Code : Tout sélectionner

Error: EventSystem: in Gestion_VMC_Auto: [string "commandArray = {}..."]:48: attempt to concatenate local 'val_test' (a nil value)
Je ne me trompe pas de capteur au moins ?
Voici mes dispositifs.
Image
Domoticz v2021.1 sur Raspberry Pi 3B+
Raspbian Buster
Capteurs T/Hum Xiaomi / ConBee II
Zwave
fredandrick65
Messages : 121
Inscription : 23 avr. 2016, 20:45

Re: [Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par fredandrick65 »

if MODE_DEBUGG== true then
local val_test= tonumber(otherdevices_svalues['Hum_SDB_Laurie'])
print(' ')
print(' ')
print(' ')
print(' ')
print('>>>>>>>>>>>>>> Script de controle de la VMC v1.0 <<<<<<<<<<<<<<<<<<<<<')
print('Humidité dans la salle de bain de Laurie : '.. val_test)
end
Tu essayes de concaténer une chaine avec un nombre dans ton print .
A mon avis ,il faudrait plutôt concaténer une chaine avec une chaine --> tostring au lieu de tonumber

Code : Tout sélectionner

  if MODE_DEBUGG== true then
    local val_test=  tostring(otherdevices_svalues['Hum_SDB_Laurie'])
    print(' ')
    print(' ')
    print(' ')
    print(' ')
    print('>>>>>>>>>>>>>>  Script de controle de la VMC v1.0 <<<<<<<<<<<<<<<<<<<<<')
   print('Humidité dans la salle de bain de Laurie : '.. val_test)
  end
Domoticz V3.8153 sur Synology DS3615xs DSM 5.2-5967 Update 3
RFLink_v1.1_r46 (433.92 & 433.42 Mhz)
Sonde Oregon THGR810-Prise Everspring-OWL CM180
Humidité du sol Opus XT300-Sondes Oregon pour les nuls V2

Les non-dit font les pires malentendus ! ;)
Greg.O
Messages : 148
Inscription : 07 oct. 2017, 18:04

Re: [Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par Greg.O »

Il y a du mieux : je n'ai plus de message d'erreur. Par contre, ça ne me retourne pas la bonne valeur :

Code : Tout sélectionner

dzVents: Humidité dans la salle de bain de Laurie : nil
Domoticz v2021.1 sur Raspberry Pi 3B+
Raspbian Buster
Capteurs T/Hum Xiaomi / ConBee II
Zwave
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: [Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par vil1driver »

Salut,

Concaténer une chaîne avec un nombre est ok
Mail nil signifie inexistant
Voir de ce côté..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Greg.O
Messages : 148
Inscription : 07 oct. 2017, 18:04

Re: [Débutant] attempt to concatenate local 'val_test' (a nil value)

Message par Greg.O »

J'avance petit à petit :

j'ai rebooté mon NAS pour voir s'il n'y avait pas un bug. Alors, les messages ont changé.

Code : Tout sélectionner

Error: Xiaomi Passerelle hardware (2) thread seems to have ended unexpectedly
J'ai manifestement un problème de connexion avec tous mes capteurs, sauf un !
J'ai donc fait mont test avec celui-ci et j'ai bien le message souhaité :

Code : Tout sélectionner

dzVents: Humidité dans la salle de bain de Laurie : 78
(c'est très humide : il y a de l'orage dans l'air ! :) )

Me reste plus qu'à trouver pourquoi je ne peux plus communiquer avec mes capteurs.
Domoticz v2021.1 sur Raspberry Pi 3B+
Raspbian Buster
Capteurs T/Hum Xiaomi / ConBee II
Zwave
Répondre