# Initiator: Shelly Timeout

## Ressource automatisch nach Leerlaufzeit freigeben mit Shelly  


Das folgende Script setzt ein Shelly nach einer Idle-Zeit (wenn der Stromschwellwert länger als `<span class="n">TIME_THRESHOLD</span>` Minuten (Standard hardkodiert: 15 Minuten) unterhalb eines Schwellwert `<span class="n">POWER_THRESHOLD</span>` (Standard: 0) ist) zurück in die Ausgangslange und führt einen Reset zum Status `FREE` durch.

Konfigurierbare Parameter (Reihenfolge ist zu beachten!):

- Host (IP, FQDN)
- Shelly\_ID
- Power Treshold (Volt) als Integer (Ganzzahl)

Code: [https://gitlab.com/fabinfra/fabaccess/shelly-timeout](https://gitlab.com/fabinfra/fabaccess/shelly-timeout)

## Installation

```285461
mkdir -p /opt/fabinfra/adapters/
cd /opt/fabinfra/adapters/
git clone https://gitlab.com/fabinfra/fabaccess/initiators/shelly-timeout.git
chmod +x shelly-timeout/main.py
chown -R bffh:bffh /opt/fabinfra/adapters/shelly-timeout/

cd /opt/fabinfra/adapters/shelly-timeout/
python3 -m venv env
. env/bin/activate #activate venv
pip install -r requirements.txt
```

## In FabAccess einbinden

### bffh.dhall Snippet

```ini
        YOUR_INITIATOR_ID =
        {
           module = "Process",
            params =
            {
                cmd = "/usr/bin/python3",
                args = "/opt/fabinfra/adapters/shelly-timeout/main.py 127.0.0.1 shelly1-REDACTED_ID 5",
            }
        },

```

Außerdem muss eine `init_connection` zu einer Ressource definiert werden, um den Initiator zu verwenden.