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

9 gedachten over “WAN IP Checker in Domoticz

  • 23 november 2018 om 12:20
    Permalink

    Ik heb Domoticz op een Synology NAS draaien en krijg als uitkomst “Hello World”.
    Enig idee?

    Beantwoorden
  • 23 november 2018 om 12:33
    Permalink

    Staan er fouten in de log? “Hello World” is een standaard tekst dit er staan als het script nog niet (goed) gedraaid heeft.

    Beantwoorden
    • 23 november 2018 om 14:25
      Permalink

      Ik zie geen fouten. Vreemde is dat “Hello World” ook niet elke 4 uur in de log verschijnt. Alleen de tijd van aanmaken staat er in, dus het lijkt er ook op dat het script niet draait/ververst.
      Het dzVents script staat actief.
      De Virtuele sensor heb ik dezelfde naam gegeven (WAN IP) en het script verder niet aangepast.

      Beantwoorden
  • 24 november 2018 om 21:52
    Permalink

    Hier hetzelfde. Alles in “dzVents” aangemaakt en de stappen die hiervoor staan vermeld. Ik zie alleen geen ipadres verschijnen. Wordt alleen een ander ip adres getoond? Als ik het script bekijk zie ik dat ie ook het huidige ip adres toont in Domoticz. In logs zie ik geen problemen.

    Beantwoorden
  • 24 november 2018 om 22:09
    Permalink

    Probeer eens om het bestand wanip.txt in de juiste folder handmatig aan te maken en 755 rechten te geven…

    Beantwoorden
    • 30 november 2018 om 11:37
      Permalink

      Die kan ik nergens vinden en eerlijkgezegd ook geen idee waar die zou moeten staan.
      In de Domoticz folder staat deze in ieder geval niet.

      Beantwoorden
      • 30 november 2018 om 16:05
        Permalink

        Zie nu waar de .txt moet komen, de locatie in het script klopt niet bij domoticz op synology.
        Ik heb de locatie aangepast en nu werkt het wel. Toppie!

        Beantwoorden
  • 30 november 2018 om 21:34
    Permalink

    Ja ben een beetje een leek op dat gebied. Hoe kan ik dat aanpassen in putty.

    Beantwoorden
    • 30 november 2018 om 22:40
      Permalink

      sudo touch /home/pi/domoticz/scripts/wanip.txt
      sudo chmod +x /home/pi/domoticz/scripts/wanip.txt

      Beantwoorden

Geef een reactie

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