LUA script fungerer ikke lenger

Moderator: Telldus

Post Reply
bergetun
Posts: 34
Joined: Thu Jan 18, 2018 11:08 am

LUA script fungerer ikke lenger

Post by bergetun » Sun Nov 10, 2019 6:50 pm

Ingen av mine LUA script fungerer lenger. DE har tidligere fungert uten problemer, men nå får jeg masse rare feilmeldinger.

Her er ett eksempel på et script som ikke lenger fungerer.

Code: Select all

SCALE_POWER_VOLT = 4
VALUE_TYPE_POWER = 256
TYPE_TEMPERATURE = 1
POWER = 256 

local myDevice = "Volt"
local deviceManager = require "telldus.DeviceManager"
local sensor = deviceManager:findByName(myDevice)

function onSensorValueUpdated(device, valueType, value, scale)
   if device:id() == sensor:id() and valueType == TYPE_TEMPERATURE 
   then		
        sensor:setSensorValue(256, value, 4)
   end
end


Får feilmelding:

Console
Could not execute function onSensorValueUpdated: [string "<python>"]:11: attempt to index upvalue 'sensor' (a nil value)

Could not execute function onSensorValueUpdated: [string "<python>"]:11: attempt to index upvalue 'sensor' (a nil value)

Could not execute function onSensorValueUpdated: [string "<python>"]:11: attempt to index upvalue 'sensor' (a nil value)

micke.prag
Site Admin
Posts: 2240
Joined: Thu Jan 18, 2018 11:08 am
Location: Lund
Contact:

Re: LUA script fungerer ikke lenger

Post by micke.prag » Tue Nov 12, 2019 1:15 pm

Do not fetch the sensor in the global scope but in your function instead.

Code: Select all

SCALE_POWER_VOLT = 4
VALUE_TYPE_POWER = 256
TYPE_TEMPERATURE = 1
POWER = 256 

local myDevice = "Volt"

function onSensorValueUpdated(device, valueType, value, scale)
   local deviceManager = require "telldus.DeviceManager"
   local sensor = deviceManager:findByName(myDevice)
   if device:id() == sensor:id() and valueType == TYPE_TEMPERATURE 
   then		
        sensor:setSensorValue(256, value, 4)
   end
end

Micke Prag
Software
Telldus Technologies

bergetun
Posts: 34
Joined: Thu Jan 18, 2018 11:08 am

Re: LUA script fungerer ikke lenger

Post by bergetun » Wed Nov 13, 2019 10:50 am

Takk @micke.prag

Jeg skal prøve det

To spørsmål til deg når jeg har oppmerksomheten din :)

1. Er det mulig å lage et LUA script som oppdaterer en ekstern webside (Post/Get) med sensor data fra Telldusen. La oss si jeg vil vise temperaturen på en webside jeg har.


2. Er det planer om å legge inn støtte for å lage "dummy sensorer" gjennom LUA scriptet. Jeg har en batteri Volt/spennings sensor som bruker Temperaturprotokollen på 433mhz . Denne vises som Temperatur (Celcius) og ikke spenning (Volt) . Derav LUA scriptet i original posten min)

micke.prag
Site Admin
Posts: 2240
Joined: Thu Jan 18, 2018 11:08 am
Location: Lund
Contact:

Re: LUA script fungerer ikke lenger

Post by micke.prag » Wed Nov 13, 2019 11:15 am

Tyvärr nej på båda punkterna i dagsläget.

Du kan dock hämta värdena på dina sensorer via vårt api och visa på din webbsida.
Micke Prag
Software
Telldus Technologies

bergetun
Posts: 34
Joined: Thu Jan 18, 2018 11:08 am

Re: LUA script fungerer ikke lenger

Post by bergetun » Wed Nov 13, 2019 12:15 pm

Takk for svar.

PS. Scriptet fungerer fint nå :)

bergetun
Posts: 34
Joined: Thu Jan 18, 2018 11:08 am

Re: LUA script fungerer ikke lenger

Post by bergetun » Sun Nov 17, 2019 9:50 pm

Hei Micke,

Er det gjort enda flere endringer ? Nå virker ikke det nye scriptet lenger heller :(

bergetun
Posts: 34
Joined: Thu Jan 18, 2018 11:08 am

Re: LUA script fungerer ikke lenger

Post by bergetun » Mon Nov 18, 2019 3:14 pm

@Micke.prag


Hei,

Endringen som du gjorde på scriptet fungerte en liten stund, men nå virker heller ikke dette lenger. Gjøres dere endringer hele tiden, slik at script slutter å fungere ?

Her er scriptet (som du rettet på )
Dette fungerte fint i noen dager, men nå får jeg feilmeldinger

Code: Select all

SCALE_POWER_VOLT = 4
VALUE_TYPE_POWER = 256
TYPE_TEMPERATURE = 1
POWER = 256 

local myDevice = "Startbatteri"

function onSensorValueUpdated(device, valueType, value, scale)
   local deviceManager = require "telldus.DeviceManager"
   local sensor = deviceManager:findByName(myDevice)
   if device:id() == sensor:id() and valueType == TYPE_TEMPERATURE 
   then		
        sensor:setSensorValue(256, value, 4)
   end
end
Her er feilemdlingene

Could not execute function onSensorValueUpdated: [string "<python>"]:11: attempt to index local 'sensor' (a nil value)

Could not execute function onSensorValueUpdated: [string "<python>"]:11: attempt to index local 'sensor' (a nil value)

Could not execute function onSensorValueUpdated: [string "<python>"]:11: attempt to index local 'sensor' (a nil value)

micke.prag
Site Admin
Posts: 2240
Joined: Thu Jan 18, 2018 11:08 am
Location: Lund
Contact:

Re: LUA script fungerer ikke lenger

Post by micke.prag » Tue Nov 19, 2019 8:06 am

Testa att lägga in lite debug-print så att du ser vilken rad som inte fungerar
Micke Prag
Software
Telldus Technologies

Post Reply