piSchedule . Übersicht

English Version

Beleuchtung flexibel schalten mit WLAN/Tasmota . 2020-10-27


piSchedule ist eine Anwendung zum zeitgesteuerten Schalten von Geräten nach definierbaren Tagesplänen, die mit Sonnenauf-/untergang sowie durch Zufallszeiten variieren können. Mit dieser variabel gestalteten Hausbeleuchtung kann Anwesenheit und Aktivität simuliert werden.

piSchedule ist eine einfach zu bedienende Browser Anwendung lauffähig auf Smartphones, Tablets oder auf PC's. Mittels Menüsteuerung erfolgen Einstellungen, Betrieb, das Verfolgen von Meldungen oder das Aufrufen der Dokumentation.

piSchedule richtet sich an Benutzer, die nach der initialen Installation das zeitgesteuerte Schalten wie auch die Anpassung des Tagesplanes mit den üblichen Elementen eines Smartphones oder PCs vornehmen möchten.

      piSchedule Start Page

Siehe auch ▸ piSchedule auf Smartphone und PC

piSchedule ist ein Python Programm das auf einem RaspberryPI (RPI) installiert wird ▸ Beschreibung des Setups. Nach der Installation ist die Benutzung der RPI Konsole typischerweise nicht mehr erforderlich. Die Konsole kann u.a. zur Anzeige von Log Meldungen genutzt werden.


Schalten mit Zeitplan -- Überblick

piSchedule bietet ein einfaches menügesteuertes Konzept für die Bedienung.

Job Definition

Mit piSchedule definiert der Nutzer zu welcher Zeit ein Gerät geschaltet werden soll -- dies wird als Job bezeichnet. Die Zeit Definition eines 'Jobs' erfolgt mit absoluter Zeitangabe, relativ zu einer vorher definierten Zeit (z.B. um ein Gerät nach einer bestimmten Zeit auszuschalten) oder auch relativ zu Sonnenaufgang / Sonnenuntergang. Alle Zeitangaben sind variable mit Zufallszeiten. Mehrere Aktionen für dasselbe Gerät können als ein Job definiert werden.

Tagesplan

Ein Tagesplan besteht aus einer Reihe von zusammengefassten Jobs. Die Tagesplan Definition bezieht sich jeweils auf einen Tagesablauf und wird unter einem beliebigen Namen als Text Datei (mit Erweiterung '.ini') abgespeichert -- z.B. piSchedule.ini.

      piSchedule Start Page

Diese Darstellung zeigt die Verwendung der Menü Steuerung für die Erstellung von Jobs. Der Tagesplan kann auch mit einem einfachem Text Editor (vi, nano etc) erstellt werden.

Aus den erstellten und gespeicherten Tagesplänen wählt der Anwender einen gewünschten Plan aus. piSchedule berechnet damit die aktuellen Schaltzeiten unter Berücksichtigung der Angaben, die sich auf den Sonnenaufgang, Sonnenuntergang und Zufallszeiten beziehen.

Bei der Aktivierung eines Jobs erfolgt eine Konsistenz Prüfung der resultierenden Zeitangabe. Wird eine bereits vergangene Zeit für einen Job errechnet, wird dieser ignoriert und in einer piSchedule Log-Datei protokolliert.

(Detaillierte Beispiele und zusätzliche technische Aspekte der 'piSchedule Jobs' sind beschrieben in ▸ Zeitsteuerung - Beispiele)

Wochenplan

Der Wochenplan definiert für jeden Wochentag unterschiedliche Tagespläne. Ist für einen Wochentag kein Tagesplan definiert (oder ist er nicht verfügbar), wird der Plan des vorherigen Tages weiterverwendet. So lassen sich unterschiedliche Pläne für die Tage Montag bis Freitag und für das Wochenende angeben.

Die Einstellungen erfolgen auf der Seite "Tagesplan/Wochenplan bearbeiten".

      piSchedule Start Page

Für jeden Wochentag wird in dem Menüfenster ein 'Tagesplan' aus den vorhandenen Tagesplänen ausgewählt. Die Auswahl ' -- ' entfernt einen vorher ausgewählten Tagesplan, damit wird der Tagesplan des vorherigen Wochentages verwendet.

piSchedule -- Grundeinstellungen

Beim Starten von piSchedule werden individuelle Einstellungen / Präferenzen ermittelt:

piSchedule Starten

piSchedule wird gestartet auf der Konsole mit
sudo service piSchedule start

Wichtige Hinweise

Die weitere Bedienung erfolgt über den Browser (Web-GUI). Die Startadresse für piSchedule wird bei der Installation angegeben in der Form
http://{server}:{port}/   oder   {RPIname}:{port}/
Der RPIname ist in der Router Konfiguration definiert.
An der Konsole lassen sich diese Angaben abrufen mit

   $ ./systemAndPort.py
        ['raspberrypi:5005', '192.168.1.80:5005']            (Beispiel Angaben)


Mit einer dieser Angaben in der Adresszeile des Browsers startet piSchedule.

      piSchedule Start Page

piSchedule beenden

piSchedule wird auf der RaspberryPI Konsole abgebrochen mit
pi@raspberrypi / $ sudo service piSchedule stop,
oder abbrechen im Browser mit: http://{server}:{port}/close.
Ein Neustart ist aber nur über die Konsole möglich!


piSchedule auf Smartphone/Tablet oder PC

Die piSchedule Bedienung erfolgt mit dem Browser. Die Konsole ist nur in Ausnahmefällen notwendig, z.B. zur Betrachtung von Log Dateien.

Die piSchedule Startadresse http://{server}:{port} im Adressfeld des Browser eingegeben öffnet die piSchedule Web-Seite mit der 'Übersicht' der bekannten WLAN/Sonoff Geräte (siehe auch oben).

Hinweis     Das info Info-Symbol öffnet Dokumentationen zum Kontext.

Hauptmenü / Home Page

      Home Page

Die Kopfzeile ist eine Menü-Schaltfläche für die Navigation. Das geöffnete Menü bietet den Zugang zu den piSchedule Funktionen. Von dort geht es auch wieder zum Hauptmenü (Übersicht/home).


Navigation mit dem Hauptmenü (Beispiel: Anzeige auf Mobilgerät)

      Home Page


Der untere Teil des Navigationsmenü bietet Unterstützungsfunktionen:

Aktueller Tagesplan

Der aktueller Tagesplan zeigt die errechneten, bevorstehenden Schaltvorgänge wie sie im aktuellen Tagesplan definiert sind.

      Dayplan Selection


Die Seite präsentiert in zwei Abschnitten:

  1. Menüleiste mit Schaltflächen
    ▸ Die blaue Schaltfläche     dient als Menü zur Auswahl und zum Laden eines gespeicherten Tagesplanes. Nach dem Laden zeigt die Schaltfläche den Namen des gewählten Tagesplans. Für einen ausgewählt Tagesplan erfolgt eine Neu-Berechnung aller Zeiten; nur die resultierenden Schaltzeiten, die nach der aktuellen Zeit liegen werden aufgeführt.
    ▸ Icon Aktualisieren     Der Tagesplan wird mit den noch anstehenden Jobs angezeigt. Die Zeiten werden nicht neu berechnet!
    ▸ Icon Timeline     Der aktuelle Tagesplan wird als Balkendiagramm dargestellt, eine Änderung der einzelnen Jobs/Schaltvorgänge ist interaktiv am Bildschirm möglich. Einzelheiten und Bedienung siehe hier: ▸ Timeline
    Tages-Logs     Zeigt eine Seite mit den ausgeführten Jobs (siehe unten) des Tagesplans.
    ▸ Die plus Schaltfläche wird genutzt, um zusätzliche Jobs zu definieren. Diese gelten aber nur für den laufenden Tag. Wird der Tagesplans neu geladen, werden diese hinzugefügten Jobs entfernt. Zum permanenten Hinzufügen von Jobs zu einem Tagesplan siehe ▸ Tagesplan/Jobs Editieren.
    ▸ Das Info-Symbol info öffnet eine Hilfe Seite zu diesen Funktionen.

  2. Aktuelle Schaltvorgänge des Tages
    Diese Tabelle zeigt alle für den Tag noch anstehenden Jobs. Die Tabellenzeilen resultieren aus der Auflösung des aktuellen Tagesplanes (siehe blaues Menüfeld oben).
    Neben den Schaltzeiten ist die EIN- oder AUS-Anweisung zu sehen. Bei AUS-Anweisungen zeigt ein Klammerausdruck die zugehörige EIN-Anweisung.
    Mit der minus Schaltfläche in den Tabellenzeilen lässt sich der Schaltvorgang löschen. Auch hier wieder ist dies nur gültig solange der Tagesplan nicht neu geladen wird.

Job Listen Bearbeiten

Mit dem Haupt Menü wird die Erstellung oder Bearbeitung von Tagesplänen / Joblisten aufgerufen.

      Edit Job Lists

Die blaue Menüschaltfläche [Tagespläne] bietet alle vorhandenen Tagespläne (INI/Text-Dateien) zur Auswahl für die Bearbeitung der Jobs. Die geöffnete Seite ermöglicht es interaktiv Tagespläne anzulegen, zu bearbeiten und abzuspeichern (als INI/Text Datei).
Diese Funktion ist ausführlich beschrieben unter ▸ Tagesplan/Jobs Editieren

