Domoticz- client e server in python per abilitare il wifi su Raspberry Seconda Parte

Domoticz- client e server in python per abilitare il wifi su Raspberry Seconda Parte

Questo articolo illustra uno step di un progetto che ha l’obiettivo di realizzare uno switch su Domoticz, posto su un Raspberry,  in grado di accendere (o spegnere) il Wi fi extender su un secondo Raspberry. In aggiunta alla funzione che accende e spegne il Wifi Extender, il server è anche in grado di comandare un secondo switch su domoticz che accende e spegne una webcam collegata all’extender.

Per fare questo verranno utilizzati un client e un server scritti in python posizionati rispettivamente sul primo e sul secondo Raspberry che saranno oggetto di approfondimento in questo articolo.

Lo schema utilizzato nel progetto sarà il seguente.

im4

Vediamo adesso come si realizza lo switch che aziona il client su domoticz, passando gli opportuni parametri per comandare il server e un piccolo script che effettua il check sul server e evetnualmente lo riavvia quando necessario.

Su Domoticz andiamo nella sezione Hardware e aggiungiamo un nuovo hardware come in figura.

dummyhardware

Andremo a scegliere un tipo dummy e cioè un hardware virtuale che letteralmente non fa nulla

Fatto questo clicchiamo su “create virtual sensor e scegliamo uno Switch ON OFF.

Andiamo a  configurare lo switch come in figura:

switchdomoticz

Nella sezione on Action inseriamo: script:///home/<path script python>/testclientwlan0.py ON

In questo caso il parametro passato sarà ON (accensione del Wifi extender e della webcam – vedi articolo precedente)

Nella sezione off action inseriamo script:///home/<path script python>n/testclientwlan0.py OFF

In questo caso il parametro passato sarà OFF (spegnimento del Wifi extender e della webcam – vedi articolo precedente)

Infine, similmente a quanto fatto per altri servizi, ho realizzato un piccolo script che effettua il check del server e, nel caso lo trovi offline, provvede a effettuarne il reboot.

#!/bin/bash
    wifiRaspServerstate=`sudo systemctl status serverWlan02.service`
    if [[ $wifiRaspServerstate == *"active (running)"* ]]
       then
           echo 'wifiRaspServer is running. Nothing to do.'
    elif [[ $wifiRaspServerstate == *"inactive (dead)"* ]]
       then
           echo 'wifiRaspServerstate is not running. Restarting wifiRaspServer...'
           sudo systemctl restart serverWlan02.service
           echo 'wifiRaspServerstate restarted.'
    fi

crontab provvede a lanciare questo script periodicamente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.