Hallo zusammen,
ich möchte gerne mit einer Logik Außenlicht für 3 minuten einschalten und anschließend wieder aus. Dazu habe ich aktuell man das time.sleep (180) verwendet. Aber das ist ja sicherlich programmiertechnisch sehr unsauber, da es das System blockiert. Manche Funktionen laufen dann nicht mehr einwandfrei, so lange der PC am Schlafen ist. Gibt es da auch eine andere Lösung. Anbei mal die aktuelle Logik:
Ich könnte auch versuchen einen Sheduled Job für das Ausschalten zu erstellen. Gibt es da auch einen Einzeiler für? Ich möchte nach Möglichkeit alles in diesem einen Skript abhandeln und nicht ein anderes aufrufen, welches das Licht dann nur ausschaltet.
Vielleicht habt ihr ein paar Tipps für mich.
Danke
Gruß
loeserman
ich möchte gerne mit einer Logik Außenlicht für 3 minuten einschalten und anschließend wieder aus. Dazu habe ich aktuell man das time.sleep (180) verwendet. Aber das ist ja sicherlich programmiertechnisch sehr unsauber, da es das System blockiert. Manche Funktionen laufen dann nicht mehr einwandfrei, so lange der PC am Schlafen ist. Gibt es da auch eine andere Lösung. Anbei mal die aktuelle Logik:
Code:
[COLOR=#008000]#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Imports # Maybe needs to install "apt-get install python-requests"[/COLOR] import time [COLOR=#008000]# ------------------------------------------------------------------------------------------------ # Beschreibung # Dieses Skript prüft den BWM und schaltet das Außenlicht. # ------------------------------------------------------------------------------------------------ # Logik aktiv?[/COLOR] if sh.ZENTRAL.LOGIKEN.BWM_LIGHT(): [COLOR=#008000] # Für Debug Zwecke wird angezeigt das das Skript gestartet wurde[/COLOR] logger.debug('{} : START : trigger={}'.format(logic.name, trigger)) ... [COLOR=#008000] # Prüfung ob es auch dunkel ist (nacht)[/COLOR] if sh.env.location.night(): ... # Prüfung, ob das Licht aktuell auch aus ist if not sh.R93.LICHT.SUED(): [COLOR=#008000] # Info im Meldesystem[/COLOR] sh.messagesystem('INFO', 'Licht im Garten aktiviert (3min)') sh.R93.LICHT.SUED('on') [COLOR=#008000] # Zeit abwarten bevor das Licht wieder ausgeschaltet wird.[/COLOR] [COLOR=#FF0000]time.sleep(180)[/COLOR] [COLOR=#008000] # Licht wieder ausschalten[/COLOR] sh.R93.LICHT.SUED('off') else: ... [COLOR=#008000] # Für Debug Zwecke wird angezeigt das das Skript beendet wurde # So kann eingesehen werden, welche Ausgaben zwischenzeitlich ausgegeben wurden.[/COLOR] logger.debug('{} : ENDE'.format(logic.name)) else: ...
Vielleicht habt ihr ein paar Tipps für mich.
Danke
Gruß
loeserman
Kommentar