Voor veel toepassingen in je smarthome is het handig om te weten of het gaat regenen. Gaat het regenen en is je zonnescherm nog uitgeklapt? Staat je zolderraam nog open? Of moet je de tuinkussens binnenhalen? Met deze informatie in Domoticz kun je een notificatie (berichtje) naar je telefoon sturen om je te waarschuwen!

Het GaatHetRegenen script is gebaseerd op het IsItGonnaRain script uit de wiki van Domoticz. Het is een al wat ouder script, dus ik heb ‘m up to date gemaakt met de nieuwe buienradar URL.

Als eindresultaat kun je een switch dummy in je overzicht krijgen die aan staat als het gaat regenen binnen 10 minuten. Je kunt er ook voor kiezen om een uservariable aan te maken die je in diverse scripts kunt uitlezen. Het is net wat je makkelijker vind.

Gaat het regenen?

Advertenties

Hieronder staat het script. Kopieer en plak deze in een nieuwe ‘Gebeurtenis’ van het type lua en time.

Plain Text

Pas de waarden lat en lon aan aan je eigen locatie. Je kunt ze vinden onder Instellingen -> Instellingen onder het kopje Locatie. Vul de coördinaten in met maximaal twee cijfers achter de punt.

Pas ook de locatie aan waar het tijdelijke bestand opgeslagen kan worden. Bij mij op de eerste HDD van de NAS in de map troep: volume1/Troep

Advertenties

Locatie in domoticz instellen

Maak een uservariable (Gebruikersvariabele) aan onder Instellingen -> Gebruikersvariabele. Noem de variabele GaatHetRegenen.

GaatHetRegenen variabele

Als je wilt kun je ook een switch dummy aanmaken met de naam GaatHetRegenen onder Instellingen -> Hardware. Je moet in het script dan

commandArray['Variable:GaatHetRegenen'] = tostring(1)

vervangen voor:

commandArray['GaatHetRegenen'] = "On"

en

commandArray['Variable:GaatHetRegenen'] = tostring(0)

voor

commandArray['GaatHetRegenen'] = "Off"

Notification

Als je gebruik maakt van de GaatHetRegenen dummy switch, kun je heel simpel notificaties laten sturen als het gaat regenen. Klik hiervoor op de notificaties knop onder de switch. Stel hier het bericht in en laat in iedergeval GCM (Google Cloud Messaging) aangevinkt staan als de de notificaties wilt ontvangen via de Domoticz App.

De vraag is of je dat wel wilt. Stel je voor op een druilerige herfstdag: de hele dag door krijg je berichtjes dat het gaat regenen. Niet zo boeiend. Wat wel handig is, als Domoticz die berichtjes stuurt als de buitendeur of zolderraam openstaat of het zonnescherm nog uitgeklapt is terwijl het binnen 10 minuten gaat regenen! Met behulp van een Deur- of Raamcontact van KlikAanKlikUit kun je de status van je raam of deur doorgeven aan domoticz. Hoe je dit allemaal voor elkaar krijgt lees je in een volgend artikel.

Advertenties

Doe mee met de conversatie

10 reacties

  1. Hi!

    Het script is niet helemaal in orde hoor. De opmaak is volledig door de war, waardoor er commando’s achter elkaar staan in plaats van onder elkaar en de if statements volledig mis lopen. Dacht dat ik dat had hersteld, maar nu blijft Domoticz de volgende melding geven:

    Error: EventSystem: in Regen: [string “———————————————…”]:76: attempt to perform arithmetic on global ‘regen’ (a nil value)

    Er gaat dus ergens nog iets niet goed, maar ik kan niet vinden waar.

    Groeten,

    Martijn

    1. Hoi Martijn,

      Leuk je weer terug te zien! Ik heb de post aangepast en de code tussen code tags geplaatst zodat WordPress snapt dat ie die tekst niet anders moet formatteren. Ik hoop dat het zo goed gaat!

      Groet Wouter

  2. Ik zie alleen nog wel iets anders. Moet de UserVariable echt een Integr zijn? In de code maar je er namelijk juist een string van:

    CommandArray[‘Variable:GaatHetRegenen’] = tostring(1)

    Ben benieuwd.

    1. Ja ik zie wat je bedoeld. Het is wel vreemd dat het dan toch werkt 🙂
      Je kunt het wel aanpassen, maakt niet zoveel uit denk ik.

  3. Bedankt voor het script, werkt goed.
    Het “triggert” nu iedere minuut, kan het ook aanpast worden naar om de 5 minuten?

    1. Hoi John,

      Leuk dat je reageert. Domoticz kent helaas niet zo’n instelling. Ieder script van het type time wordt standaard iedere minuut uitgevoerd.

      Je kunt op regel 17 een extra if then else invoegen die checkt wanneer je variabele of dummy is gewijzigd. Als die langer dan 5 minuten niet gewijzigd is, voer ie het script uit, anders niet. Moet je natuurlijk wel een klein beetje met lua overweg kunnen.

      Succes!

      Wouter

  4. Bedankt voor je reactie Wouter, dat wordt gewaardeerd. Nu begrijp ik ook waarom ik in het script geen tijd kon vinden wanneer het actief werd.
    LUA scripting is helaas wast lastig voor ons, dus als je een keer 5 minuutjes over hebt dan houden we ons aanbevolen!

  5. Hoi,
    bedankt hiervoor. Precies wat ik zoek. Ik heb echter het script 1 op 1 overgenomen en krijg de volgende error in de in log:
    Error: EventSystem: in GaatHetRegenen: [string “———————————————…”]:38: attempt to index global ‘file’ (a nil value)

    Doe ik iets verkeerd?

    gr
    Johan

    1. Beste Johan,

      In het script staat een ‘tempfilename’ parameter. Deze verwijst naar een locatie op je NAS of Raspberry Pi. Weet je zeker dat die bestaat? Vervang dat door een locatie die wel bestaat en het werkt waarschijnlijk direct!

      Succes!

      Wouter

Laat een reactie achter

Laat weten wat je van dit artikel vindt!

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

%d bloggers liken dit: