Maak van Domoticz een weerstation – Deel 1

Helaas is de data-service van Weather Undergound nog maar tot eind 2018 gratis beschikbaar. Nieuwe gebruikers kunnen nu al geen API-key meer registreren om gratis weer-data naar Domoticz te halen. De afgelopen week hebben wij hard gewerkt aan een nieuw script dat gebruik maakt van data van Buienradar en Darksky. In dit artikel leggen we stap voor stap uit hoe je jouw Raspberry met Domoticz kunt omtoveren naar een weerstation. Iedere 5 minuten krijg je automatisch de actuele waarden uit jouw woonplaats van:

  • Buitentemperatuur
  • Gevoelstemperatuur
  • Grondtemperatuur
  • Zicht
  • Luchtvochtigheid
  • Luchtdruk
  • Zonkracht
  • Windsnelheid, -stoten, -richting, -temperatuur
  • Dauwpunt
  • Bewolkingsgraad
  • UV-index
  • Ozon
  • Weersverwachting voor morgen
  • Weersverwachting komende 1 tot 5 dagen
  • Weersverwachting komende 6 tot 10 dagen
  • Zeer uitgebreide korte termijn verwachting
  • Weer-waarschuwing
  • Regen-waarschuwing

 

Benodigdheden

User variables

Aangezien je weer-data uit jouw woonplaats wilt hebben gaan we eerst twee user variables aanmaken. Ga naar Settings > More Options > User variables. Maak user variable LatitudeThuis en LongitudeThuis aan, beiden van het type “String” en met een variable Value van de gps-coördinaten van jouw woonplaats (3 of 4 decimalen zijn voldoende, meer decimalen kan tot errors leiden).

user variables gps domoticz

 

Virtuele sensoren aanmaken

De volgende stap is om een virtuele sensor aan te maken. Ga naar Setup -> Hardware en kies bij Type voor Dummy. Je mag zeg een herkenbare naam kiezen:

Zodra de Dummy Hardware toegevoegd is kunnen de virtuele sensoren gaan aanmaken. Klik hiervoor op Create Virtual Sensors (in het donkerblauw).

Maak nu de virtuele sensor aan van het type “Temperature” en geef “Grondtemperatuur” als naam van de sensor in:

Maak op dezelfde wijze onderstaande virtuele sensoren aan:

Grondtemperatuur — Temperature sensor
Temperatuur buiten — Temperature sensor
Gevoelstemperatuur — Temperature sensor
Zicht — Visibility sensor
Zonkracht — Solar Radiation sensor
Wind — Wind sensor
Luchtvochtigheid — Humidity sensor
Luchtdruk — Barometer sensor
Verwachting morgen — Text sensor
Verwachting 1-5 dagen — Text sensor
Verwachting 6-10 dagen — Text sensor
Uitgebreide verwachting — Text sensor
Dauwpunt — Temperature sensor
Waarschuwing — Alert sensor
Bewolkingsgraad — Percentage sensor
UV — UV sensor
Ozone — Custom sensor with axis “DU”

 

DarkSky API-key

Tot slot moeten we nog een API-key aanmaken op de website van DarkSky. Deze API-key heb je nodig om via het script informatie van DarkSky naar Domoticz te halen. Volg de instructies op de DarkSky website.

Darksky API

 

Script

De laatste stap is het script. Ga naar Setup > More Options > Events en kies voor een LUA event (van het type Time). Kopieer onderstaand script naar Domoticz. Vul op regel 16 het nummer van een weerstation bij jou in de buurt in. Op regel 17 vul het de API-key van DarkSky in. Debugging kun je op regel 18 aan- of uitzetten. Tot slot kun je op regel 19 de taal voor de weersverwachtingen instellen. Activeer het event en sla het op.

