WAN IP Checker in Domoticz

Wellicht zal je het wel eens meegemaakt hebben: je bent op vakantie of zakenreis, probeert via VPN op je thuisnetwerk in te loggen, maar je kunt geen verbinding maken. Bij thuiskomst blijkt dat jouw internetprovider je publieke IP-adres thuis heeft gewijzigd. Veel internetprovider gebruiken dynamische IP-adressen en informeren jou niet indien het dynamische IP-adres gewijzigd is. Je zou dan een DynDNS-service kunnen gebruiken, maar wij hebben een makkelijkere oplossing: De WAN IP Checker in Domoticz.

WAN IP Checker

De WAN IP Check is een simpel script dat je op jouw Raspberry Pi zet. Het script draait meermaals per dag en vergelijkt het huidige IP-adres met het IP-adres van de vorige check. Het script zal standaard iedere vier uur draaien, maar je kunt dat zelf eenvoudig aanpassen naar bijvoorbeeld ieder uur. Het huidige IP-adres wordt in een tijdelijk bestandje opgeslagen en vergeleken met het IP-adres van de volgende check. Indien de IP-adressen niet gelijk zijn dan krijg je automatisch een notificatie hiervan. Deze notificatie kun je per email ontvangen, maar ook als push-bericht op je smartphone of tablet, afhankelijk van wat je in Domoticz hebt ingesteld.

Voorbereiding

Mocht je Python3 nog nooit eerder geïnstalleerd hebben dan moet je dat eerst doen:

sudo apt-get install python3
sudo apt-get install python3-dev

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 “Text” en geef “WAN IP” als naam van de sensor:

WAN IP Checker

WAN IP Checker Script

De voorbereidingen zijn klaar, nu is het tijd voor het WAN IP Checker script. Ga naar Setup > More Options > Events. Maak hier een nieuw event aan van het type “dvEvents”. Kopieer onderstaand script naar het event, zet het event op active en sla het op.

return {
on = {
timer = { 'every 4 hours' }
},

logging = {
level = domoticz.LOG_FORCE,
marker = '[WAN IP]'
},

execute = function(dz, devNil)

local dzb = dz.LOG_FORCE
local getIp = 'curl -s http://whatismyip.akamai.com/'
local tmpFile = '/home/pi/domoticz/scripts/wanip.txt'
local actIp = ''
local devIp = dz.devices('WAN IP')
local currIp = devIp.text

os.execute(getIp..' > '..tmpFile)
actIp = io.open(tmpFile):read()

if actIp == nil then actIp = 'Cannot retrieve WAN IP' end 

if actIp ~= currIp then
msgTxt = 'WAN IP has changed: '..currIp..' ==> '..actIp
dz.log(msgTxt, dzb)
dz.notify('WAN IP', msgTxt, dz.PRIORITY_EMERGENCY)
devIp.updateText(actIp)
os.execute('rm '..tmpFile)
else 
dz.log('No change in WAN IP', dzb)
end 
end
}

Het script zal nu iedere 4 uur je publieke IP-adres checken. Indien er een wijziging is krijg je automatisch een melding via email of als push-bericht op je telefoon (afhankelijk van wat je bij Setup > Settings > Notitications / Email  hebt ingesteld.

WAN IP Checker

 

Bron: cmartens75, domoticz forum

Geef een reactie

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