Zo gebruik je NFC stickers in Domoticz zónder dure apps!

Door middel van NFC tags kun je acties uitvoeren in je domotica systeem. Bijvoorbeeld de verlichting schakelen, scenes activeren of het alarm in- of uitschakelen. We maken gebruik van php, dus niet van de domoticz app.

Wat heb je nodig?


  • Domoticz
  • NAS of Raspberri Pi met php ondersteuning
  • Smartphone met NFC ondersteuning
  • NFC tags of stickers bijvoorbeeld:

Aan de slag

Bedenk welke actie je wilt uitvoeren als je je smartphone tegen de NFC sticker houdt. Met deze werkwijze zal je smartphone de actie uitvoeren in de browser. Wil je dat niet, of heb je geen webserver draaien op je NAS of Raspberri Pi? Maak dan gebruik van de betaalde Domoticz app.

Wat is NFC

Naar Field Communication werkt door middel van twee spoelen. 1 in de sticker en 1 in je smartphone. Het is dezelfde techniek die gebruikt wordt voor draadloos pinnen en de OV chipkaart. Je houdt je telefoon tegen de NFC sticker en je smartphone voert de in de sticker geprogrammeerde actie uit.

Verlichting schakelen met NFC tag

In dit voorbeeld ga ik mijn verlichting aan- of uitschakelen als ik de NFC sticker aanraak met mijn telefoon. De sticker programmeren we zo dat het aanraken ervan zorgt dat de smartphone de browser opent en naar onze URL navigeert. Dit script kijkt eerst naar de huidige status van de lamp(en) en schakelt die in of uit.

Het script is gemaakt in PHP en moet in je lokale netwerk draaien. Op je NAS of Raspberri Pi  kun je dit heel makkelijk inschakelen. Als je al een webserver hebt draaien, kun je deze stap overslaan.

Stap 1: PHP activeren op je NAS

Om straks opdrachten te versturen naar je lampen gebruik ik een PHP script. De NAS moet weten hoe hij PHP moet uitvoeren en daarom moeten we dat eerst activeren in de webservices van de NAS. Dat gaat alsvolgt:


  1. Configuratiescherm
  2. Webservices
  3. Vink Web station inschakelen aan
  4. Klik op toepassen
  5. Ga naar het tabje PHP-instellingen
  6. Vink PHP-cache en display_errors aan.

phpinstellingen-naswebservices-synolgy-nas

 Stap 2. Upload het php script

  • Ga in je NAS naar File Station en dan naar de map ‘web’.
  • Maak een nieuwe map aan bijvoorbeeld ‘php2domo’.
  • Open de Tekstverwerker vanuit het hoofdmenu, het is een soort ‘kladblok’
  • Plak dit onderstaande script in de tekstverwerker en geef het bijvoorbeeld de naam NFCverlichting.php
<?php


// Downloaden json en tijdelijk opslaan

$json_string = file_get_contents("http://IP-ADRES:POORT/json.htm?type=scenes");
$parsed_json = json_decode($json_string, true);
$test_link = "result.txt";
$test_data = fopen ($test_link, "w+");
fwrite ($test_data, print_R($parsed_json, TRUE));
fclose ($test_data);

// intepreteren data
$parsed_json = $parsed_json['result'][0];
$status = $parsed_json['Status'];

$parsed_json = json_decode($json_string, true);

if ($status == "On") {
 echo "De lampen staan " .$status .". Uitzetten";
 AanUitZetten("Off");
} elseif ($status == "Off") {
 echo "De lampen staan " .$status .". Aanzetten";
 AanUitZetten("On");
} elseif ($status == "Mixed") {
 echo "De lampen staan " .$status .". Aanzetten";
 AanUitZetten("On");
}


function AanUitZetten($Actie){
 
 print "<br><br>";
 // Touwlamp
 $domoticzurl1 ='http://IP-ADRES:POORT/json.htm?type=command&param=switchlight&idx=XX&switchcmd=' .$Actie;
 // Ledstrip kast
 $domoticzurl2 ='http://IP-ADRES:POORT/json.htm?type=command&param=switchlight&idx=XX&switchcmd=' .$Actie;
 // statieflamp
 $domoticzurl3 ='http://IP-ADRES:POORT/json.htm?type=command&param=switchlight&idx=XX&switchcmd=' .$Actie;
 // tijdschema
 $domoticzurl4 ='http://IP-ADRES:POORT/json.htm?type=command&param=switchlight&idx=XX&switchcmd=' .$Actie;
 // tijdschema
 $domoticzurl5 ='http://IP-ADRES:POORT/json.htm?type=command&param=updateuservariable&vname=USERVAR&vtype=Integer&vvalue=1';
 
 
 $result = file_get_contents($domoticzurl1);
 print $result;
 print "<br><br>";
 
 $result = file_get_contents($domoticzurl2);
 print $result;
 print "<br><br>";
 
 $result = file_get_contents($domoticzurl3);
 print $result;
 print "<br><br>";
 
 $result = file_get_contents($domoticzurl4);
 print $result;
 print "<br><br>";
 
 $result = file_get_contents($domoticzurl5);
 print $result;
 print "<br><br>";
}

?>

Stap 3. Wijzig het script

Vervang de IP-ADRES:POORT tekst door het IP adres van Domoticz met daarachter de poort en wijzig IDX in het nummer van het te schakelen apparaat. Deze kun je vinden op de ‘Apparaten’ pagina in Domoticz.

Eventueel kun je met $domoticzurl5 een UserVariable wijzigen. Wijzig USERVAR in de juiste naam, wijzig vtype in het juiste type en vvalue in de waarde die de UserVariable moet aannemen.

Stap 4. Testen

Je kunt het script nu testen door het via de browser uit te voeren. Vul in je browser het volgende adres in:

http://IP-adres NAS/php2domo/nfcverlichting.php

Je ziet nu het resultaat van de opdracht en de verlichting schakelen!

Stap 5. Schrijven naar NFC

Download een app die NFC tags kan schrijven. Ik gebruik NFC Tools voor Android.

  • Tik op ‘Write’ en op ‘Add a record’
  • Kies voor URL/URI
  • Vul de URL in die je zojuist succesvol getest hebt.
  • Tik op ‘Write’, houd de NFC sticker tegen je telefoon en ‘Write succesful’ komt in beeld.

Stap 6. Testen

Je kunt het script nu testen door de NFC tag tegen je telefoon te houden. Je telefoon voert de  ingestelde actie uit!

Je ziet nu het resultaat van de opdracht en de verlichting schakelen!

 

 

 

 

Is het gelukt of heb je hulp nodig? Laat een reactie achter!

 

 

One Reply to “Zo gebruik je NFC stickers in Domoticz zónder dure apps!”

Laat weten wat je van dit artikel vindt!