Modul [AWIDO] - Abfall Wirtschaft Daten Online

Hi zusammen,

dank unserem Landkreis und ein paar freien Tagen übers neue Jahr hat mein zweites Modul das Licht der Welt erblickt :wink:

Thema ist diesmal Abfall-/Entsorgungstermine. Ich hatte das frühere mühsam in einem Script verpackt, wo ich jedes Jahr die Daten per Hand am Jahresanfang eingetragen habe. Dank unserem Landkreis, welches zum Jahreswechsel allen Bürgern ein Geschenk in Form eine Online-App von awido gemacht hat, konnte ich das jetzt automatisieren und gleich in ein Modul verpacken. Damit vielleicht einige im selben oder anderen verfügbaren Gebieten (siehe Doku) etwas davon haben :cool:

Das Aufwendigste war die dynamische Konfiguration, welche mich um den Schlaf gebracht hat. Bin immer noch nicht 100% glücklich, aber für das ehr seltene Konfigurieren solcher Dinge ganz okay!

Ich habe es jetzt nur intensiv mit meinem Landkreis getestet und es ist ja auch noch ganz frisch, also einfach mal schauen ob es bei Euch geht und dann Feedback geben!

In diesem Sinne - viel Spaß dabei!
Euer Pitti

Bitte die Doku lesen unter:
GitHub - Wilkware/IPSymconAwido: Version 1.0

GIT-Adresse zum installieren:
git://github.com/Wilkware/IPSymconAwido.git

Vielen Dank für das Modul und die ordentliche Doku.

Hab das mal installiert und werde damit „spielen“

Hallo,

danke für das tolle Modul. Funktionierte auf Anhieb.

Bisher hatte ich immer alle Termine von Hand in ein Script eintragen müssen, was nun dank Deinem Modul endlich entfällt. Echt Klasse !!! :smiley:

Ich würde mir aber noch eine TEST-Schaltfläche im Modul wünschen. Man muß nämlich immer warten, bis der Timer abgelaufen ist, um zu sehen, ob sich die Variablen auch mit Daten füllen. Also eine Art „manuelle Ausführung“.

Gruß Proxima

Danke…funktioniert bestens :slight_smile:

Freut mich! Vielleicht könntet ihr mir noch schreiben welchen Landkreis ihr nutzt, gern auch als PN - nur damit ich weiß was schon getestet wurde.

Ja, das mit den leeren Werten habe ich auch schon bemerkt, kommt.

Gesendet von meinem Lenovo YT3-X50F mit Tapatalk

Landkreis: Donau-Ries

Gruß Proxima

Hallo,

mir ist aufgefallen, dass kein Datum für die Papiertonne ermittelt wird.

Gruß Proxima

Konnte den Fehler schon finden :mad:

Wenn mehrere Sachen an ein und dem selben Tag abgeholt werden, dann liefert die Schnittstelle sie nicht einzeln, sondern zum Datum als Aufzählung. Sowas hatte ich bei meinen Tests noch nicht. Darum ist das Datum vom Gelben Sack auch falsch, Restmüll, Papiertonne und Gelber Sack kommen alle 3 am 20.01.

Am Wochenende versuche ich es zu fixen - melde mich dann!

Danke Pitti

Also, die Sache habe ich jetzt doch schon gefixt - nur noch nicht eingecheckt. Will gleich noch die gewünschte Anforderung von Dir mit der TEST-Schaltfläche mit da zunehmen.

