Ik probeer de temperatuur van Weerlive.nl weer te geven in Domoticz.
Daarvoor ben in nu bezig met:
Site: https://www.domoticz.com/forum/viewtopic.php?t=27194#p208446
Ik ben bezig met het DzVents script (zie post: "Saturday 09 March 2019 11:57").
In de Log krijg in netjes de Huidige temperatuur en de Gevoels temperatuur.
Maar wat ik ook probeer, ik krijg deze waarde's niet zichtbaar in Domoticz.
Hiervoor heb ik 2 dummy velden aangemaakt:
Naam: Temperatuur
IDX: 8
Naam: Gevoels Temperatuur
IDX: 9
En in de code deze regel erbij geplaatst:
domoticz.devices('Temperatuur').updateTemperature(weer.temp)
Dit geeft een foutmelding:
2019-07-01 07:47:00.471 Status: dzVents: Error (2.4.19): getTemperatures: An error occured when calling event handler Script #5
2019-07-01 07:47:00.471 Status: dzVents: Error (2.4.19): getTemperatures: ...domoticz/scripts/dzVents/generated_scripts/Script #5.lua:35: attempt to index global 'domoticz' (a nil value)
Ook als ik als test een vaste waarde van 12 graden probeer te tonen wordt deze niet getoond:
domoticz.devices('Temperatuur').updateTemperature(12)
of
domoticz.devices(8).updateTemperature(12)
Geeft deze zelfde foutmelding !
Waarom kan ik geen Temperatuur veld wijzigen in deze code denken jullie ?
Misschien dat je hier iets aan hebt .
Ik heb mijn dimmer ook op ongeveer deze manier gemaakt en ik kan de waarde van een rotary Encoder/esp8266 terug in lezen in Domoticz.
https://blog.quindorian.org/2015/01/esp8266-wifi-led-dimmer-part-4-of-…
Ik gebruik hiervoor een dzVents script en je voorbeeld is een LUA script dus dat is lastig.
Op dit moment gebruik ik overigens, Python(3), Blockly, DzVents en LUA Scripts door elkaar.
Binnenkort wil ik gaan kiezen voor slechts 1 type Scripts, want alle type's werken weer anders en dat is lastig.
Edit:
Ik heb de code gewijzigd, en nu werkt het:
--dzVents script
local response = "KNMI_response"
return {
on = {
-- timer Trigger
timer = { "every 10 minutes" },
-- http http responses
httpResponses = { response },
},
-- custom logging level for this script
logging = { level = domoticz.LOG_DEBUG,
marker = "getTemperatures"
},
execute = function(domoticz, item)
local apikey = "xxxxxxxxxx"
local latitude = "xxxxxxxxxx"
local longitude = "xxxxxxxxxx"
local currentTemp = domoticz.devices(nnn)
local maxTemp = domoticz.devices(nnn)
local minTemp = domoticz.devices(nnn)
local windChill = domoticz.devices(nnn)
local function logWrite(str,level)
domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
end
if item.isHTTPResponse then
local weer = {}
weer = item.json.liveweer[1]
logWrite("Temperaturen voor : " .. weer.plaats )
logWrite("---------------------------------------------------")
logWrite("Huidige temperatuur : " .. weer.temp )
logWrite("Gevoels temperatuur : " .. weer.gtemp )
logWrite("Max temperatuur : " .. weer.d0tmax )
logWrite("Min temperatuur : " .. weer.d0tmin )
domoticz.devices(9).updateTemperature(weer.temp) --Temperatuur naar IDX 9 zenden
else
local url = "http://weerlive.nl/api/json-data-10min.php?key=" .. apikey .. "&locatie=" ..
latitude .. "," ..
longitude
domoticz.openURL({
url = url,
method = "GET",
callback = response})
end
end
}