Beispiele für INI/Text und Prefs Dateien

Tages-Logs

      Day Logs

Der Aufruf dieser Seite lädt automatisch eine Liste der [Heute] bereits ausgeführten Schaltaktionen.
[Tag wählen]     -- Zeigt ein Menü mit den Wochentagen, um alternativ die Liste eines anderen Wochentages aufzurufen.
piSchedule schreibt diese Log Dateien jeden Tag im Wochenrhythmus neu.


piSchedule Setup

piSchedule ist ein Python Programm das auf dem RaspberryPi installiert wird.

Die Installation/Setup ist ausführlich beschrieben auf der Seite ▸ piSchedule Setup

Start/Stop mit 'service' auf der RPI Konsole

Der Befehl 'service' kontrolliert die Ausführung des piSchedule Programms auf dem RPI, siehe auch:

   pi@raspberrypi ~ $ sudo service piSchedule
      Usage: /etc/init.d/piSchedule {start|stop|restart|status}

Das Programm System wird im Hintergrund ausgeführt.

--------------------------

piSchedule Einstellungen / Präferenzen

piSchedule wird durch Parameter gesteuert, diese werden in der Datei piSchedule.prefs.json gespeichert. Ist diese Datei nicht vorhanden, ermittelt piSchedule die Werte selbsttätig und speichert sie zur weiteren Nutzung ab.

Am RPI System Prompt kann die Präferenzdatei piSchedule.prefs.json zurückgesetzt werden:
        sudo echo "{}" > ~/schedulePlus3/data/piSchedule.prefs.json

Danach ist piSchedule neu zu starten, siehe oben.

Anzeigen der aktuellen Präferenzen auf der WEB Seite mit:
        http://{server}:{port}/prefs   oder   {RPIname}:{port}/prefs

Ortsdaten - Sonnenauf-/untergang

Die täglichen Zeiten für Sonnenaufgang und -untergang berechnet piSchedule aus dem Installationsort des RPI mittels des Internetzuganges (IP Code) bzw. der GeoCoordinaten (Latitude/Longitude).

Die GeoCoordinaten werden mit der folgenden Methoden zur Verfügung gestellt:
    ▸ Internetdienst http://ipinfo.io/

Sollten die GeoCoordinaten nur ungenau ermittelt worden sein, können Longitude/Latitude auch manual angegeben werden. Dazu sind die Parameter mit "geoCoordinates" anzugeben. (Siehe auch unten)

Ausschnitt aus der Präferenzdatei für die Ermittelung von Sonnenaufgang und -untergang

    "latitude": "52.758",
    "longitude": "5.192",
    "sunset": "2020-09-15 17:18:18",
    "sunrise": "2020-09-15 07:13:43",

Sprachanpassung

piSchedule unterstützt die Sprachen Deutsch (DE) und Englisch (EN) für die Browser-Web-GUI.

Andere Sprachen für die Web-GUI können unterstützt werden durch die Erweiterung der Datei ~/schedulePlus3/piStrings.json.
Eine solche zusätzliche Sprach-/Dateierweiterung wird direkt mit einem Neustart von piSchedule aktiviert.
Hinweis
Die Dokumentation für andere Sprachen wird in der Download-Struktur der Anwendung gespeichert. (Bitte Unterstützung durch den Autor anfordern).

Präferenzen setzen

Bestimmte piSchedule Präferenzwerte lassen sich über die WEB-Oberfläche direkt ändern mittels
http://{server}:{port}/{prefs}?{wert}:

Hinweis     Das Zeichen | steht für alternative Angabe, also z.B. DE oder EN
Es sind keine Umlaute zulässig (nur ASCII Zeichen); z.B. ersetze   ü  mit  ue   etc.

piSchedule Logging

Alle Ein/Aus-Schaltvorgänge werden gespeichert in Dateien pro Wochentag (Montag.log ... Sonntag.log) (siehe https://{server}:{port}/logs).
piSchedule schreibt zusätzlich Log Dateien in das Verzeichnis ~/schedulePlus3/logs/.

Ausgabe auf der Konsole mit

Siehe auch log-Dateien mit '.log.1' und '.log.2'


Beiträge / Unterstützung

Dank geht an [framp]! Sein Feedback, Testen sowie seine Linux Erfahrung haben zu Verbesserungen von Programm und Dokumentation beigetragen.


© gNeandr     --     piSchedule ist ein freies Open Source Projekt     --     Feel free to use it.

Donate button     Spende was piSchedule Dir wert ist.
Kommentare, Fragen und Rückmeldungen im piSchedule Forum