Je wilt dat je verlichting automatisch aan gaan, maar wel alleen als iemand in de buurt van je huis is.
Of als 1 van de 2 of beide thuis zijn. Dit kun je gemakkelijk regelen binnen domoticz.
Daarom kan je het beste onderstaande gaan maken in je eigen setting.
Ping script in Domoticz
Dit script kun je gebruiken om te testen of het netwerk apparaat aanstaat en netwerkverbinding heeft. We zenden een ‘ping‘
naar het IP-adres van het apparaat. Als het apparaat aanstaat geeft
het antwoord, anders niet. Op basis van deze test kun je een apparaat
in Domoticz aan- of uitschakelen.
- Maak een nieuwe dummy aan Om je smartphone aan en uit te kunnen zetten in Domoticz moet je deze eerst toevoegen als dummy. Doe dit voor ieder apparaat apart. Ga naar Instellingen | Hardware. Maak een Dummy hardware device aan als je die nog niet hebt. Noem ‘m bijvoorbeeld Dummies. Klik daarna op ‘Maak virtuele sensoren’. Geef de naam in van je apparaat, bijvoorbeeld woonkamers TV of Smartphone (jenaam).
- Maak een nieuwe Gebeurtenis Klik op Instellingen -> Meer Opties -> Gebeurtenissen.
Klik op ‘New’.
Geef het script een naam, bijvoorbeeld PingScript, zet het type op Lua en kies voor Time. - Voeg code in
Verwijder de volledige inhoud in het scherm en plak onderstaande code:
Advertentie :
[wpdm_package id=’6283′]
-- Ping script by huizebruin.nl -- www.huizebruin.nl function DevicePing(ip, device) ping_success="" ping_success=os.execute('ping -c1 -w1 ' .. ip) if ping_success then print("ping success " ..device) DeviceOnOff('On',device) else print("ping fail " ..device) DeviceOnOff('Off',device) end end function DeviceOnOff(Action, device) local deviceValue = otherdevices[device] if deviceValue ~= Action then commandArray[device] = Action end end commandArray = {} print("***************** start pingen *******************") DevicePing('IP ADRES','APPARAAT 1') DevicePing('IP ADRES','APPARAAT 2') print("***************** end pingen *******************")
4. Aanpassen van de code
Wijzig in de code de regels met “IP-Adres” in die van je apparaten. Verder niets! De naam na de komma moet exact overeenkomen met de naam in Domoticz.
Het maakt niet uit hoe je apparaten heten, als je maar de namen consequent overneemt. Domoticz is hoofdlettergevoelig!
Ik
vind het makkelijk om de laatste cijfers van het IP-adres in de naam
van het dummy apparaat op te nemen, maar dat hoeft natuurlijk niet.
5. Toelichting werking code
De uitvoering van de code begint na CommandArray.
Daar komt je als eerste de functie DevicePing tegen.
Deze functie staat helemaal bovenaan en pingt het IP-Adres wat je opgegeven hebt tussen de haakjes.
Als het resultaat van de Ping success is, spring je naar de DeviceOnOff functie.
Deze voert de actie uit op het opgegeven device.
Als dat klaar is, spring je naar de volgende regel onder commandArray.
6. uitbreiding
Daarom is het handiger om voor die 2 personen een iemandthuis schakelaar te hebben.
Hoeft dit script niet gedraaid te worden dan hoef je namelijk alleen maar die iemandthuis schakelaar te overbruggen.
Zeker als je er in de toekomst dan juist 1 meer of 1 meer nodig
zou hebben hoef je niet alles na te lopen maar alleen te zorgen dat het
goed gaat met iemandthuis.
Alle handelingen doe je dan op basis van als iemandthuis aan is en uithouden uit is.
Reclame :
In lua kan je onderstaande script toe gaan passen.
if (devicechanged['Donker'] == 'On') then commandArray['Woonkamer_achter']='On AFTER 120'print('Woonkamerlamp achter aan binnen 2 min ') if((otherdevices['Iemandthuis'] == 'On') and (otherdevices['uithouden'] == 'Off')) then commandArray['Woonkamer_voor']='On AFTER 120' print('Woonkamer_voor aan binnen 2 min want iemand thuis ') end end
Even uitleg van een simpel voorbeeldje van hierboven
Als donker aangaat dan zet ie standaard de lamp woonkamer plafond aan ook al is er niemand thuis.
Daarna kijkt ie of er iemandthuis is en uithouden uitstaat.
Als dat het geval is dan doet ie de lamp_voor aan
Virtuele Schakelaars die je al op je systeem moet hebben om geen fout meldingen te krijgen.
* iemandthuis
* donker
* uithouden
* Woonkamer_achter
* Woonkamer_voor
Als je dit artikel met interesse hebt gelezen klik dan op Vind ik Leuk .
Voor u een kleine moeite voor mij een compliment.
Alvast Bedankt.
Als je feedback, tips of iets anders hebt,
Aarzel dan niet om hieronder een reactie achter te laten.
Ben ook bezig met “Pingen” en gebruik dit om te kijken of mijn Tasmota wcd’s nog “op het net zitten” waaraan ik dan een melding “Installatie groep … is uitgevallen” heb gekoppeld.
Jouw script werkt Wobbe, maar geeft om de paar minuten onregelmatig een melding.
De Domoticz eigen “System alive checker” werkt de eerste keer als ik het probeer, maar valt vervolgens “in slaap” lijkt het wel en geeft enkele uren later helemaal niets meer door (terwijl router al aangeeft dat de IP van het net is”
Het commando genoemd in de Domoitcz wiki en genoemd door Roland geeft de volgende foutmelding:
Failed to set capabilities on file “path_to_domoticz_executable” (No such file or directory).
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Tips om verder te komen?
Wat is / waar vind ik de naam van “domoticz executable”.
Hallo Thomas,
Bedankt voor je reactie,
Mooi dat het gelukt is. maar volgens mij is ping daar niet geschikt voor.
ik weet dat er ook plugins voor zijn.
https://www.domoticz.com/forum/viewtopic.php?t=29114
https://tasmota.github.io/docs/Domoticz/
Het oppikken en in Domoticz koppelen van mijn Tasmota wcd’s lukt prima.
Situatie:
Rpi staat op ET installatie groep 1.
Tasmota voor “schemerlamp” staat altijd ingeplugd aan op Groep 2.
Als ik deze uit de wandcontactdoos trek geeft Domoticz géén status verandering meer door (ook niet het wegvallen van spanning of stroom).
Wél signaleert router “IP niet meer aanwezig”.
Daarom wil ik de IP van de Tasmota wcd pingen en dit als groep uitval voor Groep 2 in Domoticz signaleren.
Met een ups enkel voor de Rpi en Router én een AND functie voor alle groepen OFF geeft dit dan weer een NETuitval signalering.
MQTT LWT moet ook een oplossing zijn, maar daar krijg ik – voor mij – niet iets begrijpelijks van gevonden op Google.
Wie denkt er met mij mee?
Hoe ziet een Ping functie het verschil tussen een IP van een Smartphone en een IP van een Tasmota wcd
Opgelost 😉 Ik had voor elk GSM nummer/IP nummer de apparte Domoticz Ping plugin geïnstalleerd. Werkt niet!
Net zoals Wobbe in zijn script file meerdere GSM nummers onderbrengt kun je in éên Domoticz Ping plugin ook meerdere GSM nummers kwijt.
Werkt nu betrouwbaar.
Hallo Thomas,
Bedankt voor je reactie,
Mooi dat het gelukt is.
Veel plezier ermee
Hoi,
ik krijg de volgende foutmelding, Google geeft geen duidelijke uitleg;
Error: dzVents: Error: (3.1.0) error loading module ‘PingScript’ from file ‘/home/pi/domoticz/scripts/dzVents/generated_scripts/PingScript.lua’:
2021-01-06 12:58:43.337 …omoticz/scripts/dzVents/generated_scripts/PingScript.lua:1: malformed number near ‘192.168.0.142’
Hallo, ik zou dit graag gebruiken maar domotizc heeft niet de rechten om te mogen pingen denk ik:
https://www.domoticz.com/forum/viewtopic.php?t=18518#p203996
Alleen de oplossing die daar geboden wordt, kan niet omdat ik geen /etc/systemd/system/domoticz.service heb.
Enig idee hoe ik dit oplos?
Grt Roland megens
Opgelost:
https://www.domoticz.com/wiki/System_Alive_Checker_(Ping)
$ sudo setcap cap_net_raw=+eip path_to_domoticz_executable
Bedankt voor de reactie en ook voor de oplossing die je gevonden hebt. En die ook gedeeld hebt.