Domoticz - Plocka ut temperaturen från sensorn med luaskript

Diskussioner runt hur den tänkta funktionaliteten nås
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1245
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Domoticz - Plocka ut temperaturen från sensorn med luask

Inlägg av Plutonium »

Hej Hasse

Din hash ser lite knepig, det har smygit in <> tecken, ta bort dom.

http://www.temperatur.nu/rapportera.php ... 6328329&t=
http://essunga.org
Moderator - Temperatur.nu
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1245
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Domoticz - Plocka ut temperaturen från sensorn med luask

Inlägg av Plutonium »

Om du lägger till detta "_Temperature" efter ditt variabelnamn.

if (otherdevices_temperature['Ute_Temperature'] <= otherdevices_temperature['inomhus_Temperature']) then
http://essunga.org
Moderator - Temperatur.nu
TheeDude
Wannabe
Inlägg: 19
Blev medlem: 04 okt 2015, 23:14
Ort: Boden

Re: Domoticz - Plocka ut temperaturen från sensorn med luask

Inlägg av TheeDude »

mattsjo skrev: 01 sep 2013, 23:16 Jag har ett (eventuellt) enklare sätt att rapportera temperatur...

Jag har två tempsensorer, en som heter Ute och den andra som heter UteVP. Tror att det är ganska enkelt att se hur man ska ändra om man bara har en sensor.

Följande script heter script_time_reporttemp.lua och ligger i /home/pi/domoticz/scripts/lua på min Raspberry:

Kod: Markera allt

-- Script to report temperature to temperatur.nu

commandArray = {}

if (otherdevices_temperature['Ute'] <= otherdevices_temperature['UteVP']) then
    commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash=<hash>&t=' .. string.format("%.2f", otherdevices_temperature['Ute'])
else
    commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash=<hash>&t=' .. string.format("%.2f", otherdevices_temperature['UteVP'])
end

return commandArray
Ska någon använda detta script måste givetvis <hash> ovan bytas ut mot den hash som gäller för den station som ska födas med data... Skriptet körs en gång per minut.

Hej, gammal tråd det här, men jag provar ändå.

Har kört med ditt script i ett antal år, och det har fungerat utan bekymmer!
Men enheten som skickar mina temperaturvärden racklar en del (jäkla fibaro)
Så, jag har installerat ytterligare en tempsensor till mitt FTX aggregat på uteluften.
Försökte då få till i lua så den jämför 3 olika värden, men där gick jag bet!
Gjorde något i stil med detta, och har provat lite olika varianter, men inget av det verkar bringa mig någon lycka.

Någon som vill hjälpa mig i rätt riktning? :D

Kod: Markera allt

-- Script to report temperature to temperatur.nu

commandArray = {}

if (otherdevices_temperature['Utomhustemperatur-Syd'] or otherdevices_temperature['Utomhustemperatur-Nord'] <= otherdevices_temperature['FTX Uteluft (GT1)'] ) then
    commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash==' .. string.format("%.2f", otherdevices_temperature['Utomhustemperatur-Syd'])
else
	commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash==' .. string.format("%.2f", otherdevices_temperature['Utomhustemperatur-Nord'])     
elseif
	commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash==' .. string.format("%.2f", otherdevices_temperature['FTX Uteluft (GT1)'])
 
 end

return commandArray
rogerthn
Tar hemautomation på allvar
Inlägg: 111
Blev medlem: 06 mar 2008, 22:25
Ort: Trollhättan

Re: Domoticz - Plocka ut temperaturen från sensorn med luask

Inlägg av rogerthn »

TheeDude skrev: 03 sep 2021, 23:38 Hej, gammal tråd det här, men jag provar ändå.

Har kört med ditt script i ett antal år, och det har fungerat utan bekymmer!
Men enheten som skickar mina temperaturvärden racklar en del (jäkla fibaro)
Så, jag har installerat ytterligare en tempsensor till mitt FTX aggregat på uteluften.
Försökte då få till i lua så den jämför 3 olika värden, men där gick jag bet!
Gjorde något i stil med detta, och har provat lite olika varianter, men inget av det verkar bringa mig någon lycka.

Någon som vill hjälpa mig i rätt riktning? :D

Kod: Markera allt

-- Script to report temperature to temperatur.nu

commandArray = {}

if (otherdevices_temperature['Utomhustemperatur-Syd'] or otherdevices_temperature['Utomhustemperatur-Nord'] <= otherdevices_temperature['FTX Uteluft (GT1)'] ) then
    commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash==' .. string.format("%.2f", otherdevices_temperature['Utomhustemperatur-Syd'])
else
	commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash==' .. string.format("%.2f", otherdevices_temperature['Utomhustemperatur-Nord'])     
elseif
	commandArray['OpenURL']='http://www.temperatur.nu/rapportera.php?hash==' .. string.format("%.2f", otherdevices_temperature['FTX Uteluft (GT1)'])
 
 end

return commandArray
Hej
Jag har 3 temperaturer som jag kollar, lägsta används för rapportering till https://www.temperatur.nu/
För Framsida stoppar rapportering med ojämna mellanrum så om den är äldre än 10 minuter skippas den.
Först en funktion för att kolla ålder

Kod: Markera allt

--- tijdverschil bepalen sinds laatste schakeling in sec
function timedifference (s)
   if s == nil then print("Error  ") end
   year = string.sub(s, 1, 4)
   month = string.sub(s, 6, 7)
   day = string.sub(s, 9, 10)
   hour = string.sub(s, 12, 13)
   minutes = string.sub(s, 15, 16)
   seconds = string.sub(s, 18, 19)
   t1 = os.time()
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = (os.difftime (t1, t2))
   return difference
end
Hämta värden och ålder

Kod: Markera allt

aqMeterName = 'Baksida'
tempBaksida = otherdevices_svalues[aqMeterName]
updaBaksida = otherdevices_lastupdate[aqMeterName]
aqTradgard  = 'Tradgard'
tempTradgard,humiTradgard,otherTradgard = otherdevices_svalues[aqTradgard]:match("([^;]+);([^;]+);([^;]+)")
updaTradgard = otherdevices_lastupdate[aqTradgard]
aqFramsida  = 'Framsida'
tempFramsida = otherdevices_svalues[aqFramsida]
updaFramsida = otherdevices_lastupdate[aqFramsida]
Följt av

Kod: Markera allt

commandArray = {}
if devicechanged[aqMeterName] then
  timeNow = os.date("%Y-%m-%d %H:%M:%S")
  year 	= tonumber(os.date("%Y"))
  month 	= tonumber(os.date("%m"))
  day 	= tonumber(os.date("%d"))
  hour 	= tonumber(os.date("%H"))
  min 	= tonumber(os.date("%M"))
  sec     = tonumber(os.date("%S"))
  timeValue = hour * 60 + min

local minTemperature = tonumber(tempTradgard)
local tempInput = 'tradgard'
diffFramsida = timedifference(updaFramsida)
if diffFramsida < 600 then
    if tonumber(tempFramsida) < minTemperature then
        minTemperature = tonumber(tempFramsida)
        tempInput = 'framsida'
    end
end
if tonumber(tempBaksida) < minTemperature then
    minTemperature = tonumber(tempBaksida)
    tempInput = 'baksida'
end
Nu finns lägsta temperatur i minTemperature
Lycka till
Skriv svar