Categorieën
Domotica Domoticz Scripts Synology

Aanwezigheidsdetectie in Domoticz

Om Domoticz te laten detecteren of je thuis bent kun je presence detection gebruiken. Door een vast ip adres van je telefoon te zoeken (pingen) binnen je thuisnetwerk stelt Domoticz vast of je thuis bent ja of nee. Met deze informatie kun je weer automatisch acties laten uitvoeren. Deze guide is er omdat het stappenplan in de wiki van Domoticz gebaseerd is op een installatie op een Raspberry Pi, terwijl ik een Synology NAS gebruik. Veel stappen komen overeen, maar soms moet je wat extra acties doen om het te laten werken. Hier lees je hoe je dat doet. Je kunt deze guide ook gebruiken als je bijvoorbeeld van je TV, Tablet, Mediacenter of ander netwerk apparaat wilt weten of ie online is (en dus aanstaat).

Om aan de slag te gaan om je smartphone, TV of ander apparaat dat je wilt detecteren, te kunnen detecteren moet je een vast IP-adres instellen. In het geval van een smartphone niet op je apparaat zelf, maar in de router. Dat gaat dmv een static DHCP lease. Dat is een IP adres wat de router altijd aan dit apparaat geeft. Hij bepaalt dat obv het unieke MAC adres. Een uniek apparaat adres dus. Omdat je je telefoon op meerdere plekken (en dus meerdere netwerken) gebruikt kun je je telefoon geen vast IP adres geven. Je zou dan bij ieder netwerk van instellingen moeten switchen. Daarom gebruiken we de static DHCP lease functie uit de router. Voor een TV, Mediacenter of ander apparaat wat altijd binnen je eigen netwerk blijft kun je wel gewoon een vast ip adres instellen op het apparaat zelf. Je kunt dan stap 1 overslaan.

Let op: deze manier van presence detection is wat lastiger voor de beginner. Gelukkig hoeft dat geen probleem te zijn! Je kunt gebruik maken van mijn Ping script wat op hetzelfde neerkomt. Voordeel van de onderstaande manier is dat je Domoticz ontlast van het presence detection proces.

1. Stel je router juist in

Surf naar de webinterface van de modem/router. In mijn geval het standaard Ziggo modem (Cisco EPC3928AD). Log in met je inloggegevens (standaard is dat ziggo en draadloos). Klik op Geavanceerd, daarna ga je naar LAN Setup -> Connected Devices Summary.

Check of je telefoons IP-adres in het lijstje staat, zo niet, voeg ‘m toe. Onthoud of noteer het IP adres en MAC-adres wat de router je telefoon geeft.

Presence detection Domoticz
Instellingen Ziggo Modem

Let op: na een stroomonderbreking kan de ziggomodem ineens een ander adres toewijzen aan je apparaat. Je kunt de modem forceren om toch jouw gekozen ip-adres toe te wijzen aan dat apparaat. Dit kun je doen door middel van het MAC-adres en ip-adres in te vullen in het Pre-assigned DHCP IP adresses venster. Mocht je modem het adress steeds vergeten of ‘m niet willen toevoegen, schakel dan DHCP even uit en zet het direct weer aan terwijl je de (WiFi) verbinding met je apparaat ook verbreekt. Vul nu je IP-adres en MAC adres in en je zult zien dat de modem het nu wel onthoud.

Let op 2: door een bug in de Ziggo firmware vergeet het ziggomodem na een stroomonderbreking ook vaak de ingestelde Pre-assigned DHCP adressen. Je moet dit voor ieder adres dan opnieuw instellen in het modem volgens bovenstaande manier.

2. Domoticz instellen

Ga naar de webinterface van Domoticz en  klik op Hardware in het menu. Voeg nieuwe hardware toe door het volgende in te voeren:

  • Type: Dummy switch
  • Name: bijvoorbeeld Samsung S5
  • Gegevens timeout: niet actief
dummy switch