Bei der Sache ist mir aufgefallen das der „RestmüllContainer“ und der „PapierContainer“ angeboten werden (auch hier: http://awido.cubefour.de/Customer/awv-nordschwaben/mobile/#load, aber dann dafür keine Daten geliefert werden :confused:

Wie ich an Deinen Screenshots sehe hast Du die Variablen auch gelöscht. Wird wohl eine Unzulänglichkeit bleiben :frowning:

Gruß Pitti

Fix ist eingecheckt! Schau mal ob Du ohne Löschen und Neuanlage hinkommst.

Ciao

Hallo,

läuft perfekt. Ohne Neuinstallation. Alle angewählten Daten werden ausgelesen. Testbutton funktioniert ebenfalls.

Vielen, vielen Dank !!!

Gruß Proxima

Das Modul hat jetzt noch ein kleines aber feines Update bekommen:

[ul]
[li]NEU: Bei Neuauswahl werden nicht mehr alle Variablen gelöscht und neu angelegt, somit behalten bestehende Links ihr Ziel.[/li][li]NEU: Es kann ein Script nach Aktualisierung der Daten ausgeführt werden, z.B. zum Sortieren oder Senden von Erinnerungsnachrichten.[/li][/ul]

Ich habe alle Daten als Link unter einem Dummy Modul zu hängen und lass die Position über das Script steuern (Beispiel: nächste Entleerung als Erstes usw.):

<?
################################################################################
# Scriptbezeichnung: System.SortByDate.ips.php
# Version:	1.0
#
# Sortiert nach Datum die Links für Entsorgungstermine
#
# ----------------------------------- ID´s -------------------------------------
#
# Nicht das Modul selbst sondern nur der Visualisierungs-"Vater"
$parentID = <hier id> /*[Visualisierung\Übersicht\Entsorgungstermine]*/;
#
################################################################################

$childs = IPS_GetChildrenIDs($parentID);

$dates = array();
foreach($childs as $link) {
	$array = IPS_GetLink($link);
	$value = GetValue($array['TargetID']);
	$dates[] = array("date" => $value, "link" => $link);
}

function SortByDate( $a, $b ) {
    return strtotime($a["date"]) - strtotime($b["date"]);
}
usort($dates, "SortByDate");

for ($i = 0; $i < count($dates); $i++) {
	IPS_SetPosition($dates[$i]["link"], $i);
}

################################################################################
?>

Viel Spaß
Heiko

Hallo,

danke für das tolle Modul. Das war meine 1. erfolgreiche Übung in IPS, mit dem ich gestern begonnen habe :).
Die Termine werden mir angezeigt, das passt soweit. Da ich ziemlicher Laie bin, habe ich noch Fragen.

Dein Script zum sortieren der Termine habe ich angelegt. Als parentID habe ich die ID der AWIDO Instanz angegeben. Wenn ich das Script ausführe, bekomme ich diese Fehlermeldung:


Warning:  Link #22642 does not exist in /var/lib/symcon/scripts/26468.ips.php on line 19
Warning:  Variable #0 does not exist in /var/lib/symcon/scripts/26468.ips.php on line 20

Das Script sieht so aus

 <?
################################################################################
# Scriptbezeichnung: System.SortByDate.ips.php
# Version:    1.0
#
# Sortiert nach Datum die Links für Entsorgungstermine
#
# ----------------------------------- ID´s -------------------------------------
#
# Nicht das Modul selbst sondern nur der Visualisierungs-"Vater"
$parentID = 35490 /*[Visualisierung\Übersicht\Entsorgungstermine]*/;
#
################################################################################

$childs = IPS_GetChildrenIDs($parentID);

$dates = array();
foreach($childs as $link) {
    $array = IPS_GetLink($link);
    $value = GetValue($array['TargetID']);
    $dates[] = array("date" => $value, "link" => $link);
}

function SortByDate( $a, $b ) {
    return strtotime($a["date"]) - strtotime($b["date"]);
}
usort($dates, "SortByDate");

for ($i = 0; $i < count($dates); $i++) {
    IPS_SetPosition($dates[$i]["link"], $i);
}

################################################################################
?> 

Was muss ich ändern, damit das Script läuft?

Gibt es eine Möglichkeit, die Anzahl der Tage bis zum nächsten Termin anzuzeigen? Als z.B. Mülltonne Leerung in 3 Tagen, Papiertonne Leerung in 15 Tagen.

