Page 3 sur 3

Re: LUA Debute 1 inter et 1 sortie

Publié : 22 mars 2025, 07:43
par fcBourgogne
Bonjour,

Sinon en détail:

Code : Tout sélectionner

local DHTSalon = 'TempSalon'
local sonde = otherdevices_svalues[DHTSalon]

if  sonde then
    -- Parse temperature and humidité
    local temp, hum = string.match(sonde, "([^;]+);([^;]+)")
    print("TempSalon: " .. temp .. "°C")
    print("HumSalon: " .. hum .. "%")
end
A+

Re: LUA Debute 1 inter et 1 sortie

Publié : 22 mars 2025, 17:43
par daniel4860
Bonjour,
Merci fcBourgogne et keros
Il parait que l'on devient forgeron en forgeant!
Donc je me suis creusé la cervelle et voici mon code pour scindée les valeurs.
Je suis passé par la création d'un tableau et une boucle for afin de garder un exemple qui peut servir pour des sondes ou autres qui donne plusieurs valeurs.
Voici mon code:

Code : Tout sélectionner

commandArray = {}

--La sonde DHT22 est sur un ESP8266, les donneées sont transférer par mqtt dans un Dispositif Virtuel
local dht22 = 'TempHumidite'

--Creation d'un tableau dans lequel seront enregistrer les valeurs 
local valdht22 = {}

--Les valeurs sont mis dans donnée : 20.4;44;0
donnee = otherdevices_svalues[dht22]

--Je scinde les données dans un tableau avec une boucle for
for valeur in string.gmatch(donnee, "[^;]+") do
    table.insert(valdht22, tonumber(valeur))
end

--Je crée les variables temp Temperature et humi pour Humidite
local temp = valdht22[1]
local humi = valdht22[2]

--On retrouve le résultat dans les log de domoticz
print("Temperature: " .. temp .. "°C")
print("Humidite: " .. humi .. "%")

return commandArray
Bonne soirée et bon week-end.
Daniel

Re: LUA Debute 1 inter et 1 sortie

Publié : 23 mars 2025, 18:24
par fcBourgogne
Bonjour,

Bien et propre le script!

A+