Page 1 sur 1

Séparer les valeurs d'un Device dans plusieurs capteurs virtuels

Publié : 27 mai 2018, 11:49
par Storpell
Salut tout le monde,

J'ai connecté une sonde d'humidité https://www.tindie.com/products/miceuz/ ... re-sensor/ à un ESP8266 https://fr.aliexpress.com/item/D1-mini- ... 6c37fwCptw que j'ai flashé avec Easy ESP Mega.

Je cherche un moyen de séparer les valeurs reçues et de les envoyer dans un capteur virtuel (un pour chaque donnée) afin de les utiliser dans des scripts plus tard.
Device
Device
Capture.PNG (21.79 Kio) Consulté 4296 fois
Voilà les données que j'ai dans domoticz : 0" je ne sais pas ce que c'est", "température";"humidité";"luminosité"

Merci pour votre aide.

Salutations

Steve

Re: Séparer les valeurs d'un Device dans plusieurs capteurs virtuels

Publié : 29 mai 2018, 17:33
par Le ptit Nicolas
Lorsque tu choisis un capteur virtuel de type Temp+Humidity+Baro, il te renvoie tout simplement la température °C, puis le pourcentage d'humidité et la pression en hPA, par exemple avec un BME280 : 20.8°C,51%,1014hPa

Après, je ne sais pas ce que renvoie ton capteur...

Re: Séparer les valeurs d'un Device dans plusieurs capteurs virtuels

Publié : 29 mai 2018, 18:36
par fredandrick65
Tu peux stocker les différentes valeurs de ton capteur avec un script genre celui-ci

Code : Tout sélectionner

--	script_time_Test.lua
-- 

local scipt_on = 'On'	-- 'Off' ou 'On'

commandArray = {}
	
	if scipt_on == 'On' then
		Temp, Humi, hPa, JeSaisPas, PasPlus = otherdevices_svalues['Météo LNZ']:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)")
		-- le nombre de ;([^;]+) dépendant du nombre de valeurs à stocker
		print ( '__________________________',otherdevices_svalues['Météo LNZ'],Temp, Humi, hPa, JeSaisPas, PasPlus )
	end

	
return commandArray

Re: Séparer les valeurs d'un Device dans plusieurs capteurs virtuels

Publié : 29 mai 2018, 20:24
par fredandrick65
une autre méthode

Code : Tout sélectionner

--	script_time_Test.lua
-- 
function split(str, pat)
   local t = {}  -- NOTE: use {n = 0} in Lua-5.0
   local fpat = "(.-)" .. pat
   local last_end = 1
   local s, e, cap = str:find(fpat, 1)
   while s do
      if s ~= 1 or cap ~= "" then
         table.insert(t,cap)
      end
      last_end = e+1
      s, e, cap = str:find(fpat, last_end)
   end
   if last_end <= #str then
      cap = str:sub(last_end)
      table.insert(t, cap)
   end
   return t
end

local scipt_on = 'On'	-- 'Off' ou 'On'
local couleur = "<font color='#a8dbe0'>"

commandArray = {}
	print ( ' ',couleur..'__________________________ Debut script_time_Test __________________________'.."</font>")
	if scipt_on == 'On' then
		
		val = split(otherdevices_svalues['Météo LNZ'],';') -- Séparer les valeurs délimitées par ';'
		for n in pairs(val) do
			print (couleur..val[n].."</font>")
			
			--[[	val[1] retourne la valeur 1
					val[2] retourne la valeur 2
					val[3] retourne la valeur 3
					etc...
			]]--
				
		end
	print ( couleur..'___________________________ Fin script_time_Test ___________________________'.."</font>",' ')
	end

	
return commandArray

Re: Séparer les valeurs d'un Device dans plusieurs capteurs virtuels

Publié : 01 juin 2018, 08:14
par Storpell
Ok, merci.

Mais comment je fais pour affecter ces valeurs à des Virtual Sensors ?

Merci, bonne journée