--[[ WEERSTATIONS:

Amsterdam   = 36	Groningen           = 13	Oost-Groninigen = 31	Vlissingen      = 44
Arnhem      = 2	    Hoek van Holland    = 17	Oost-Overijssel = 12	Voorschoten     = 46
Berkhout    = 3	    Hoogeveen           = 18	Rotterdam       = 33	Wadden          = 19
Den Helder  = 6	    Leeuwarden          = 26	Utrecht         = 5	    Weert           = 8
Eindhoven   = 7	    Lelystad            = 27	Terneuzen       = 47	West-Friesland  = 38
Gilze Rijen = 10	Maastricht          = 29	Twente          = 41	West-Utrecht    = 28
Goes        = 11	Noord-Groninigen    = 24	Uden            = 45	Woensdrecht     = 50
Gorinchem   = 16	Noordoostpolder     = 30	Venlo           = 1	    Zwolle          = 15
--]]

--------------------------------
---------- SETTINGS ------------
--------------------------------
local weerstation   = 45                                    -- Kies je weerstation naar keuze
local api_key       = "137635f6c0a2be5153a2f76357ba8ed4"    -- Darksky secret key
local debug         = 1                                     -- 0 = no debug, 1 = debug
local language      = "nl"                                  -- ar: Arabic, az: Azerbaijani, be: Belarusian, bg: Bulgarian, bs: Bosnian, ca: Catalan, cs: Czech, da: Danish,
                                                            -- de: German, el: Greek, en: English, es: Spanish, et: Estonian, fi: Finnish, fr: French, he: Hebrew, hr: Croatian,
                                                            -- hu: Hungarian, id: Indonesian, is: Icelandic, it: Italian, ja: Japanese, ka: Georgian, ko: Korean, kw: Cornish,
                                                            -- lv: Latvian, nb: Norwegian Bokmål, nl: Dutch, no: Norwegian Bokmål (alias for nb), pl: Polish, pt: Portuguese,
                                                            -- ro: Romanian, ru: Russian, sk: Slovak, sl: Slovenian, sr: Serbian, sv: Swedish, tet: Tetum, tr: Turkish,
                                                            -- uk: Ukrainian, x-pig-latin: Igpay Atinlay, zh: simplified Chinese, zh-tw: traditional Chinese

commandArray = {}

local dev_TempGround    = "Grondtemperatuur"        -- Temperature sensor
local dev_TempOutside   = "Temperatuur buiten"      -- Temperature sensor
local dev_TempApperent	= "Gevoelstemperatuur"      -- Temperature sensor
local dev_Visibility    = "Zicht"                   -- Visibility sensor
local dev_SunPower      = "Zonkracht"               -- Solar Radiation sensor
local dev_Wind          = "Wind"                    -- Wind sensor
local dev_Humidity  	= "Luchtvochtigheid"        -- Humidity sensor
local dev_Pressure      = "Luchtdruk"               -- Barometer sensor
local dev_TextTomorrow  = "Verwachting morgen"      -- Text sensor
local dev_TextShort     = "Verwachting 1-5 dagen"   -- Text sensor
local dev_TextLong      = "Verwachting 6-10 dagen"  -- Text sensor       
local dev_LongText   	= "Uitgebreide verwachting"	-- Text sensor       
local dev_DewPoint      = "Dauwpunt"                -- Temperature sensor 
local dev_Alert      	= "Waarschuwing"            -- Alert sensor
local dev_CloudCover    = "Bewolkingsgraad"         -- Percentage sensor
local dev_UV            = "UV"                      -- UV sensor
local dev_Ozone         = "Ozone"                   -- Custom sensor with axis "DU"

-- Locatie-bepaling
local lat	= uservariables['LatitudeThuis']
local lon	= uservariables['LongitudeThuis']
local coord = lat..","..lon

--Functie devices updaten
function UpdateDev(device,nvalue,svalues)
    commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[device]..'|'..tostring(nvalue)..'|'..tostring(svalues)}
end

-- Functie afronding
function round(num, dec)
    if num == 0 then
        return 0
    else
        local mult = 10^(dec or 0)
        return math.floor(num * mult + 0.5) / mult
    end
end