Klik op Schakelaars, daarna op Handmatig. Je krijgt nu opties hoe en waarmee de schakelaar te schakelen. De schakelaar moet gaan reageren op de dummy switch, welke we straks met een script gaan aan en uit zetten. We kiezen dus voor de zojuist aangemaakte Dummy switch, de andere waarden hoef je niet aan te zitten.

Ga nu naar Apparaten in het menu. Hier staat nu de schakelaar in de apparatenlijst. Kijk in de lijst wat de IDX is van je schakelaar. Onthoud die.

3. Configureren van het script

Nu gaan we ervoor zorgen dat de switch aan en uit gezet word door een ping commando te versturen naar de smartphone. Als de telefoon reageert ben je thuis, zo niet, niet. (of staat de WiFi uit van je telefoon). Om te kunnen pingen hebben we een scriptje nodig dat die actie uitvoert. Dat script plaatsen we op de NAS en laten de NAS dat om de x minuten uitvoeren.

Om het script op de NAS in een beveilgde Domoticz map te zetten hebben we SCP toegang op de NAS nodig. Als je al eens eerder via SSH, SCP of Putty contact gehad hebt met de NAS kun je deze stap waarschijnlijk overslaan.

Gebruikers van DSM 6 kunnen niet zomaar de benodigde ‘root’ toegang verkrijgen op de NAS. Deze gebruikers moeten eerst Root toegang verkrijgen op de NAS. Gelukkig is dat eenvoudig. Mocht je er toch niet uitkomen, kun gebruik maken van mijn ping script. Natuurlijk kunnen DSM 5 gebruikers dit script ook gebruiken!

3.1 SSH/SCP activeren op de NAS

Log in op je NAS met admin rechten en ga naar het configuratiescherm. Klik op Terminal en SNMP en vink SSH toegang aan. Onthoud het poortnummer.

Om te communiceren met de NAS via deze speciale verbinding hebben we een apart programma nodig. Download en installeer WinSCP. Maak een nieuwe verbinding in WinSCP aan.

  • Type SCP
  • Gebruikersnaam admin of root
  • Wachtwoord je admin wachtwoord van de NAS
winscp

Je krijgt nu een soort verkenner in beeld. Navigeer naar de map: /volume1/@appstore/domoticz/var/scripts (tenzij je domoticz op volume2 of hoger geïnstalleerd hebt).

Maak hier een nieuw bestand aan met de volgende inhoud:

Shell

Pas de gegevens aan boven ‘ # DO NOT MODIFY BELOW HERE ‘ en sla het bestand op. Gebruik een makkelijke en korte naam zonder speciale tekens of spaties. Bijvoorbeeld ‘PrecenseSamsung.sh’.

Lukt het niet of krijg je vreemde fouten?

Je kunt hier ook het script downloaden en dan aanpassen en uploaden via WinSCP naar je NAS.
Om het script te kunnen uitvoeren moeten we het executeble (uitvoerbaar) maken. Dat kunnen we doen met een chmod commando in Putty.

4. Maak script executable

Om SSH commando’s te versturen naar de NAS, wat nodig is om het script executable te maken, hebben we Putty nodig. Download en installeer Putty. Putty lijkt erg op een DOS prompt scherm uit Windows. Maak een verbinding met de volgende gegevens:

  • Type: SSH
  • Gebruikersnaam root of admin
  • Wachtwoord: je admin wachtwoord

Heb je DSM versie 6 of hoger? Dan is het root account gedeactiveerd. Volg dan eerst stap 4.1 anders kun je deze overslaan.

Vind je deze stappen te ingewikkeld of lukt het niet? Je kunt ook gebruik maken van mijn ping script!

4.1. Activeren root op DSM 6 en hoger

Gebruikers van DSM 6 en hoger kunnen niet zomaar de benodigde ‘root’ toegang verkrijgen op de NAS. Deze gebruikers moeten eerst Root toegang verkrijgen op de NAS. Gelukkig is dat eenvoudig.

4.2 Maak script uitvoerbaar

