Müllabfuhr — ReadMe

ÜBERSICHT   —   FREISCHALTUNG  —   SCREENSHOTS

 

  1. Funk­tion­sum­fang
  2. Sys­te­man­forderun­gen
  3. Instal­la­tion
  4. Befehlsref­erenz

 

1. Funktionsumfang

Dieses Mod­ul ermöglicht die Offline-Eingabe (via WebFront, Mod­ul-Instanz, Skript) von Ter­mi­nen wann die Mül­lab­fuhr kommt. Anhand
dieser Ter­mine wer­den dann mehrere Vari­ablen mit Inhal­ten gefüllt. Ihr bekommt dann z.B. angezeigt, in wie vie­len Tagen das nächste
Mal die schwarze Tonne geleert wird. Zusät­zlich kann man sich per Push über eine anste­hende Leerung benachrichti­gen lassen,
Sprachaus­gaben (sofern passende Hard­ware vorhan­den) über eine Leerung am näch­sten Tag durchführen, …

Es wer­den nur die Mül­larten in Vari­ablen angelegt und angezeigt die in der Mod­ul-Instanz aus­ge­füllt sind. Ihr kön­nt also alle Müllsorten
ein­tra­gen oder auch nur 3 Müll­sorten. Sind die Felder "Name" und "Art" von z.B. Müll3 gefüllt, dann wer­den die Vari­ablen erstellt.
ACHTUNG — Wer­den die Felder geleert, dann wer­den die Vari­ablen, falls vorhan­den, gelöscht und die Ter­mine müssen neu einge­tra­gen werden!

Soll­ten eure Müll­ton­nen in bes­timmten Inter­vallen geleert wer­den (z.B. jeden Mittwoch ein­er unger­aden Woche, oder jeden 3. Dien­stag, …), dann kön­nt ihr in eurem Git­Lab Account, im Müllabfuhr-"Ordner" ein Skript find­en (Berechnungsskript_fuer_Abholtermine_mit_festem_Intervall.php), welch­es euch automa­tisch die entsprechen­den Tage berech­net, diese aus­gibt und auf Wun­sch auch direkt in das Mül­lab­fuhr-Mod­ul überträgt.

 

Beispiel für die Namensgebung der Variablen:

Die Vari­ablen wer­den mit dem Text in "Name" angelegt. Möchtet ihr also "Rest­müll" in der Vari­able ste­hen haben, dann muss das bei "Name" einge­tra­gen wer­den. Hät­tet ihr lieber "schwarze Tonne" in der Vari­able ste­hen, dann tragt das bei "Name" ein und "Rest­müll" bei "Art". Für den Benachrich­ti­gung­s­text habt ihr bei­des zur Verfügung!

Beispiel für die Namensgebung der Variablen:

In der Mod­ul-Instanz kön­nt ihr fol­gende Ein­stel­lun­gen vornehmen:

  • Müll­name, Mül­lart (6 Mal vorhanden)
  • Müll­ter­mine (6 Mal vorhan­den) — müssen in diesem For­mat einge­tra­gen wer­den: 01.01.2017|10.01.2017|23.01.2017|…
  • Automa­tis­ches Ent­fer­nen ver­gan­gener Abhol-Ter­mine de/aktivieren
  • Benachrich­ti­gung­se­in­stel­lun­gen (siehe weit­er unten im Abschnitt "Benachrich­ti­gung")
  • Uhrzeit für Benachrich­ti­gung bei Müll-Leerung Heute (2 ver­schiedene Uhrzeit­en möglich)
  • Uhrzeit für Benachrich­ti­gung bei Müll-Leerung Mor­gen (2 ver­schiedene Uhrzeit­en möglich)
  • All­ge­mein De/aktivierung der Benachrich­tung per CheckBox
  • Vor­la­gen für Benachrich­ti­gung­s­texte inkl. Vari­ablen (siehe weit­er unten im Abschnitt "Benachrich­ti­gung")
  • Boolean Vari­able zum Steuern der Benachrich­ti­gung (false = Benachrich­tung inak­tiv // true = Benachrich­tung aktiv)
  • WebFront Instanz für Push-Benachrich­ti­gun­gen (siehe weit­er unten im Abschnitt "Benachrich­ti­gung")
  • SMTP Instanz für Email-Benachrich­ti­gun­gen (siehe weit­er unten im Abschnitt "Benachrich­ti­gung")
  • Eigenes Skript für Skript-Benachrich­ti­gung (siehe weit­er unten im Abschnitt "Benachrich­ti­gung")

 

Benachrichtigung:

Die Art der Benachrich­ti­gung kann nur all­ge­mein gewählt wer­den, nicht für jede Müll­sorte einzeln! Aber man kann für jede Müll­sorte einzeln
ein­stellen, ob eine Benachrich­ti­gung erfol­gen soll, oder nicht. Je nach­dem, ob eine Benachrich­ti­gung per EMail/Push/Skript gewün­scht ist,
muss noch die entsprechende Instanz aus­gewählt und auf aktiv geset­zt wer­den (Hak­en set­zen). Eine Benachrich­ti­gung erfol­gt über den/die
eingestell­ten Wege zur vom Benutzer eingestell­ten Uhrzeit. Außer­dem kön­nt ihr eine Boolean-Vari­able definieren und damit die Benachrichtigungen
steuern (Bool-Vari­able TRUE = Benachrich­ti­gung, FALSE = keine Benachrichtigung).

Je Müll­sorte wird eine Benachrich­ti­gung gesendet! Bei z.B. 3 Leerun­gen am näch­sten Tag kom­men 3 Benachrichtigungen!

Im Benachrich­ti­gung­s­text kön­nen die fol­gen­den Vari­ablen ver­wen­den wer­den. Diese wer­den beim Ver­sand ein­er Benachrich­ti­gung automa­tisch übersetzt:
§MUELLART = String der in der Mod­ul-Instanz bei "Art Müll X" einge­tra­gen ist — z.B. "schwarze Tonne"
§MUELLNAME = String der in der Mod­ul-Instanz bei "Name Müll X" einge­tra­gen ist — z.B. "Rest­müll"
§MUELLDATUM = String mit Datum, wann der entsprechende Müll das näch­ste Mal geleert wird — z.B. "01.10.2016"
§MUELLTAG = String des Wochen­t­ages, an dem der entsprechende Müll das näch­ste Mal geleert wird — z.B. "Fre­itag"
§MUELLINTAGEN = Inte­ger in wie vie­len Tagen der entsprechende Müll das näch­ste Mal geleert wird — z.B. 5

Ihr kön­nt auch ein eigenes Skript fes­tle­gen, welch­es zur Benachrich­ti­gung ver­wen­det wird. Dieses Skript aus­ge­führt, wenn eine Leerung ansteht.
Über dieses Skript kann man dann Benachrich­ti­gun­gen über Push, Sonos, Enig­ma2-Nachricht, SMS, … einrichten.

Für eigene Aktionen stehen einem im ausgewählten Skript die folgenden Variablen zur Verfügung:

$_IPS["MUELL_Art"] (String der in der Mod­ul-Instanz bei "Art Müll X" einge­tra­gen ist — z.B. "schwarze Tonne")
$_IPS["MUELL_Name"] (String der in der Mod­ul-Instanz bei "Name Müll X" einge­tra­gen ist — z.B. "Rest­müll")
$_IPS["MUELL_Datum"] (Datum wann der entsprechende Müll abge­holt wird — z.B. "01.10.2016")
$_IPS["MUELL_Tag"] (Tag wann der entsprechende Müll abge­holt wird — z.B. "Fre­itag")
$_IPS["MUELL_InTagen"] (In wie vie­len Tagen der entsprechende Müll abge­holt wird — z.B. 5)
$_IPS["MUELL_Text"] (Der kom­plette Benachrich­ti­gung­s­text inkl. "Über­set­zung" der Variablen)

Beispiel-Script:


<?
$Enigma2BYinstanzID = 12345; // InstanzID des Enig­ma2­BY-Mod­ul ein­tra­gen (muss natür­lich instal­liert und ein­gerichtet sein)
IPS_LogMessage("Müllabfuhr", $_IPS["MUELL_Text"]); // Schreibt den Text ins IPS-Log (zu sehen im Mel­dun­gen-Fen­ster in der IPS-Console)
Enigma2BY_SendMsg($Enigma2BYinstanzID, $_IPS["MUELL_Text"], 3, 10); // Zeigt 10 Sekun­den lang eine Alarm-Nachricht über einen Enig­ma2-Receiv­er an
?>

 

2. Systemanforderungen

  • IP-Sym­con ab Ver­sion 4.x

 

3. Installation

Über die Kern-Instanz "Mod­ule Con­trol" fol­gende URL hinzufügen:

https://GITLAB-BENUTZERNAME:GITLAB-PASSWORT@gitlab.com/BY-IPS-Module/Muellabfuhr.git
Die neue Instanz find­et ihr dort, wo ihr sie angelegt habt.

 

4. Befehlsreferenz

$result = MUELL_Update($InstanzID);
Liest die einge­tra­ge­nen Müll­sorten aus und spe­ichert die Berech­nun­gen in die entsprechen­den Variablen.
In $result ste­hen alle in der Mod­ul-Instanz einge­tra­ge­nen Müll­sorten mit allen ver­füg­baren Informationen
zu anste­hen­den Leerungen.

MUELL_BenachrichtigungHeuteMorgen($InstanzID, string $HeuteMor­gen);
Für $HeuteMor­gen sind die Werte "Heute" und "Mor­gen" gültig. Je nach­dem was an die Funk­tion übergeben wird,
wird eine entsprechende Benachrich­ti­gung über mögliche anste­hende Leerun­gen für Heute/Morgen gesendet. Steht
keine Leerung Heute/Morgen an, dann erfol­gt auch keine Benachrichtigung.

MUELL_BenachrichtigungInTagen($InstanzID, $Muell­sorte);
Für $Muell­sorte kann man an die Funk­tion entwed­er den bei Müll-Art oder Müll-Name einge­tra­ge­nen String
(z.B. "Rest­müll" oder "schwarze Tonne") über­mit­teln. Eben­falls kann man die Müll-Num­mer (z.B. 1) verwenden.
Man erhält dann eine Benachrich­ti­gung (über die eingestell­ten Wege), in wie vie­len Tagen die entsprechende
Müll­sorte geleert wird.

$result = MUELL_AbfrageMuellsorte($InstanzID, $Muell­sorte);
Für $Muell­sorte kann man an die Funk­tion entwed­er den bei Müll-Art oder Müll-Name einge­tra­ge­nen String
(z.B. "Rest­müll" oder "schwarze Tonne") über­mit­teln. Eben­falls kann man die Müll-Num­mer (z.B. 1)
verwenden.
In $result ste­hen dann alle ver­füg­baren Infor­ma­tio­nen zur entsprechen­den Müllsorte.

MUELL_TerminEintragungMuellsorte($InstanzID, $Muell­sorte, string $Ter­mine);
Mit dieser Funk­tion kön­nt ihr über ein eigenes Skript eure Müll-Ter­mine ausle­sen (aus einem Kalen­der, einer
Inter­net­seite oder woher auch immer) und mit dieser Funk­tion ein­fach in das Mül­lab­fuhr-Mod­ul eintragen.
Für $Muell­sorte kann man an die Funk­tion entwed­er den bei Müll-Art oder Müll-Name einge­tra­ge­nen String
(z.B. "Rest­müll" oder "schwarze Tonne") über­mit­teln. Eben­falls kann man die Müll-Num­mer (z.B. 1) verwenden.
In $Ter­mine müssen die Leerungs-Ter­mine für die entsprechende Müll­sorte im fol­gen­den For­mat eingetragen
wer­den: "01.01.2016|02.02.2016|03.03.2016" (TagTag.MonatMonat.JahrJahrJahrJahr|TagTag.MonatMonat.JahrJahrJahrJahr|…)
ACHTUNG — Eventuell bere­its einge­tra­gene Ter­mine dieser Müll­sorte wer­den kom­plett überschrieben!

$result = MUELL_VergangeneTermineEntfernen($InstanzID);
Durch Aufruf dieser Funk­tion kön­nen manuell die bere­its ver­gan­genen Ter­mine für Mül­lleerun­gen/-abhol­un­gen
aus der Liste ent­fer­nt wer­den. Alter­na­tiv kann in der Mod­ul-Instanz ein Hak­en geset­zt wer­den, dann
wird jede Nacht automa­tisch aufgeräumt.