Gruß
AKL

Hi Proxima,

das Beispielscript geht davon aus das alle Datumsvariablen als Link unterhalb eines Dummy Modules vorliegen, also nicht direkt auf das Modul gehen.
Normalerweise trennt man Datenhaltung/Datenerzeugung von der Visualisierung, d.h. Im WebFront sollte man nur mit Links auf die Orginalvariablen verweisen. Hilft generell bei der Trennung von Inhalt und Struktur.
Erstelle einfach fürs WebFront ein Dummy Modul mit dem Namen Entsogungstermine und erstelle unterhalb die Links auf die vom Modul generierten Variablen. Dann gib die ID des Dummy Moduls als Vater ID an und es sollte laufen.

Das mit den berechnen der Tage im Voraus kann das Modul nicht. Kannst Du aber auch über das Scribt steuern, so mach ich es. Bei mir wird das immer ein Tag vorher aktiviert.
Bin gerade im Skiurlaub und komme erst am WE wieder an mein System um mein Script zu posten.

Ciao Heiko

Gesendet von iPad mit Tapatalk

Hallo Heiko,

danke für deine Unterstützung. Habe deine „Anweisungen“ befolgt und nun werden die Termine schön sortiert angezeigt. Im Anhang siehst du, wie ich es jetzt angelegt habe.

Die eigentliche Instanz „Abfallwirtschaft“ ist im WebFront als „nicht sichtbar“ angelegt. Nur die links im Dummy Modul „Entsorgungstermine“ werden im WebFront als „sichtbar“ angelegt. Sehe ich das so richtig?

Meine ersten Schritte in IPS sind noch sehr holperig :o

Vielen Dank nochmal & Gruß
AKL

Hi AKL,

ja, grundsätzlich richtig :slight_smile:

Bei mir ist das alles etwas anders aufgebaut - musste hier auch mal im Forum rumstöbern nach Strukturierung, Visualisierung usw. - da gibt es natürlich private Vorlieben wie man alles am besten im Objektbaum strukturiert.

Ich habe 3 Hauptordner unterhalb von „IP-Symcon“ (heißt bei mir auch anders, z.B. Haus)

=> „Steuerung“ - da sind alle meine Scripte, Module usw. drunter nach Anwendungszweck hinterlegt
=> "Systeme " - da sind die wirklichen Geräte zur Haussteuerung nach Hersteller organisiert, z.B. Homematic, FS20, Logitech
=> „Visualisierung“ - da gibt es 3 Unterordner für meine Visualisierungen (AppleWatch, Mobile iOS und WebFrontend), jeweils mit mehr oder wenigeren Kategorien, Dummy Modulen und ganz vielen Links auf die „realen“ Objekte

Vielleicht hilft es Dir ja, Ciao
Heiko

Hi zusammen,

2 neue Landkreise (Ansbach & Coburg) sind hinzugekommen.

Ciao Heiko

Hallo pitti,

ich habe heute einmal auf die IPS-Version 4.2 (Testing Kanal) aktualisiert. Dabei wurde Dein Awido-Modul mit einem grauen Ausrufezeichen markiert. Beim doppelt darauf klicken erhielt ich folgende Meldung:

Nach dem Löschen des Moduls und der zugehörigen Variablen und erneutem hinzufügen des Moduls erscheint folgende Meldung:

Awido02.png

Bitte den Fehler korrigieren, da dieses Modul eines der wichtigsten Module ist, das ich nutze.
Vielen Dank !!!

Gruß
Proxima

Hallo Proxima,

ohh, böser Fehler :frowning: aber schnell behebbar - bitte neue Version auschecken und testen!

Danke Dir
Heiko

Hallo pitti,

gleich getestet und :

… allerdings werden die Variablen usw. angelegt. Werte aktualisieren funktioniert ebenfalls. Vielleicht kommt die Fehlermeldung weil ich die Instanz nach dem Löschen neu anlegen musste???

Gruß
Proxima