Navigeer naar de map met daarin het script dmv het volgende commando:

Shell

Nu kunnen we het bestand uitvoerbaar maken door

Shell

Je krijgt helaas geen enkele terugkoppeling of het is gelukt of niet. We gaan ervan uit van wel en gaan nu instellen dat het script iedere x minuten uitgevoerd wordt. Dat doen we in DSM van de NAS.

5. Maak cronjob aan

Ga in het configuratiescherm van de NAS naar Taakplanner. Klik hier op maken en op ‘door gebruiker gedefinieerd script’. Als gebruiker kun je “root” invullen en vul het pad in naar het script: /volume1/@appstore/domoticz/var/scripts/bestandsnaam.sh.

Klik op het tabje Planning hoe vaak en wanneer je het script wilt laten uitvoeren. Bijvoorbeeld 24 uur per dag, iedere minuut.

root cronjob synology nas
Taak uitvoeren als root

6. Kijk of het werkt!

Ga naar schakelaars in Domoticz en zie of het lampje aan en uitgaat als je de wifi van je telefoon in- en uitschakelt! Houd daarbij natuurlijk in je achterhoofd dat het minimaal de tijd duurt die je ingegeven hebt bij de taakplanner.

Extra tip: noteer in de omschrijving van je schakelaar het ip-adres en MAC adres om later sneller wijzigingen aan te kunnen brengen of ter naslag.

Op basis van je aanwezigheid kun je weer een hoop automatiseren. Bijvoorbeeld de radio aan, vijverpomp aan of de lampen aan. Heb je een mooi project rond deze guide gemaakt, heb je andere ideeën of een vraag over het script? Laat hieronder je reactie achter!

Wil je direct aan de slag lees dan de andere blogs:

Bedien je TV met Domoticz | Deel 1

Bedien je TV met Domoticz | Deel 2

Wat vond je van dit artikel?

Geef hieronder je stem via de sterren. Laat weten wat je vindt van het artikel en stel je vragen in de reacties!

Wat vond je van deze blogpost?

Klik op een ster om een beoordeling te geven!

Gemiddelde score 0 / 5. Aantal stemmen: 0

Er heeft nog niemand gestemd. Wees de eerste, het kost niets en geen registratie!

Jammer dat de post niet behulpzaam was.

Laten we deze post verbeteren!

Wat zou er beter kunnen?

49 reacties op “Aanwezigheidsdetectie in Domoticz”

Hallo Wouter,

Bedankt voor je mooie guide.
Ik heb het geprobeerd toe te passen. Maar het script wil de dummy switch niet om zetten.
Als ik in cronjob editor kijk, wordt het script wel uitgevoerd. Er staat namelijk in de log: Sat Oct 29 14:15:49 CEST 2016 �Device presence check starting�
Maar verder niks. Er gebeurd niets.
Doe ik iets verkeerd? Ben ik iets vergeten?

Bedankt alvast.

Hoi Marcel,

Leuk dat je de guide hebt gevolgd! Ik help je graag verder!

Zo te zien werkt het starten van het script wel dus het chmod commando (stap 4) heeft het gedaan. Misschien kun je nog eens de variabelen bovenaan het script checken? IP adres van domoticz, ip adres van het apparaat, poort en idx van de dummy switch?

Is er een teken van reactie in de log van domoticz?

Succes!

Hi Wouter,
Bedankt voor je ondersteuning!
Ik heb de variabelen nogmaals gecontroleerd en deze zijn correct.
In de log van domoticz verschijnt geen melding. (alleen van andere hardware)

Hoi Marcel,

