pixel
Domoticz logo

Script iemand thuis domoticz.

0
(0)

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.

Script iemand thuis domoticz. 1

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.

  1. 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).
  2. 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.
  3. Voeg code in
    Verwijder de volledige inhoud in het scherm en plak onderstaande code:


Advertentie :


-- 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

Wat vond je van deze post?

Klik op een ster om deze te beoordelen!

Gemiddelde score 0 / 5. Aantal stemmen: 0

Tot nu toe geen stemmen! Wees de eerste die dit bericht beoordeelt.

9 gedachten over “Script iemand thuis domoticz.”

  1. blank

    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”.

      1. blank

        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

      2. blank

        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.

  2. blank
    Roland Twilt

    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’

Laat een reactie achter

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

Winkelwagen