Dreuf Skrevet 25. februar 2017 Skrevet 25. februar 2017 Siden jeg ikke kan programmere så blir det litt klipp og lim for å få ting til å funke.. Jeg prøver å lage ett script som beregner deltaT på den vannbårne varmen min.. Dette skriptet fungerer, men kjører da hver gang en av temperaturene får en oppdatering, mao veldig ofte: local tur1 = 'Vaskerom-TUR' local retur1 = 'Vaskerom-RETUR' local deltat1_idx = 559 local tur2 = 'Gang-TUR' local retur2 = 'Gang-RETUR' local deltat2_idx = 560 local tur3 = 'Kjøkken N-TUR' local retur3 = 'Kjøkken N-RETUR' local deltat3_idx = 561 local tur4 = 'Kjøkken S-TUR' local retur4 = 'Kjøkken S-RETUR' local deltat4_idx = 562 local tur5 = 'TV Stue-TUR' local retur5 = 'TV Stue-RETUR' local deltat5_idx = 563 local tur6 = 'Bibliotek-TUR' local retur6 = 'Bibliotek-RETUR' local deltat6_idx = 564 commandArray = {} if devicechanged['Vaskerom-TUR'] then tur1 = otherdevices_svalues['Vaskerom-TUR'] retur1 = otherdevices_svalues['Vaskerom-RETUR'] tur_temp1 = tonumber(tur1) retur_temp1 = tonumber(retur1) commandArray['UpdateDevice'] = deltat1_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp1 - retur_temp1) elseif devicechanged['Gang-TUR'] then tur2 = otherdevices_svalues['Gang-TUR'] retur2 = otherdevices_svalues['Gang-RETUR'] tur_temp2 = tonumber(tur2) retur_temp2 = tonumber(retur2) commandArray['UpdateDevice'] = deltat2_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp2 - retur_temp2) elseif devicechanged['Kjøkken N-TUR'] then tur3 = otherdevices_svalues['Kjøkken N-TUR'] retur3 = otherdevices_svalues['Kjøkken N-RETUR'] tur_temp3 = tonumber(tur3) retur_temp3 = tonumber(retur3) commandArray['UpdateDevice'] = deltat3_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp3 - retur_temp3) elseif devicechanged['Kjøkken S-TUR'] then tur4 = otherdevices_svalues['Kjøkken S-TUR'] retur4 = otherdevices_svalues['Kjøkken S-RETUR'] tur_temp4 = tonumber(tur4) retur_temp4 = tonumber(retur4) commandArray['UpdateDevice'] = deltat4_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp4 - retur_temp4) elseif devicechanged['TV Stue-TUR'] then tur5 = otherdevices_svalues['TV Stue-TUR'] retur5 = otherdevices_svalues['TV Stue-RETUR'] tur_temp5 = tonumber(tur5) retur_temp5 = tonumber(retur5) commandArray['UpdateDevice'] = deltat5_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp5 - retur_temp5) elseif devicechanged['Bibliotek-TUR'] then tur6 = otherdevices_svalues['Bibliotek-TUR'] retur6 = otherdevices_svalues['Bibliotek-RETUR'] tur_temp6 = tonumber(tur6) retur_temp6 = tonumber(retur6) commandArray['UpdateDevice'] = deltat6_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp6 - retur_temp6) end return commandArray Jeg prøvde å gjøre det om til ett time-script som kjøres en gang pr min, men problemet er at det kun oppdaterer "deltaT_idx6". Noen som ser hva som er feil? local tur1 = 'Vaskerom-TUR' local retur1 = 'Vaskerom-RETUR' local deltat1_idx = 559 local tur2 = 'Gang-TUR' local retur2 = 'Gang-RETUR' local deltat2_idx = 560 local tur3 = 'Kjøkken N-TUR' local retur3 = 'Kjøkken N-RETUR' local deltat3_idx = 561 local tur4 = 'Kjøkken S-TUR' local retur4 = 'Kjøkken S-RETUR' local deltat4_idx = 562 local tur5 = 'TV Stue-TUR' local retur5 = 'TV Stue-RETUR' local deltat5_idx = 563 local tur6 = 'Bibliotek-TUR' local retur6 = 'Bibliotek-RETUR' local deltat6_idx = 564 commandArray = {} tur1 = otherdevices_svalues['Vaskerom-TUR'] retur1 = otherdevices_svalues['Vaskerom-RETUR'] tur_temp1 = tonumber(tur1) retur_temp1 = tonumber(retur1) tur2 = otherdevices_svalues['Gang-TUR'] retur2 = otherdevices_svalues['Gang-RETUR'] tur_temp2 = tonumber(tur2) retur_temp2 = tonumber(retur2) tur3 = otherdevices_svalues['Kjøkken N-TUR'] retur3 = otherdevices_svalues['Kjøkken N-RETUR'] tur_temp3 = tonumber(tur3) retur_temp3 = tonumber(retur3) tur4 = otherdevices_svalues['Kjøkken S-TUR'] retur4 = otherdevices_svalues['Kjøkken S-RETUR'] tur_temp4 = tonumber(tur4) retur_temp4 = tonumber(retur4) tur5 = otherdevices_svalues['TV Stue-TUR'] retur5 = otherdevices_svalues['TV Stue-RETUR'] tur_temp5 = tonumber(tur5) retur_temp5 = tonumber(retur5) tur6 = otherdevices_svalues['Bibliotek-TUR'] retur6 = otherdevices_svalues['Bibliotek-RETUR'] tur_temp6 = tonumber(tur6) retur_temp6 = tonumber(retur6) commandArray['UpdateDevice'] = deltat1_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp1 - retur_temp1) commandArray['UpdateDevice'] = deltat2_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp2 - retur_temp2) commandArray['UpdateDevice'] = deltat3_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp3 - retur_temp3) commandArray['UpdateDevice'] = deltat4_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp4 - retur_temp4) commandArray['UpdateDevice'] = deltat5_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp5 - retur_temp5) commandArray['UpdateDevice'] = deltat6_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp6 - retur_temp6) return commandArray Siter
Guahtdim Skrevet 7. mars 2017 Skrevet 7. mars 2017 Jeg har bare såvidt begynt å kikke på lua, men det som slår meg er at du muligens gjør en klassisk overskrivning. commandArray['UpdateDevice'] blir satt 6 ganger og det er kun siste gang som blir utført. Mulig du bør endre det slik at du har flere UpdateDevice. ... commandArray['UpdateDevice1'] = deltat1_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp1 - retur_temp1) commandArray['UpdateDevice2'] = deltat2_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp2 - retur_temp2) commandArray['UpdateDevice3'] = deltat3_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp3 - retur_temp3) commandArray['UpdateDevice4'] = deltat4_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp4 - retur_temp4) commandArray['UpdateDevice5'] = deltat5_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp5 - retur_temp5) commandArray['UpdateDevice6'] = deltat6_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp6 - retur_temp6) Siter
Dreuf Skrevet 11. mars 2017 Forfatter Skrevet 11. mars 2017 Prøvde løsningen din, men ser ut som den fortsatt kun oppdaterer den ene... Må forske litt videre Siter
Dreuf Skrevet 11. mars 2017 Forfatter Skrevet 11. mars 2017 Google is my friend, og her er løsningen: commandArray[#commandArray+1] = {['UpdateDevice'] = deltat1_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp1 - retur_temp1)} commandArray[#commandArray+1] = {['UpdateDevice'] = deltat2_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp2 - retur_temp2)} commandArray[#commandArray+1] = {['UpdateDevice'] = deltat3_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp3 - retur_temp3)} commandArray[#commandArray+1] = {['UpdateDevice'] = deltat4_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp4 - retur_temp4)} commandArray[#commandArray+1] = {['UpdateDevice'] = deltat5_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp5 - retur_temp5)} commandArray[#commandArray+1] = {['UpdateDevice'] = deltat6_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp6 - retur_temp6)} Siter
Guahtdim Skrevet 13. mars 2017 Skrevet 13. mars 2017 Så flott. Takk for at du la ut løsningen. Etter hva jeg har fått med meg er #commandArray lengden på array. Det du gjør er nå å legge til en ekstra for hver kommando. Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.