Graag gedaan! Ik heb door middel van ShellCheck (https://www.shellcheck.net/) even het script gechecked op mogelijke fouten. Het bleek dat tijdens het op de site zetten van de code van het script alle dubbelquotes (“) vervangen waren door (” en “). Ik denk dat dat de fout is. Je kunt je script door middel van zoeken en vervangen aanpassen. Vergeet het niet voor ” en “ te doen!

Laat me weten als het geholpen heeft! Ik heb het script ook direct op deze pagina aangepast.

Succes!

Hoi Wouter,

Ik heb jou script ook even door de ShellCheck gehaald, maar daar zitten toch wel een paar fouten in.
Zoals bv:
curl -s -I -H “Accept: application/json” “http://$DOMO_IP:$DOMO_PORT/json.htm?type=command¶m=switchlight&idx=$PRESENCE_IDX&switchcmd=On”
Dit moet denk ik zijn “command&param” in plaats van “command¶m”
en
Line 29:
if [ $? -eq 0 ] ; then
^– SC2181: Check exit code directly with e.g. ‘if mycmd;’, not indirectly with $?.

Helaas is mijn kennis van deze programmeer taal niet goed en kan ik deze fouten niet herstellen. Ik ben er druk mee bezig geweest maar voor deze laatste in Line 29, kan ik geen oplossing vinden.

Mijn verzoek is of jij nog eens zou willen checken.

Alvast bedankt

Hoi Patrick,

Ik krijg inderdaad dezelfde fouten. Ik had gehoopt dat het opgelost zou zijn. Ook ik krijg de melding over de quotes en de andere vreemde tekens. Ik ga vanmiddag het script als bestandje uploaden zodat jullie het gewoon kunnen downloaden. Blijkbaar vervangt de sitesoftware automatisch allerlei tekens en opmaak.

Check dus later deze week even de blog opnieuw!

Groetjes Wouter

Hoi Wouter,

Eindelijk gevonden wat ik zocht: een duidelijke werkomschrijving om dit op mijn NAS werkend te krijgen!
Alleen bij jouw punt 4: gebruikersnaam: root en admin-wachtwoord van de NAS. Inloggen met “root” in Putty
geeft access denied. Met “admin” inloggen lukt wel en kan ik je daaropvolgende stappen ook uitvoeren. Echter op het eind als ik de geplande taak handmatig een keer laat uitvoeren krijg ik een email met de melding: “permission denied” (ik heb e-mail melding aangevinkt). Ik heb DSM 6.0.2-8451 Update 5 op mijn NAS draaien.

Ben ik nog op weg te helpen?
Alvast bedankt!

Hoi John,

Bedankt voor je compliment! Dat motiveert mij meer leuke blogposts te blijven maken!

Natuurlijk ben je nog te helpen! Het één heeft met het ander te maken.

Het klopt dat je met het admin account geen toegang krijgt, omdat het admin account daarvoor niet genoeg rechten heeft. Het root account is, (net als op andere Linux en ook Android systemen) het ‘master’ account. Dit account mag alles. Dus ook de actie die je gaat uitvoeren uit mijn guide.

Het is goed dat je erbij vermeld dat je DSM versie 6 gebruikt. Na wat Google’en zie ik dat je vanaf versie 6 een extra handeling moet doen om het root account weer te activeren.
Lees hier hoe.

Ik zal dit verduidelijken in de guide!

Heel veel succes en plezier!

Wouter

Hoi Wouter,

Door jouw goede “support” ben ik inmiddels weer een stap verder gekomen: in Putty heb ik nu toegang!
Het probleem nu is dat inloggen in WinSCP onder “root” niet lukt. Dit zal natuurlijk ook wel liggen aan die DSM6 vermoed ik.
Onder “admin” lukt het wel en kan ik jouw Presence.sh scriptje in de /volume1/@appstore/domoticz/var/scripts plaatsen.
De log van de taakplanner geeft nu het volgende aan:

Beste gebruiker
Taakplanner heeft een geplande taak voltooid.
Taak: Presence
Starttijd: Thu, 08 Dec 2016 20:50:01 GMT
Stoptijd: Thu, 08 Dec 2016 20:50:02 GMT
Huidige status: 0
Standaard uitvoer/fout:
Retries left: 3
Pingtime: 500.130
1
HTTP/1.1 401 Unauthorized
Content-Length: 91
Content-Type: text/html
Set-Cookie: SID=none; path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT
WWW-Authenticate: Basic realm=”Domoticz.com”
Unauthorized401 UnauthorizedDEVICE switched ON

Moet WinSCP inlog persé ook onder root?

Ik kan geen oplossing vinden. mogelijk dat je meer info voor mij hebt? Alvast bedankt!

John

Hoi John,

Super dat het gelukt is! We zijn weer een stapje verder.

Ik lees op fora dat het voor WinSCP ook lastig is om root toegang te krijgen. Maar gelukkig niet onmogelijk!

Als ik dit bericht over WinSCP toegang op DSM6 lees dan zou het op deze manier toch moeten werken.

Laat even weten of het gelukt is, dan kan ik de tutorial daar weer op aanpassen.

Het is ook belangrijk om de taak in taakplanner uit te voeren als root.

Succes

Wouter

Hoi Wouter,

Helaas lukt het als “root” inloggen op WinSCP me niet. Ik heb van alles geprobeerd en diverse stappen doorlopen en regels aangepast om in te kunnen loggen op WinSCP, echter zonder resultaat. Ik denk dat dit er de oorzaak van is, dat ik jouw mooie script niet aan het draaien krijg: jammer!
Is er nog een andere mogelijkheid/omweg om het aan het draaien te krijgen op mijn NAS? Ik wil graag aanwezigheidsdetectie in Domoticz!

John

Hoi John,

Dat is jammer! Blijkbaar heeft Synology de nas met DSM6 verder beveiligd dan met DSM5. Gelukkig betekend dat niet dat aanwezigheidsdetectie niet mogelijk is!

Aangezien je een smartphone hebt, ik weet alleen niet of dat iOS of Android is, kun je de Domoticz app gebruiken. Deze app heeft de functie Geofencing. Zodra je apparaat in de buurt is meld de Domoticz app dat in Domoticz op je NAS. De locatie heeft een wat grotere straal dan je WiFi netwerk. Het zou dus kunnen dat als je straat in rijdt, Domoticz al ziet dat je thuis bent. De app uit bovenstaande link is voor Android. Voor iOS zullen ze ook wel een app hebben. De Geofencing functie zit alleen in de betaalde versie van de app. Je zou nog op alternatieven kunnen zoeken binnen de stores.

Succes!

Wouter

Bij invullen van het pathv/volume1/@appstore/domoticz/scripts/TelefoonPresence.sh. in de crontab van mijn Synology krijg ik melding dat er alleen maar (Engelse) tekens mag bevatten, niet mag beginnen of eindigen met een spatie. Ik vermoed dus dat de ‘@’ in de @appstore een probleem is. Zou het kunnen werken als ik dit script naar bijvoorbeeld /var/packages/ verplaats?

Okay, dat was dus een dom iets van mij. Dit was enkel de input voor de naam van het script. Lijkt of ik nog niet wakker ben.

[…] Wijzig in de code de IP-Adressen in die van je apparaten. De naam na de komma moet exact overeenkomen met de naam in Domoticz. Meestal de naam van je Dummy Switch. Hoe je Dummy switches maakt en de rest van de aanwezigheidsdetectie opzet, lees je in de volledige Presence detection tutorial. […]

Script opnieuw geinstalleerd, werkt fantastisch. Op mijn DSM 6.1 moest ik na het inloggen ‘sudo -i’ doen, ipv sudo su.

Jammer is dat je door de cronjob en wifi alleen maar om de minuut kan testen of het toestel in de omgeving is. Daar ga ik nog eens verder naar zoeken.

Ik heb het script geïnstalleerd en werkend gekregen.
Het probleem is nu dat ik kan pingen naar mijn Samsung S7 en Nexus 7 2013 zolang de apparaten in gebruik zijn. Als de apparaten in standby gaan stopt het pingen na een poosje.

Hoi Henny,

Mooi dat het gelukt is! Je zou nog kunnen proberen om in de WiFi instellingen “WiFi aan laten tijdens slaapstand” op Ja te zetten. Gaat wel ten koste van je batterijtijd?

Wouter

Je komt niet in de root van de Synology, ik heb al weer admin actief gemaakt en daarna sudo -i dan kom je netjes met de terminal (Macs putty) Met Cyberduck krijg je alleen de gewone mappen niet de @mappen. Dus een Laptop met Windows geleend, winscp en dan krijg je iets van Exhausted available authentication methods. Tja en al die keys en ip tabellen zitten natuurlijk ook weer op die @mappen en daar kom je dus niet in.

Ik heb inmiddels naast mijn Domoticz op de Synology ook een Raspberry met Domoticz in de meterkast staan vanwege stroommeting, daar kan ik met Cyberduck wel op komen en daar staat ook een script map. Als ik mijn Zwave configuratie over zou kunnen zetten naar de Raspberry kan ik gewoon alles op de Raspberry zetten, ik heb namelijk het idee dat de versie op de Synology ook wat beperkingen heeft. Op mijn Synology heb ik op Domoticz een aantal zwave schakelaars staan, en die staan op een locatie waar ik eigenlijk niet bij kan. Dus opnieuw inleren is geen optie, kan ik de configuratie gewoon overzetten? Ik heb overigens dat andere script eens geprobeerd maar kreeg ik ook niet aan de praat. Is hier iemand die een script heeft met ingevulde waarden (kan ik zien hoe de ip adressen ingevoerd worden in het script). Mogelijk zit daar een fout.

Beste Bob,

De Synology versie is misschien wel iets anders omdat het geen ‘officiele’ versie is. Ontwikkelaar Jumbotroll maakt deze speciale versie op basis van de RaspPi versie. Je kunt de database proberen over te zetten, dat zou wel kunnen werken. Maak natuurlijk altijd eerst een back up van beide. Er zit een Backup en Herstel functie onder Instellingen -> Instellingen -> Back up en Herstel.

Ik heb de pagina van het pingscript verduidelijkt met wat afbeeldingen. Nu zou je er wel uit moeten komen.

Succes!
Groetjes Wouter

Bedankt. Ik ga het nog eens bekijken, mijn bedoeling is overigens om uiteindelijk de TV of de Apple TV te kunnen besturen, dat stond ook elders in een blog. Dus de mobiele telefoon is voor mij geen Issue, bovendien staat wifi op mijn telefoon bijna altijd uit.

Goededag,
Ik heb het één en ander zoals hierboven geïnstalleerd. Echter, er gaat toch iets fouts. In stap 5 kon ik niet de volgende pad-naam gebruiken: /volume1/@appstore/domoticz/scripts/bestandsnaam.sh. Het werkte wel bij het gebruik van het volgende pad: /volume1/@appstore/domoticz/var/scripts/bestandsnaam.sh. Helaas kreeg ik per email de volgende melding:
Taak: bestandsnaam.sh
Starttijd: Tue, 09 Jan 2018 23:56:02 GMT
Stoptijd: Tue, 09 Jan 2018 23:56:02 GMT
Huidige status: 126
Standaard uitvoer/fout:
sh: /volume1/@appstore/domoticz/var/scripts/bestandsnaam.sh: /bin/ash^M: bad interpreter: No such file or directory

Wat gaat hier mis?

Beste Hans,

Er staat inderdaad bij stap 5 een foutje in het pad. Dat moet inderdaad /volume1/@appstore/domoticz/var/scripts/bestandsnaam.sh zijn. Ik heb het aangepast in de blogpost. Bedankt!

De foutmelding komt erop neer dat het bestand of map niet gevonden kan worden. Heb je als gebruiker “root” ingevuld? Als je Admin kiest heb je niet genoeg rechten om tot de map te komen en dan “bestaat” hij niet. Misschien is dat het!

Groet Wouter

Wouter,

Ik heb dit artikel gevonden en er veel kennis uitgehaald.
Helaas heeft Apple met iOS het moeilijk gemaakt om een iPhone in slaapstand te detecteren. Ik neem voetstoots aan dat ik niet de enige ben met did probleem. Ik heb alle Blogs en sites afgelopen voor een oplossing maar geen van de oplossingen lijkt te werken (hping3, tcping, arp-scan, nmap etc.).

weet jij inmiddels een betrouwbare manier om een iPhone te detecteren in Domoticz?

mvg,

Rob

Beste Rob,

Leuk om te lezen dat je toch iets aan t artikel gehad hebt.

Als je nmap ook al geprobeerd hebt
zou je nog kunnen proberen om de domoticz app voor iOS te installeren. Hierin zit geofencing ingebouwd. Dat betekend dat je op basis van je gps locatie je aanwezig of afwezig meldt bij domoticz. Ik heb er zelf nog geen ervaring mee, maar het is het proberen waard!

Mocht dat ook geen resultaat geven kun je nog denken aan bewegingssensoren (PIR) op een aantal plekken in huis.

Succes!

Wouter

Hi Wouter,
Alles heeft uitstekend gewerkt, alleen niet meer na het installeren van 6.2 update 2 op mijn Synology.
Ik krijg nu met curl een “HTTP/1.1 401 Unauthorized” terug…
Enig idee wat er aan te doen valt?
Met vriendelijke groet,
Marc

Beste Marc,

Het lijkt erop dat je de juiste rechten niet meer hebt. Mogelijk door het installeren van de nieuwste update heeft Synology die gereset naar standaard. Waarschijnlijk helpt het om de stappen opnieuw uit te voeren 🙂

Succes, mocht dat het niet zijn hoor ik het wel weer,

Fijne dagen alvast,

Wouter

Hi Wouter,
Ik ben eruit. Het is inderdaad een rechten probleem.
Door in Domoticz Settings > System de Local Networks (no username/password): op bijvoorbeeld: 127.0.0.*;192.168.0.* te zetten wordt het probleem opgelost.
Het zou eventueel op een iets elegantere manier kunnen.
Bedankt en gegroet,
Marc

Wouter, dank je wel voor je heldere uitleg. Het is mij uiteindelijk ook gelukt. Maar niet helemaal volgens bovenstaand stappenplan. De taakplanner van Synology wilde op geen mogelijkheid de opdracht uitvoeren. Terwijl als ik hem via SSH invoerde de opdracht keurig werd uitgevoerd. Ik heb vervolgens de crontab aangepast middels vi /etc/crontab en daar vervolgens de opdracht uit laten voeren. Dit werkt perfect.

Hallo Wouter.

Dank wel voor de uitgebriede handleiding/nazorg, hierdoor ben ik ver gekomen.

Ik heb alleen het probleem dat bij het uitvoeren van het script de uitkomst altijd “device is on” is.
Ook als ik de apparaten opnieuw aanmaak.

Heb je nog een tip waar ik naar kijken kan?

Groet

Jan

Beste Jan,

Heb je het simpele script gebruikt of het uitgebreide script met de cronjobs?

Is het apparaat ook echt offline en niet in standby? Zie je in de logs ook echt dat het script werkt of gebeurd er niets en lijkt het alsof de uitkomst altijd ‘on’ is?

Groet Wouter

Hoi Wouter,

De uitkomst is altijd dat het apparaat aan is, ik geef je even mijn instellingen die ik in het uitgebreide script heb aan gepast en de uitkomsten van het script.

# Settings
PRESENCE_IP=”192.168.002.010″ # IP Address of Device to be checked
DOMO_IP=”192.168.002.200″ # Domoticz IP Address
DOMO_PORT=”8085″ # Domoticz Port
PRESENCE_IDX=”13″ # DEVICE Switch IDX
WAIT_TIME=”10″ # Time to wait before retry
LOOPCOUNTER=3 # Number of retries

(Toestel op de Wifi)

root@*****:/volume1/@appstore/domoticz/var/scripts# sh PresenceOneplus5T.sh
Retries left: 3
Pingtime: 1.815
1
HTTP/1.1 200 OK
Content-Length: 51
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *

{
“status” : “OK”,
“title” : “SwitchLight”
}
DEVICE switched ON

(Toestel helemaal uitgeschakeld)

root@*****:/volume1/@appstore/domoticz/var/scripts# sh PresenceOneplus5T.sh
Retries left: 3
Pingtime: 1.611
1
DEVICE is ON

Het script voer ik tijdelijk uit vanuit Putty. Als ik het via Cronjosb doe heb ik heb het zelfde resultaat. Als ik bij de resultaten zie in DSM dan is het script gestart en gestopt en er staat bij script; “geen gevens” en bij serverfouten “geen gegevens”.

Ik hoop dat je hier verder mee kan.

GROET Jan.

Hoi Jan,

Je instellingen zien er goed uit, behalve dan dat je verschillende dubbele aanhalingstekens gebruikt, maar dat kan ook door de blogsoftware kunnen komen. Het script werkt dus dat zal het waarschijnlijk niet zijn.

Je te pingen apparaat is dus 192.168.2.10. Wat gebeurd er op het moment dat dit apparaat helemaal uit staat als je vanaf een pc pingt? Dus op windows een commandopromt opent en invoert ‘ping 192.168.2.10’?

Heb je je apparaat een vast ip gegeven? Of kan het zijn dat het stiekem een ander apparaat is?

Wat gebeurt er als je een ip adres in het script invoert wat niet in gebruik is?

Groet Wouter

Hallo Wouter,

Het werkt!!!!!

Ik heb gepingt naar het ip van de telefoon uit en daar kwam het volgende uit.

Vanaf laptop.
C:\Users\dombo>ping 192.168.2.10

Pinging 192.168.2.10 with 32 bytes of data:
Reply from 192.168.2.8: Destination host unreachable.
Reply from 192.168.2.8: Destination host unreachable.
Reply from 192.168.2.8: Destination host unreachable.
Reply from 192.168.2.8: Destination host unreachable.

Ping statistics for 192.168.2.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)

