Page 1 of 1

lua-script hänger tellstick net v2

Posted: Tue Apr 27, 2021 8:51 am
by janfrisk
Hej,
jag har ett lua-script vilket slänger ur sig felmeddelanden, ibland. Scriptet fungerar som jag vill att det ska göra, dvs det lägger till ett tredje värde till två av mina hum/temp-givare. Men, efter några timmar så hänger sig tellstick net v2, går off-line och samtliga scheman och händelser upphör att triggas. Gissar att det är någon buffert som blir överfull, sram överfullt?
Scriptet är baserat på ett av Telldus exempel på github.

Code: Select all

local device_vinden = "Vinden"  -- Name of the sensor 
local device_krypgrund = "Krypgrund"  -- Name of the sensor 

-- DO NOT EDIT BELOW THIS LINE --

TEMPERATURE = 1
GENERIC_METER = 4096
SCALE_TEMPERATURE_CELCIUS = 0
SCALE_POWER_POWERFACTOR = 6

local sensor_type = TEMPERATURE
local sensor_scale = SCALE_TEMPERATURE_CELCIUS

local new_sensor_type = GENERIC_METER				-- New sensor type
local new_sensor_scale = SCALE_POWER_POWERFACTOR	-- New sensor scale

local deviceManager = require "telldus.DeviceManager"
local sensor_vinden = deviceManager:findByName(device_vinden)
local sensor_krypgrund = deviceManager:findByName(device_krypgrund)
local moldDangerRisk

function round(num, numDecimalPlaces)

    local mult = 10^(numDecimalPlaces or 0)

    if num >= 0 then 
	   return math.floor(num * mult + 0.5) / mult
    else 
	   return math.ceil(num * mult - 0.5) / mult
	end
end

function onSensorValueUpdated(device, valueType, temperatureValue, scale)

	if device:id() == sensor_vinden:id() and valueType == sensor_type and scale == sensor_scale then -- Error
	
	    humidityValue = sensor_vinden:sensorValue(2,0)
		
		moldDangerRisk = humidityValue - (1 / (temperatureValue + 5) * 125 + 70)

		moldDangerRisk = round(moldDangerRisk, 1)
		
		sleep(1000)
		sensor_vinden:setSensorValue(new_sensor_type, moldDangerRisk, new_sensor_scale) -- Error
		
	elseif device:id() == sensor_krypgrund:id() and valueType == sensor_type and scale == sensor_scale then -- Error
	
	    humidityValue = sensor_krypgrund:sensorValue(2,0)
		
		moldDangerRisk = humidityValue - (1 / (temperatureValue + 5) * 125 + 70)

		moldDangerRisk = round(moldDangerRisk, 1)
		
		sleep(1000)
               sensor_krypgrund:setSensorValue(new_sensor_type, moldDangerRisk, new_sensor_scale) -- Error
	end
end
Jag har kommenterat kodraderna ovan som tycks generera error-meddelanden.
Errormeddelandena ser ut så här:
Could not execute function onSensorValueUpdated: [string "<python>"]:35: error during Python call
Could not execute function <Lua thread at 0x19c5840>: [string "<python>"]:44: error during Python call
Could not execute function onSensorValueUpdated: [string "<python>"]:46: error during Python call
Could not execute function <Lua thread at 0x18663c0>: [string "<python>"]:55: error during Python call

Och, dessa errormeddelanden droppar ut endast ibland; det kan gå tio minuter emellan två stycken.

Naturligtvis har jag inte scriptet aktivt för tillfället.
Skulle verkligen uppskatta information om vad som kan vara problemet!

Tackar på förhand.
vänligen,
Jan