Ehoco.nl

Bluetooth en vast IP LUA ping script voor Domoticz

LUA ping script

In mijn Domoticz set-up maak ik in meerdere events gebruik van de trigger of mijn telefoon/tablet wel of niet thuis is. In dit artikel zal ik stap voor stap uitleggen hoe je een dummy schakelaar van je apparaat kan maken, die aangeeft of het apparaat thuis is. Voordat we naar het LUA ping script kijken maken we een dummy schakelaar aan.

Benodigdheden
Dummy schakelaar aanmaken

Ga in Domoticz naar Setup -> Hardware en maak dummy hardware aan:

Vervolgens ga je naar Switches en maak je een dummy switch aan:

Als je naar Setup -> Devices gaat zal je een soortgelijke regel als onderstaand zien. Het nummer van Idx is belangrijk, dit hebben we verder nodig.

 

Software

Installeer de bluetooth ondersteuning met onderstaande commando’s:


Voer een scan voor Bluetooth apparaten uit (zorg er wel voor dat je apparaat zichtbaar is voor Bluetooth):


Zoek de bluetooth directory op je Raspbery Pi, deze ziet er ongeveer zo uit: /var/lib/bluetooth/??:??:??:??:??. De vraagtekens zijn uiteraard in werkelijkheid cijfers en letters. Voor de gevonden apparaten voeg je een pincode toe aan het pincode-bestand, dit doe je met commando:


AA:BB:CC:DD:EE:FF vervang je door het Bluetooth MAC-adres van je apparaat en 11:22:33:44:55:66 vervang je door het MAC-adres van de Bluetooth-folder op je Raspberry Pi. De vier nullen zijn de pincode, deze is standaard 0000.

Test of  de pincode van het apparaat juist is toegevoegd (ook hier vervang je AA:BB:CC:DD:EE:FF door het Bluetooth MAC-adres van je apparaat):


Wijzig de timeout “Page timeout: 8192 slots (5120.00 ms)” naar “Page timeout: 4096 slots (2560.00 ms)”:


Installeer LUA 5.2 indien je dit nog niet eerder hebt gedaan:


Download en installeer usrlocalsharelua52.tar.gz van https://www.ehoco.nl/downloads/usrlocalsharelua52.tar.gz:


Download en installeer usrlocalliblua52.tar.gz van https://www.ehoco.nl/downloads/usrlocalliblua52.tar.gz:

 Aanpassingen LUA ping script

Download hier het LUA ping script en pak het uit met een extracter als WinRar. Open het script in Notepad++ en kijk het eerst eens rustig door. Voordat je het script naar de Raspberry Pi kopieert moeten eerst nog de variabelen goed gezet worden:

ScriptName=”presence.lua” — naam van het script, laat dit ongewijzigd
server_url=”http://192.168.2.10:8080” — url van Domoticz
Monit_check_log=”/var/tmp/presence-monit.log” —  logbestand, laat dit ongewijzigd
LoopTimeShort=10 — Tijd (in seconden) tussen twee checks. indien er één van de apparaten niet gevonden is
LoopTimeLong=30 — Tijd (in seconden) tussen twee checks, indien alle apparaten gevonden zijn
FailTimeout=120 — Tijd om te bepalen dat de telefoon werkelijk niet aanwezig is
debug=2 — niveau van logging: 0=basis-informatie, 1=wat extra informatie, 2=alle beschikbare informatie (gebruik 2 alleen in geval van problemen)
TelName[Rec] = “Xiaomi MI 5” — naam van de telefoon
TelIP[Rec] = “192.168.2.4” — IP adres van de telefoon
TelBT[Rec] = “AA:BB:CC:DD:EE:FF”  — Bluetooth MAC-adres van de telefoon
TelIDX[Rec] = “16”  — vul hier het Idx van het apparaat in, zoals bij de 3e afbeelding hierboven staat aangegeven

Laat alle andere parameters ongewijzigd! Sla het LUA ping script op (met naam presence.lua), daarna kopieer het naar de Raspberry Pi in de folder: /home/pi/domoticz/scripts/

Cronjob

Indien het script eenmaal wordt uitgevoerd blijft het draaien. Echter, we willen er zeker van zijn dat dit ook zo is en daarom maken we voor de zekerheid een cronjob aan:


Sla de wijziging op en reboot de Raspberry Pi:


Iedere 2 minuten wordt er nu gekeken of het script draait. Tevens wordt er een logbestand bijgehouden in /var/tmp/presence_check.log

Mobiele versie afsluiten