Het is vreemd maar er raakt geen ping verloren, misschien is dat de reactie van het modem?

Als ik ping naar een niet uitgegeven ipadres krijg ik het volgende resultaat.

Retries left: 3
Pingtime:
0
0
…waiting…
Retries left: 2
Pingtime:
0
0
…waiting…
Retries left: 1

Pingtime:
0
1
DEVICE is OFF

Ik heb via DHCP-binding in het modem, het ip-adres vast gezet op mijn mobiel.
In de lijst van de van de DHCP server kan ik alleen mijn mobiel zien met het ip-adres 192.168.2.10.

Om er zeker van te zijn dat er niet een dubbel apparaat is op 1 ip-adres heb ik het mac-adres gekoppeld aan een ip-adress hoog in de DHCP-reeks, 192.168.2.198.

En nu werkt het wel.

Ik heb een paar smart/wifi stopcontacten in huis die gekoppeld zijn aan Google Home, misschien hebben die ook het ip-adres 192.168.2.10 gekregen?

Bedankt voor je ondersteuning.

Groet Jan

Mooi idee maar zou nog mooier zijn het MAC adres te gebruiken van de telefoon daar anders bij veranderingen je dat steeds moet aanpassen (denk aan lange vakantie / dhcp release / router aanpassing / nieuwe flash vernieuwen etc) Nu kun je dat wel weer vastzetten maar mooier als dat gekoppeld is aan het MAC adres…

Mvg Paul

Hoi Paul,

Daarvoor gebruik je dus de pre-assigned ip-adressen. Die worden uitgedeeld op basis van een MAC adres. Wanneer een apparaat met een bepaald MAC adres zich aanmeldt, krijg ie het pre-assigned ip adres toegewezen. Werkt al jarenlang probleemloos. Alleen bij ingebruikname van een nieuwe telefoon even opnieuw instellen.

Groet Wouter

Laat weten wat je van dit artikel vindt!

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