DomoticzLUA scripts
8 april 201827 oktober 2018Joost
In dit artikel leggen we uit hoe je gegevens van een extern weerstation automatisch ophaalt en in Domoticz weer kunt geven. We gaan gebruik maken van de weergegevens vanWeather Underground,welke je vervolgens heel gemakkelijk kunt gaan gebruiken in bv. Blockly events.
API-key Weather Underground
Allereerst hebben we een API-key nodig van Weather Underground, deze kun je geheel gratis aanmaken:
- Ga naar:http://www.wunderground.com/weather/api
- Klik rechtsboven op “JOIN”.
- Geef een email-adres en wachtwoord in, lees de Terms of Service en klik op “Sign Up for free”
- Binnen een paar minuten ontvang je een email met een URL om je account te activeren. Klik op deze URL.
- Log nu in met je nieuwe account.
- Ga naar de “Pricing” pagina:http://www.wunderground.com/weather/api/d/pricing.html
- Selecteer onderstaande opties:
- STRATUS PLAN
- Developer
- Het totaalbedrag zou 0 USD per maand moeten zijn.
- Klik op “Purchase Key”
- Vul de velden als volgt in:
- Contact name: (your name)
- Project contact e-mail: (your e-mail address)
- Project name: Domoticz
- Project website: http://www.domoticz.com
- Where will the API be used: Website
- Will the API be used for commercial use: No
- Will the API be used for manufacturing mobile chip processing: No
- A brief description: “I use the API for the greatest home automation project!” (of iets wat hier op lijkt 😉 )
- Vink beide check boxes aan. Uiteraard alleen als je met de voorwaarden akkoord gaat!
- Klik op “Purchase Key”
- Geweldig! Je hebt je nu succesvol aangemeld en hebt nu je persoonlijke (!) API-key (Key ID). Deze key heb je nodig bij het aanmaken van de virtuele hardware (volgende stap).
Virtuele hardware toevoegen
Net als bij echte hardware moet je nu eerst Weather Underground toevoegen als virtuele hardware. Zie het als een weerstation dat jou voorziet van weergegevens.
Eerst gaan we bepalen wat het ID van het weerstation is welke je wilt gaan gebruiken:
- Ga naarhttp://www.wunderground.com/wundermap
- Klik op “Map setting” en wijzig Fahrenheit naar Celsius
- Klik op “All layers” en controleer of “Weather Stations” aangevinkt is.
- Zoom in naar de locatie van jouw keuze.
- Klik op een weerstation (een kleine ballon met een temperatuur)
- Je ziet nu een pop-up met detail-informatie. Linksboven zie je “Station ID”
- Schrijf het ID op
Nu kun je dit weerstation toevoegen aan Domoticz:
- Ga naar je Domoticz web interface
- Rechtsboven klik je op “Setup” -> “Hardware”
- Gebruik de “Type” dropdown lijst en kies “Weather Underground”
- Vul de velden als volgt in:
- Name: Een logische naam voor de virtuele hardware
- Type: Weather Underground
- API Key: Vul je persoonlijk API-key van Weather Underground in
- Location: Station ID van Wundermap (Indien je gebruik maakt van een Personal Weather Station dan moet je “pws:” voor het Station ID zetten).
- Vergeet niet om op “Add” te klikken om je instellingen op te slaan!
- Zorg ervoor dat je ‘Accept new hardware’ aan hebt gevinkt in Setup -> Settings!
Check je log
Sla deze stap niet over! Of wil je niet weten of jouw virtuele hardware juist werkt?
- Klik op Setup -> Log
- Indien de hardware juist geïnstalleerd is zie je een regel als:
- Wed Jul 10 13:30:00 2013 (Wunderground Utrecht) Temperature + Humidity + Barometric (Utrecht Barometer)
- Is de hardware niet juist geïnstalleerd dan zal je onderstaande regel zien:
- Error: Sun Apr 8 10:40:30 2018 WUnderground: Invalid data received, or unknown location!
Voeg (virtuele) Devices toe
Nu begint het echt! Je virtuele weerstation geeft weergegevens door en deze wil je natuurlijk terugzien in je Domoticz interface!
- Klik op “Setup” -> “Devices”
- Je ziet nu 5 nieuwe (virtuele) devices:
- Barometer
- Wind (chill)
- UV index
- Rain
- Visibility
- In dit voorbeeld gaan we de “barometer” toevoegen aan jouw interface. Je kunt deze stappen herhalen voor ieder device dat je wil gaan gebruiken.
- Klik op het groene pijltje aan het einde van de regel van de barometer (type: Temp + Humidity + Baro)
- In de pop-up geef je een logische naam in
- Als dit een barometer in Nijmegen is dan kun je het bv. “Nijmegen barometer” noemen.
- Klik op “Add Device” om de naam op te slaan en het de device toe te voegen aan de interface.
- Je ziet dat het groene pijltje nu blauw is geworden.
- Klik nu maar eens op “Weather” of “Temperature” boven in de balk! Wow, dat is cool!
Alleen temperatuur
Standaard zal je bij de device ‘Temperature’ meerdere waarden zien, zoals luchtdruk, vochtigheid, etc. Indien je bv. de buitentemperatuur (of gevoelstemperatuur) wil gaan gebruiken in een Blockly event dan heb je een ‘single value’ nodig en geen waarde van de luchtvochtigheid.
Om deze ‘single value’ devices in Domoticz te tonen gaan we een aantal virtuele sensoren aanmaken:
- Ga naar Setup –> Hardware
- Kies bij “Type” voor “Dummy”, bedenk een logische naam en klik op “Add”
- Klik op “Create virtual sensor” en maak vervolgens onderstaande sensoren aan:
- Temperature sensor (voor buitentemperatuur)
- Temperature sensor (voor gevoelstemperatuur)
- Humidity sensor
- Barometer sensor
- Ga naar Setup -> Devices en zoek de sensoren die je zojuist aangemaakt hebt. Klik bij iedere sensor op het groene pijlte, zodat de device toegevoegd wordt aan je interface. Tevens noteer je het IDX van iedere nieuwe sensor (staat vooraan op iedere regel).
- Download dit script en pak het uit met een extractor, zoals WinRar.
- Ga naar /home/pi/domoticz/scripts/lua/ en plaats hier het script met de naam ‘script_device_weergegevens.lua’.
In het script moet je nog een paar wijzigingen doorvoeren:
- Pas de waarde van “sensorwu” en “sensorwu2” aan. Sensorwu is de naam van de gecombineerde temperatuursensor en Sensorwu2 is de naam van de gecombineerde windsensor (zie onderstaande afbeelding.
- Pas de IDX-nummers aan. Dit zijn de IDX-nummers van de virtuele sensoren die je zojuist hebt aangemaakt.
- Sla het script vervolgens op
Ga naar Setup -> Log, hier zal je iedere 10 minuten de volgende regel zien staan :Script event triggered: /home/pi/domoticz/scripts/lua/script_device_weergegevens.lua
Ga naar ‘Temperature’ en je zal nu zien dat jouw virtuele sensor dezelfde waarde heeft als de Weather Underground sensor, maar nu alleen met de temperatuur en geen andere waarden.
Mission completed, de virtuele temperatuursensor kan nu gebruikt worden in events!
Aantal keer bekeken: 2.055