Hi,
ich wollte mal meine Umsetzung vorstellen, nur auf Basis von händsch befüllten Variablen, einem Programm, 13 Bildern und Mediola.
Dieser funktioniert in der von mir verwendeten Version nur wenn maximal zwei verschiedene "Mülltypen" am gleichen Tag abgeholt werden.
Die Ideen und die Scriptteile habe ich mir hier im Forum zusammengesucht und angepasst, vielleicht kann es ja jemand brauchen.
1. System Variablen anlegen auf der CCU
Ich habe auf der CCU folgende Variablen Angelegt:
- Systemvariablen
Bei den Abfallkalendern_Bio/Gelb/Papier/Rest habe ich das Datum händisch jeweils getrennt durch ein Semikolon (Strichpunkt) eingetragen, wichtig ist hinter dem letzen Datumseintrag darf
kein Semikolon (Strichpunkt) mehr stehen.
Abfallkalender_heute wird durch ein Programm gesetzt.
2. Programm auf der CCU
- Programm
Es wird jeden Tag einmal ausgeführt und zeigt das jeweilige Symbol bis zur nächsten Ausführung an.
Hier das Script:
Code: Alles auswählen
!Liste der vorhandenen Abfallkalender Systemvariablen die abgefragt werden sollen.
string tmpA = "1Abfallkalender_Bio,3Abfallkalender_Gelb,5Abfallkalender_Papier,9Abfallkalender_Rest";
string tmpB;
!Variable für Mülltyp (papier - Gelb usw)
integer tmpC = 0;
var tmpD = dom.GetObject("Abfallkalender_heute");
!Datum des morgigen Tages berechnen
integer tmpE = 1;
integer tmpF = system.Date("%F %X").ToTime().ToInteger();
integer tmpG = tmpF + (86400 + tmpE);
string tmpH = tmpG.ToTime().Format("%d.%m.%Y");
!Alle ersteinmal auf 0 setzen
tmpD.State(tmpC);
!Jeden einzelnen Kalender abprüfen
foreach(tmpB, tmpA.Split(",")){
!Zahl vor dem Abfalltyp separieren
integer drop_type_value = tmpB.Substr(0, 1);
integer calendar_name_length = tmpB.Length();
var calendar = tmpB.Substr(1, calendar_name_length);
var datelist = dom.GetObject(calendar);
!Alle Werte zählen
var _count = web.webGetValueListCount(datelist.ValueList());
integer i = 0;
!Alle Werte abarbeiten
while (i < _count) {
!Wenn das hinterlegte Datum dem Morgigen entspricht auf true setzen
if(web.webGetValueFromList(datelist.ValueList(), i) == tmpH){
!Variable setzen
tmpC = tmpC + drop_type_value;
}
i = i + 1;
}
}
tmpD.State(tmpC);
3. Erstellen der Bilder für Mediola
Hier habe ich insgesammt 13 Bilder erstellt, die ich wie nachstehend benannt habe:
- default.png (Standartblid für die Darstellung)
- untitled.png (Bild das gezeigt wird wenn keine Auswertung möglich ist)
- state_0.png (Bild das gezeigt wird wenn kein Abholdatum auf den morgigen Tag passt)
- state_1.png (Bild für Biomüll)
- state_3.png (Bild für Gelben-Sack)
- state_4.png (Kombinationsbild für Biomüll und Gelber-Sack)
- state_5.png (Bild für Papiermüll)
- state_6.png (Kombinationsbild für Biomüll und Papiermüll)
- state_8.png (Kombinationsbild für Papiermüll und Gelber-Sack)
- state_9.png (Bild für Restmüll)
- state_10.png (Kombinationsbild für Restmüll und Biomüll)
- state_12.png (Kombinationsbild für Restmüll und Gelber-Sack)
- state_14.png (Kombinationsbild für Restmüll und Papiermüll)
4.Mediola
Hier noch die Einstellung in Mediola:
- Mediola
Das wars schon und funktioniert für mich. Anfangs vielleicht ein bisschen mehr Arbeit und bestimmt auch nicht perfekt aber funktioniert ohne Server oder sontige Kalender.
Gruß
Peoples