--------------------------------------------------
----- ######## Buienradar API Data call ######## -----
--------------------------------------------------
time = os.date("*t")
if  ((time.min+2)%5)==0  then -- Script loopt iedere 5 minuten (bv. 11.03, 11.08, 11.13, 11.18, etc.
    json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()  -- For Linux
    local config=assert(io.popen('curl "https://api.buienradar.nl/data/public/2.0/jsonfeed"'))
    local Stringjson = config:read('*all')
    config:close()
    local jsonData = json:decode(Stringjson)

-- Convert the json to a LUA table
if jsonData.actual.stationmeasurements[ weerstation ] ~= nil then  -- this sometimes happens around midnight
    val_TempOutside             = jsonData.actual.stationmeasurements[ weerstation ].temperature
    val_TempApperent            = jsonData.actual.stationmeasurements[ weerstation ].feeltemperature
    val_TempGround              = jsonData.actual.stationmeasurements[ weerstation ].groundtemperature
    val_Visibility              = jsonData.actual.stationmeasurements[ weerstation ].visibility/1000
    val_SunPower               	= jsonData.actual.stationmeasurements[ weerstation ].sunpower    
    val_WindDirection           = jsonData.actual.stationmeasurements[ weerstation ].winddirection
    val_WindDegrees             = jsonData.actual.stationmeasurements[ weerstation ].winddirectiondegrees
    val_WindSpeed              	= jsonData.actual.stationmeasurements[ weerstation ].windspeed*10
    val_WindGust              	= jsonData.actual.stationmeasurements[ weerstation ].windgusts*10
    val_Humidity        		= jsonData.actual.stationmeasurements[ weerstation ].humidity
    val_Pressure                = round(jsonData.actual.stationmeasurements[ weerstation ].airpressure,0)
    val_WeatherTomorrow			= jsonData.forecast.fivedayforecast[1].weatherdescription        
    val_SunChanceTomorrow		= jsonData.forecast.fivedayforecast[1].sunChance
    val_RainChanceTomorrow      = jsonData.forecast.fivedayforecast[1].rainChance        
    val_RainMinimum             = jsonData.forecast.fivedayforecast[1].mmRainMin
    val_RainMaximum             = jsonData.forecast.fivedayforecast[1].mmRainMax
    val_WindDirectionTomorrow   = jsonData.forecast.fivedayforecast[1].windDirection        
    val_WindSpeedTomorrow       = jsonData.forecast.fivedayforecast[1].wind        
    val_TempTomorrowMinMin    	= jsonData.forecast.fivedayforecast[1].mintemperatureMin --minimale minimumtemperatuur
    val_TempTomorrowMaxMin    	= jsonData.forecast.fivedayforecast[1].mintemperatureMax --maximale minimumtemperatuur
    val_TempTomorrowMinMax    	= jsonData.forecast.fivedayforecast[1].maxtemperatureMin --minimale maximumtemperatuur
    val_TempTomorrowMaxMax    	= jsonData.forecast.fivedayforecast[1].maxtemperatureMax --maximale maximumtemperatuur
end

-- Windrichting naar Engelse afkorting
local val_WindDirectionEnglish = N
    if val_WindDirection == "N" then val_WindDirectionEnglish = "N"
        elseif val_WindDirection == "NNO"    then val_WindDirectionEnglish = "NNE"
        elseif val_WindDirection == "NO"     then val_WindDirectionEnglish = "NE"
        elseif val_WindDirection == "ONO"    then val_WindDirectionEnglish = "ENE"
        elseif val_WindDirection == "O"      then val_WindDirectionEnglish = "E"
        elseif val_WindDirection == "OZO"    then val_WindDirectionEnglish = "ESE" 
        elseif val_WindDirection == "ZO"     then val_WindDirectionEnglish = "SE" 
        elseif val_WindDirection == "ZZO"    then val_WindDirectionEnglish = "SSE" 
        elseif val_WindDirection == "Z"      then val_WindDirectionEnglish = "S" 
        elseif val_WindDirection == "ZZW"    then val_WindDirectionEnglish = "SSW" 
        elseif val_WindDirection == "ZW"     then val_WindDirectionEnglish = "SW"     
        elseif val_WindDirection == "WZW"    then val_WindDirectionEnglish = "WSW"
        elseif val_WindDirection == "W"      then val_WindDirectionEnglish = "W"
        elseif val_WindDirection == "WNW"    then val_WindDirectionEnglish = "WNW"
        elseif val_WindDirection == "NW"     then val_WindDirectionEnglish = "NW"
        elseif val_WindDirection == "NNW"    then val_WindDirectionEnglish = "NNW"
    end

-- Vochtigheidsstatus bepalen (0=Normal, 1=Comfortable, 2=Dry, 3=Wet)
  if tonumber(otherdevices['Dauwpunt']) >= 20     then val_HS = "3" -- wet
  elseif tonumber(otherdevices['Dauwpunt']) >= 10 then val_HS = "1" -- confortable
  else val_HS = "2"                                                 -- dry
  end

--Luchtdruk-omschrijving bepalen
 local BaroVS = 0
    if val_Pressure == nil          then BaroVS = 5          -- 5 = unknown 
        elseif val_Pressure < 966   then BaroVS = 4          -- 4 = thunderstorm
        elseif val_Pressure < 993   then BaroVS = 6          -- 6 = cloudy/rain
        elseif val_Pressure < 1007  then BaroVS = 2          -- 2 = cloudy
        elseif val_Pressure < 1013  then BaroVS = 3          -- 3 = unstable
        elseif val_Pressure < 1033  then BaroVS = 0          -- 0 = stable
        elseif val_Pressure < 1050  then BaroVS = 1          -- 1 = sunny
    end

--Min/Max. temperatuur bepalen
if val_TempTomorrowMinMin == val_TempTomorrowMaxMin then TempMinimum = val_TempTomorrowMinMin
    else TempMinimum = val_TempTomorrowMinMin.." - "..val_TempTomorrowMaxMin end
if val_TempTomorrowMinMax == val_TempTomorrowMaxMax then TempMaximum = val_TempTomorrowMinMax
    else TempMaximum = val_TempTomorrowMinMax.." - "..val_TempTomorrowMaxMax
end

--Regenhoeveeldheid bepalen
if val_RainMinimum == val_RainMaximum then RainIntensity = val_RainMinimum
    else RainIntensity = val_RainMinimum.." - "..val_RainMaximum end

-- Windrichting tekst bepalen
if val_WindDirectionTomorrow == "z" or val_WindDirectionTomorrow == "Z" then WindDirectionTomorrow = " het zuiden"
    elseif val_WindDirectionTomorrow == "zw" or val_WindDirectionTomorrow == "ZW" then WindDirectionTomorrow = "het zuidwesten"
    elseif val_WindDirectionTomorrow == "zo" or val_WindDirectionTomorrow == "ZO" then WindDirectionTomorrow = "het zuidoosten"
    elseif val_WindDirectionTomorrow == "w" or val_WindDirectionTomorrow == "W" then WindDirectionTomorrow = "het westen"
    elseif val_WindDirectionTomorrow == "nw" or val_WindDirectionTomorrow == "NW" then WindDirectionTomorrow = "het noordwesten"
    elseif val_WindDirectionTomorrow == "n" or val_WindDirectionTomorrow == "N" then WindDirectionTomorrow = "het noorden"
    elseif val_WindDirectionTomorrow == "no" or val_WindDirectionTomorrow == "NO" then WindDirectionTomorrow = " het noordoosten"
    elseif val_WindDirectionTomorrow == "o" or val_WindDirectionTomorrow == "O" then WindDirectionTomorrow = "het oosten"
    else WindDirectionTomorrow = "variabele richtingen" end

--Voorspellingen
forecast=val_WeatherTomorrow.. "\n " .."\n".. "Komende nacht daalt de temperatuur naar "..TempMinimum.." °C. Morgen overdag wordt morgen maximaal "..TempMaximum.. " °C. Er is morgen "..val_SunChanceTomorrow.." % kans op zon en "..val_RainChanceTomorrow.." % kans op neerslag ("..RainIntensity.." mm). De wind komt uit "..WindDirectionTomorrow.." en zal kracht "..val_WindSpeedTomorrow.." Bft hebben." .."\n " .."\n "

if otherdevices_svalues[dev_TextTomorrow] ~= forecast then UpdateDev(dev_TextTomorrow,0,forecast) end

-- Updating domoticz devices
    UpdateDev(dev_TempGround,0,val_TempGround)     
    UpdateDev(dev_TempOutside,0,val_TempOutside)
    UpdateDev(dev_TempApperent,0,val_TempApperent)
    UpdateDev(dev_Visibility,0,val_Visibility)
    UpdateDev(dev_SunPower,0,val_SunPower)
    UpdateDev(dev_Wind,0,val_WindDegrees..";"..val_WindDirectionEnglish..";"..val_WindSpeed..";"..val_WindGust..";"..val_TempOutside..";"..val_TempApperent)
    UpdateDev(dev_Humidity,val_Humidity.."|"..val_HS)
    UpdateDev(dev_Pressure,0,val_Pressure..";"..BaroVS)

if debug==1 then
    print ("Temperatuur grond: "..val_TempGround.." °C") 
    print ("Temperatuur buiten: "..val_TempOutside.." °C") 
    print ("Temperatuur gevoel: "..val_TempApperent.." °C")
    print ("Zicht: "..val_Visibility.." km")
    print ("Zonkracht: "..val_SunPower.." Watt/m2")
    print ("Wind: "..round((val_WindSpeed/10),0).." Bft, ")
    print ("Luchtvochtigheid: "..val_Humidity.." %")
    print ("Luchtdruk: "..val_Pressure.." hPa")
end

end
---------------------------------------
-- ######## Darksy API call ######## --
---------------------------------------

if  ((time.min+2)%5)==0  then -- Script loopt iedere 5 minuten (bv. 11.03, 11.08, 11.13, 11.18, etc.
    json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()  -- For Linux
    local config=assert(io.popen('curl "https://api.darksky.net/forecast/'..api_key..'/'..coord..'?lang='..language..'&units=si&exclude=hourly,flags"'))
    local Stringjson = config:read('*all')
    config:close()
    local jsonData = json:decode(Stringjson)

-- Convert the json to a LUA table
   if jsonData ~= nil then  -- this sometimes happens around midnight
        val_UV          = jsonData.currently.uvIndex
        val_Ozone       = jsonData.currently.ozone
        val_DewPoint    = round(jsonData.currently.dewPoint,1)
        val_CloudCover	= jsonData.currently.cloudCover*100
end

if jsonData.alerts[1] ~= nil then 
    val_alert_severity = jsonData.alerts[1].severity
    val_alert_time = jsonData.alerts[1].time
    val_alert_text = jsonData.alerts[1].description
    val_alert_title = jsonData.alerts[1].title else
        val_alert_severity = "1"
        val_alert_title = "GEEN WAARSCHUWINGEN"
        val_alert_text = "Er zijn geen waarschuwingen bekend" 
end

if val_alert_severity == "advisory" then val_alert_severity = "2"
    elseif val_alert_severity == "watch" then val_alert_severity = "3"
    elseif val_alert_severity == "warning" then val_alert_severity = "4" 
end

if jsonData.alerts[2] ~= nil then 
    val_alert_time2 = jsonData.alerts[2].time
    val_alert_text2 = jsonData.alerts[2].description
    val_alert_title2 = jsonData.alerts[2].title 
    else val_alert_text2 = ""
         val_alert_title2 = "" 
end

-- Weerswaarschuwing
    alert=val_alert_title.."<br>"..val_alert_text.."<br><br>"..val_alert_title2.."<br>"..val_alert_text2
    
    if debug==1 then
        print("Bewolkingsgraad : "..val_CloudCover.. " %")
        print("UV-kracht :"..val_UV)
        print("Ozone : De ozone-waarde is "..val_Ozone) 
        print("Dauwpunt : "..val_DewPoint.. " °C")
    end
    
-- Domoticz devices updaten
    UpdateDev(dev_CloudCover,0,val_CloudCover)
    UpdateDev(dev_DewPoint,0,val_DewPoint)
    UpdateDev(dev_UV,0,val_UV..";0")
    UpdateDev(dev_Ozone,0,val_Ozone)
 
    if otherdevices_svalues[dev_Alert] ~= alert then UpdateDev(dev_Alert,val_alert_severity.."|"..val_alert_title.."<br>"..val_alert_text.."<br><br>"..val_alert_title2.."<br>"..val_alert_text2) end

if debug==1 then
    print ("Dauwpunt: "..val_DewPoint.." °C")
    print ("Bewolkingsgraad: "..val_CloudCover.." %")
    print ("UV-Index: "..val_UV)
    print ("Ozone: "..val_Ozone)
end

end
-------------------------------------------------------
-- ######## Buienradar Verwachting API call ######## --
-------------------------------------------------------
if  ((time.min+1)%30)==0  then -- Script loopt iedere 5 minuten (bv. 11.03, 11.08, 11.13, 11.18, etc.
    json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()  -- For Linux
    local config=assert(io.popen('curl "https://api.buienradar.nl/data/public/1.1/jsonfeed"'))
    local Stringjson = config:read('*all')
    config:close()
    local jsonData = json:decode(Stringjson)

-- Convert the json to a LUA table
    val_LongText = jsonData.buienradarnl.weergegevens.verwachting_vandaag.titel .."\n " .."\n ".. jsonData.buienradarnl.weergegevens.verwachting_vandaag.tekst .."\n " .."\n"
    val_TextShort    = jsonData.buienradarnl.weergegevens.verwachting_meerdaags.tekst_middellang["@periode"] .."\n " .."\n ".. jsonData.buienradarnl.weergegevens.verwachting_meerdaags.tekst_middellang["#text"] .."\n " .."\n"
    val_TextLong    = jsonData.buienradarnl.weergegevens.verwachting_meerdaags.tekst_lang["@periode"] .."\n " .."\n ".. jsonData.buienradarnl.weergegevens.verwachting_meerdaags.tekst_lang["#text"] .."\n " .."\n"

if otherdevices_svalues[dev_LongText] ~= val_LongText then UpdateDev(dev_LongText,0,val_LongText) end
if otherdevices_svalues[dev_TextLong] ~= val_TextLong then UpdateDev(dev_TextLong,0,val_TextLong) end
if otherdevices_svalues[dev_TextShort] ~= val_TextShort then UpdateDev(dev_TextShort,0,val_TextShort) end

end

return commandArray

14 gedachten over “Maak van Domoticz een weerstation – Deel 1

  • 25 november 2018 om 13:01
    Permalink

    Hoi Joost,

    Ik heb je script geprobeerd maar ik loop tegen deze error aan.

    2018-11-25 13:00:00.649 Error: EventSystem: in weer: [string “–[[ WEERSTATIONS:
    …”]:49: attempt to concatenate local ‘lat’ (a nil value)

    Weet jij zo de oplossing?

    Beantwoorden
    • 25 november 2018 om 13:41
      Permalink

      Dat betreft een fout in de user variable LatitudeThuis.

      Heb je als type ‘String’ en bij value een punt i.p.v. een komma gebruikt? Ook de naam van de user variable moet exact overeenkomen.

      Beantwoorden
  • 25 november 2018 om 15:55
    Permalink

    Hier zelfde error:
    ‘2018-11-25 15:50:00.239 Error: EventSystem: in Weerstation: [string “–[[ WEERSTATIONS:…”]:49: attempt to concatenate local ‘lon’ (a nil value)’

    Ik heb de exacte naam gebruik (gekopieerd) en de coordinaten zijn met een punt:
    LongitudeThuis
    Type: string
    4.797033800000008

    LatitudeThuis
    Type: string
    52.6813991

    Wat kan het probleem zijn?

    Beantwoorden
    • 25 november 2018 om 18:14
      Permalink

      Probeer het eens met wat minder decimalen, op zich zijn 3 decimalen al voldoende (nauwkeurigheid van 111 meter).

      Beantwoorden
  • 28 november 2018 om 16:35
    Permalink

    Hoi Joost,

    Ik krijg onderstaande melding:
    EventSystem: in Weer: [string “–[[ WEERSTATIONS:…”]:71: attempt to call a nil value

    Een gedeelte van de waardes worden wel gevuld maar met name de temperatuur waardes niet. Weet jij misschien wat er fout gaat?

    Gr. Tinus

    Beantwoorden
    • 28 november 2018 om 19:35
      Permalink

      Hoi Tinus,

      Ik neem aan dat je het script 1 op 1 overgenomen hebt?
      Zo ja, kijk eens of /home/pi/domoticz/scripts/lua/JSON.lua aanwezig is op je Raspberry…

      Beantwoorden
      • 29 november 2018 om 13:26
        Permalink

        Hoi Joost,

        Ik draai het op een Synology NAS en die heeft een ander pad. Ik heb het pad aangepast en nu doen de meeste het wel maar nog niet allemaal. Ik zal vanavond even er wat dieper induiken. Hieronder de foutmelding op dit moment.

        Gr. Tinus

        2018-11-29 13:18:00.691 Status: LUA: Temperatuur grond: 8.8 °C
        2018-11-29 13:18:00.691 Status: LUA: Temperatuur buiten: 8.9 °C
        2018-11-29 13:18:00.691 Status: LUA: Temperatuur gevoel: 5.8 °C
        2018-11-29 13:18:00.691 Status: LUA: Zicht: 14 km
        2018-11-29 13:18:00.691 Status: LUA: Zonkracht: 46 Watt/m2
        2018-11-29 13:18:00.691 Status: LUA: Wind: 6 Bft,
        2018-11-29 13:18:00.691 Status: LUA: Luchtvochtigheid: 92 %
        2018-11-29 13:18:00.691 Status: LUA: Luchtdruk: 1010 hPa
        2018-11-29 13:18:01.465 Status: LUA: Bewolkingsgraad : 86 %
        2018-11-29 13:18:01.466 Status: LUA: UV-kracht :0
        2018-11-29 13:18:01.466 Status: LUA: Ozone : De ozone-waarde is 272.86
        2018-11-29 13:18:01.466 Status: LUA: Dauwpunt : 8 °C
        2018-11-29 13:18:01.526 Status: EventSystem: Script event triggered: Weer
        2018-11-29 13:18:01.466 Error: EventSystem: in Weer: [string “–[[ WEERSTATIONS:…”]:53: attempt to concatenate field ‘?’ (a nil value)

        Beantwoorden
        • 29 november 2018 om 18:02
          Permalink

          Heb je het pad op alle 3 de regels (71, 194 en 261) aangepast?

          Beantwoorden
          • 29 november 2018 om 20:15
            Permalink

            Ja, heb ik gedaan.

            Deze melding gaat weg als ik “UpdateDev(dev_CloudCover,0,val_CloudCover)” uit becommentarieer. Waarschijnlijk zit daar de fout.

          • 29 november 2018 om 22:12
            Permalink

            Het kan zijn dat CloudCover in jouw regio (tijdelijk) niet beschikbaar is, dan krijg je een foutmelding in de log te zien. De regel is verder gewoon goed, alleen de fout-afhandeling is nog niet optimaal in het script. Kijk het eens een paar uurtjes aan…

  • 30 november 2018 om 12:16
    Permalink

    ik heb mijn coordinaten aangepast naar 3 decimalen en ook even gekeken of JSON.lua aanwezig is op mijn raspberry in map LUA. Dit is het geval. Ik krijg echter nog steeds de foutmelding:
    ‘2018-11-30 12:13:00.193 Error: EventSystem: in Weerstation: [string “–[[ WEERSTATIONS:…”]:49: attempt to concatenate local ‘lon’ (a nil value)’

    Iemand nog een suggestie?

    Beantwoorden
    • 30 november 2018 om 22:47
      Permalink

      Probeer deze coördinaten eens:
      52.6742
      4.8056

      Beantwoorden
  • 30 november 2018 om 19:58
    Permalink

    Hoi Joost,

    Ik had ook nog een typefout in de sensors :), nu werkt alles behalve de bevolkingsgraad maar die kan ik wel missen.

    Dank voor jouw support!

    Inmiddels het speedtest script van jou ook al draaien.

    Gr. Tinus

    Beantwoorden
  • 1 december 2018 om 10:02
    Permalink

    Ik heb de genoemde coordinaten geprobeerd maar zelfde foutmelding helaas.

    Beantwoorden

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *