1.) Du reagierst per Event auf das Update der Variablen. Ist natürlich etwas gefummel weil Du ja wahrscheinlich mehrere Abfallarten hast und dann auf jede einzeln reagieren musst.
2.) So mach ich es auch - ich lass vom Modul ein Script laufen „Erweiterte Einstellungen …“
Hier mal mein Script (aber Achtung, das ist auch etwas tricky, weil es über die Links aus meiner Visualisierung heraus alles macht!
<?php
################################################################################
# Script: Calendar.SortByDate.ips.php
# Version: 1.0
# Author: Heiko Wilknitz
#
# Sortiert nach Datum die Links für Entsorgungstermine
#
# ----------------------------------- ID´s -------------------------------------
#
# Nicht das Modul selbst sondern nur der Visualisierungs-"Vater"
$parentID = 18852;
#
################################################################################
$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);
}
if (strtotime($dates[0]['date']) === strtotime('tomorrow')) {
$linkname = IPS_GetName($dates[0]['link']);
IPS_RunScriptWaitEx(34026 ,
array('action' => 'add', 'text' => 'Morgen '.$linkname, 'expires' => time() + 86400,
'removable' => true, 'type' => 3, 'image' => 'Recycling'));
}
################################################################################
?>
Danke, Skript läuft, habe nur 3 Termine und zwei davon sind immer gleich. Daher schreib ich mir nun einfach eine String Variable mit einer Nachricht und ein Ablaufplan prüft täglich um 18Uhr ob die String Variable gefüllt ist, wenn ja, dann wird eine push gesendet und danach die String Variable geleert…
Spannend wäre noch wann die Termine aktualisiert werden, wenn dies nach 18Uhr geschieht könnte ich ja sonst die Push einen Tag zu spät bekommen?
ich bekomme beim Klick auf Aktualisieren folgende Fehlermeldung:
Objekt mit Ident 5 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 10 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 14 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 49 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 50 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 51 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 52 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Warning: Objekt mit Ident 53 wurde nicht gefunden in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/VariableHelper.php on line 44
Scheinbar wurde bei mymuell.de was geändert. Für Nordhorn steht beispielsweise 2021 dahinter und es gibt keine aktuellen Daten. Die ausgabe des Kalenders sagt aber aus, dass mymuell noch richtig sei.
Diese 7 Entsorgungsgebiete gibt es jetzt auch ohne den Zusatz ’ - 2021’ und bieten auch Termine für 2023 an
Ansonsten sind gleich auch noch 2 Hände voll an neuen Entsorgungsgebieten dazu gekommen (z.B. im Raum Berlin). Hab aber irgendwie verpennt die rauszuschreiben
habe gerade dein Modul aus dem Store installiert und habe versucht meinen Landkreis „Fürstenfeldbruck“ einzubinden.
Da ich meinen LK weder bei Abfall.IO, AbfallNavi noch bei MyMüll fand wollte ich es über den Anbieter AWIDO versuchen.
Leider bekomme ich nach dem erstellen der Instanz bei einem Klick auf „Konfigurieren“ folgenden Fehler ausgeworfen.
Konnte Konfigurationsform nicht laden
Notice: Undefined index: clients in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php on line 108
Fatal error: Uncaught TypeError: Return value of Awido::ExtractClients() must be of the type array, null returned in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php:108
Stack trace:
#0 /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php(74): Awido->ExtractClients('https://api.asm...')
#1 /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/Awido/module.php(109): Awido->GetClientOptions('awido')
#2 /-(3): Awido->GetConfigurationForm()
#3 {main}
thrown in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php on line 108
Abort Processing during Fatal-Error: Uncaught TypeError: Return value of Awido::ExtractClients() must be of the type array, null returned in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php:108
Stack trace:
#0 /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php(74): Awido->ExtractClients('https://api.asm...')
#1 /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/Awido/module.php(109): Awido->GetClientOptions('awido')
#2 /-(3): Awido->GetConfigurationForm()
#3 {main}
thrown
Error in Script /var/lib/symcon/modules/.store/de.wilkware.ips.modul.awido/libs/ServiceHelper.php on Line 108 (Code: -32603)
Änderungen übernommen
Wie gesagt, alle anderen Anbieter lassen sich konfigurieren, nur AWIDO nicht.