LUA: för att multiplicera en temperatur

I detta forum hör diskussioner gällande teknik i största allmänhet och hemautomation i synnerhet hemma.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Lillios
Wannabe
Inlägg: 23
Blev medlem: 16 nov 2016, 23:12
Ort: Ronneby

LUA: för att multiplicera en temperatur

Inlägg av Lillios »

Hej..

Jag köpte för en tid sedan denna:
Wireless Multi Sensor Mk3 ifrån foogadgets. Tellsticken hittar sensorn direkt och det verkar fungera bra.

Till denna har jag kopplat in en MH-Z19 Co2 givare. Tanken är att logga Co2 värdena främst i Sovrummen för att se om något behöver göras åt ventilationen.
När denna Co2 givare är inkopplad så visas den som en temperatur, detta temperatur värde behöver sedan multipliceras med x50 för att den skall visa korrekt Co2 värde. Tex temperatur visar 8°C, (50x8)=400ppm.

Jag använder Domoticz och skulle vilja ha denna temperatur till en "Dummy sensor" som fick ett multiplcerat värde ifrån ett script.

Är det någon som använder något liknade som råkar har ett script för detta?
Eller något tips på vart jag kan hitta det, eller i vilken ände jag ska börja.

Jag är helt kass vad det gäller LUA, har försökt göra ett par olika scripts men ännu har inget fungerat:-)
Bilagor
Untitled.jpg
HobbesApps
Wannabe
Inlägg: 8
Blev medlem: 18 nov 2016, 11:23
Ort: Simrishamn

Re: LUA: för att multiplicera en temperatur

Inlägg av HobbesApps »

Ändrade i ett annat skript jag har för att hantera energimätningar.. prova detta:

Kod: Markera allt

--Domoticz LUA Script (put text in file script_device_CO2.lua in /home/pi/domoticz/scripts/lua)

--Name of the real CO2 meter
aqMeterName = 'WMS-Test co2'

--ID of the created dummy CO2 meter
dummyAqMeterId = 35

aqVal = otherdevices_svalues[aqMeterName]

commandArray = {}
if devicechanged[aqMeterName] then
	--calculate actual value
	actual = 50 * tonumber(aqVal)
	
	--update dummy meter
	commandArray['UpdateDevice'] = dummyAqMeterId .. "|1|" .. actual
end

return commandArray
Lillios
Wannabe
Inlägg: 23
Blev medlem: 16 nov 2016, 23:12
Ort: Ronneby

Re: LUA: för att multiplicera en temperatur

Inlägg av Lillios »

Grymt!

Tack så otroligt mycket.
Sitter på jobbet och läser detta och fick plötsligt en väldig hemlängtan :-)

Tack igen.
Lillios
Wannabe
Inlägg: 23
Blev medlem: 16 nov 2016, 23:12
Ort: Ronneby

Re: LUA: för att multiplicera en temperatur

Inlägg av Lillios »

Det fungerar nästan.
Co2 Dummy:n visar kostant 1ppm. Oavsett vilket värde WMS-Test co2 har?

Jag får inga fel i Log filen heller.
HobbesApps
Wannabe
Inlägg: 8
Blev medlem: 18 nov 2016, 11:23
Ort: Simrishamn

Re: LUA: för att multiplicera en temperatur

Inlägg av HobbesApps »

Ok! Jag provkörde aldrig själv, men ska försöka mig på det ikväll. Återkommer!
HobbesApps
Wannabe
Inlägg: 8
Blev medlem: 18 nov 2016, 11:23
Ort: Simrishamn

Re: LUA: för att multiplicera en temperatur

Inlägg av HobbesApps »

Prova att ändra ena raden till:

commandArray['UpdateDevice'] = dummyAqMeterId .. "|" .. actual

d.v.s. "|1|" --> "|". Bör vara lösningen.
Lillios
Wannabe
Inlägg: 23
Blev medlem: 16 nov 2016, 23:12
Ort: Ronneby

Re: LUA: för att multiplicera en temperatur

Inlägg av Lillios »

Det gjorde ingen skillnad. Den visar fortfarande 1 konstant.

Har provat att ändra lite själv, men allt är bara gissningar. Då ändrades den till 0, nu när jag ändrar tillbaka till ditt förslag så visar den fortfarande 0.
Så den verkar endast visa sitt tidigare värde och inte uppdateras?
redina
Wannabe
Inlägg: 15
Blev medlem: 23 jul 2012, 22:00
Ort: Uppsala

Re: LUA: för att multiplicera en temperatur

Inlägg av redina »

Lillios skrev:Det gjorde ingen skillnad. Den visar fortfarande 1 konstant.

Har provat att ändra lite själv, men allt är bara gissningar. Då ändrades den till 0, nu när jag ändrar tillbaka till ditt förslag så visar den fortfarande 0.
Så den verkar endast visa sitt tidigare värde och inte uppdateras?
Du har skapat en Co2 dummy device, skriptet fungerar mot en text dumm device

Om du ändrar raden

Kod: Markera allt

--update dummy meter
   commandArray['UpdateDevice'] = dummyAqMeterId .. "|1|" .. actual
till

Kod: Markera allt

   --update dummy meter
   commandArray['UpdateDevice'] = dummyAqMeterId .. "|" .. actual .. "|0" 
Först är det: ID | nvalue | svalue

Så det beror på device vilket som används.
Lillios
Wannabe
Inlägg: 23
Blev medlem: 16 nov 2016, 23:12
Ort: Ronneby

Re: LUA: för att multiplicera en temperatur

Inlägg av Lillios »

Det fungerade! :D

Tusen tack för hjälpen! :D

Kod: Markera allt

--Domoticz LUA Script (put text in file script_device_CO2.lua in /home/pi/domoticz/scripts/lua)

--Name of the real CO2 meter
aqMeterName = 'WMS-Test co2'

--ID of the created dummy CO2 meter
dummyAqMeterId = 35

aqVal = otherdevices_svalues[aqMeterName]

commandArray = {}
if devicechanged[aqMeterName] then
   --calculate actual value
   actual = 50 * tonumber(aqVal)
   
   --update dummy meter
   commandArray['UpdateDevice'] = dummyAqMeterId .. "|" .. actual .. "|0" 
end

return commandArray
Skriv svar