[Modul] Abfallwirtschaft - Awido, Abfall+, Regio IT, MyMüll, MüllMax, ICS

Wäre mir neu, jedenfalls hat das niemand in der BETA-Phase gemeldet. Download ist sogar weiterhin der Standard. Das Auslesen muss man schon bewußt auswählen. Also schau nochmal was bei Dir eingestellt ist bzw. ob Du es wieder korrigieren kannst. Wenn nicht, dann melde Dich nochmal.

Gruß HEiko

Hi Heiko,

Hier mal der Screen zum Fehler wenn ich die URL eintrage

Der Link enthält kein iCall-File laut Fehler.

Gruß Thimo

Naja gut, das ist aber was anderes als das es nicht mehr möglich ist :wink:

Schaue ich mir an!

Danke schön, mit nicht möglich meinte ich den Fehler :slight_smile:

Schau mal ob es passt wenn Du hinten die Semikolons durch Kommas ersetzt ( ; => ,)

https://athos.awn-online.de/WasteManagementNeckarOdenwald/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=1047031001&AboID=145362&Fra=P,Q,R,B,S,W,K
1 „Gefällt mir“

Hey pitti,

das war’s es geht wieder :slight_smile: vielen Dank für deinen gewohnt super schnellen Support :+1: :+1: :+1: :slight_smile:

Hallo Pitti,
danke für das feine Modul.
Evtl. ein kleiner Wurm?
Wenn ich bei der Farbe der Tonne einen HEX-Wert reinkopieren möchte so funktioniert dies unter Windows STRG-V nicht.
Sind zwar nur 5 Werte, wäre aber fein.
image
Liebe Grüße…

Hallo Pitti,
ein Wunsch, ein Traum, ein Featurerequest…
In der Oberfläche wird doch angezeigt in wie vielen Tagen eine erneute Entleerung / Abholung erfolgt.


Wäre es möglich diesen Wert in eine neue, zusätzliche Variable einmal oder 2x tgl. zu schreiben?
Vermtl. 2x. weil nach dem Zeitpunkt der vorausschauenden Anzeige sollte es auch nochmals laufen.
Oder muss ich mich darum selbst kümmern ?
Danke und schöne Grüße.

Ist mir bekannt und ärgert mich auch immer, aber hat nichts mit dem Modul zu tun. Der Farbauswahldialog wird von Symcon gesteuert. Da habe ich keine Anteile dran und somit auch keine Einflußmöglichkeiten :wink:

Gruß Heiko

1 „Gefällt mir“

Für welchen Anwendungszweck? Verstehe den Hintergrund nicht!

Hast Du die „Vorrausschauende Anzeige“ aktiviert, das sollte doch Deinem Ansinnen entsprechen?!?

Gruß HEiko

Anwendungszweck:
Die „Vorausschauende Anzeige“ wirkt meines Erachtens nur visuell auf Webfront bzw. Tile-Anzeige.
Ich möchte jedoch bei diesem Display Hervorragendes und günstiges Mini Touch Display immer die Mülleimer grau angezeigt lassen und wenn wir 2 Tage vor Entleerung sind dann werden diese eingefärbt - bzw. sogar die Anzahl an Tagen angezeigt - das weiß ich noch nicht wie es sich vom Platz her ausgehen wird.

Okay, Du meinst also sowas hier …

image

Und abgesehen davon, da Du das ja sowieso auf das Display selbst bringen musst - was nutzt Dir dann eine 2. Variable? Sorry, ich verstehe nicht was das Modul zusätzlich tun muss damit Du Deinen Anwendungsfall lösen kannst. Welche Info fehlt Dir?

Gruß Heiko

Genau.
Die „nächste Abholung in 2 Tagen“ berechnest du selbst aufgrund des Abholdatums ?

Genau, ich habe einfach ein Script geschrieben das alles für mich macht. Es ist natürlich auf meine Umgebung zugeschnitten, aber ich setze es mal hier rein.

Hier das Skript (ist original fürs WebFront entstanden, macht jetzt aber auch Tile und openHASP) …

<?php

declare(strict_types=1);

################################################################################
# Script:   Calendar.SortByDate.ips.php
# Version:  2.0.20230806
# Author:   Heiko Wilknitz
#
# Sortiert nach Datum die Links für Entsorgungstermine
#
# ----------------------------------- ID´s -------------------------------------
#
# Nicht das Modul selbst sondern nur der Visualisierungs-'Vater'
$parentID = 18852;
#
# Variablen für openHASP
$wiID = 23198;
$wnID = 14562;
$wtID = 53047;
$wmID = 12125;
#
# Übersetzungstabelle
$TRANS_TABLE = array(
    'Monday'    => 'Montag',
    'Tuesday'   => 'Dienstag',
    'Wednesday' => 'Mittwoch',
    'Thursday'  => 'Donnerstag',
    'Friday'    => 'Freitag',
    'Saturday'  => 'Samstag',
    'Sunday'    => 'Sonntag',
    'Mon'       => 'Mo',
    'Tue'       => 'Di',
    'Wed'       => 'Mi',
    'Thu'       => 'Do',
    'Fri'       => 'Fr',
    'Sat'       => 'Sa',
    'Sun'       => 'So',
    'January'   => 'Januar',
    'February'  => 'Februar',
    'March'     => 'März',
    'May'       => 'Mai',
    'June'      => 'Juni',
    'July'      => 'Juli',
    'October'   => 'Oktober',
    'December'  => 'Dezember',
);

$WASTE_TYPES = [
    'blue'  => ['Color'=> '#11A0F3', 'Match'=> 'papier|pappe|zeitung'],
    'green' => ['Color'=> '#58A906', 'Match'=> 'bio|grün|garten|baum|schnittgut'],
    'yellow'=> ['Color'=> '#FFC107', 'Match'=> 'gelb|plaste|pvc'],
    'red'   => ['Color'=> '#F35A2C', 'Match'=> 'schadstoff|sonder|sperr|problem'],
    'gray'  => ['Color'=> '#999A9C', 'Match'=> 'rest']
];

$WASTE_ICON_TEXT = '%s \uEA7A# ';

#
################################################################################
#
# Requires include of the global function script via autoload (__autoload.php)
# or direct in the script (uncomment next line)!
# require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.'System.Functions.ips.php');
# You can download it from here https://github.com/wilkware/ips-scripts
#
defined('WWX_FUNCTIONS') || die('Global function library not available!');

// String Params
$lookahead = false;

// get all Links
$childs = IPS_GetChildrenIDs($parentID);
// read the data
$table = array();
foreach($childs as $child) {
    $link  = IPS_GetLink($child);
    $pos   = IPS_GetObject($link['TargetID'])['ObjectPosition'];
    $name  = IPS_GetName($child);
    $type  =  RecognizeWaste($name, $WASTE_TYPES);
    $date  = GetValue($link['TargetID']);
    $days  = CalcDaysToDate($date);
    $table[] = array('date' => $date, 'link' => $child, 'pos' => $pos, 'name' => $name, 'type' => $type, 'days' => $days);
}
// sort by date
usort($table, 'SortByDate');

//var_dump($table);

$names = [];

// set the sorted positions and what happend tommorow?
for ($i = 0; $i < count($table); $i++) {
    if (strtotime($table[$i]['date']) === strtotime('tomorrow')) {
        $names[] = $table[$i]['name'];
    }
    IPS_SetPosition($table[$i]['link'], $i);
}

// tommorow overrule today
if (!empty($names)) {
    IPS_RunScriptWaitEx(34026 , ['action' => 'add', 'text' => 'Morgen ' . implode(' und ', $names) . '!', 'expires' => time() + 86400, 'removable' => true, 'type' => 3, 'image' => 'Recycling']);
}

# ------------------------------ openHASP -------------------------------------

// look ahead update
$offset = 0;
if ($lookahead) {
    foreach ($table as $row) {
        if (strtotime($row['date']) == strtotime('today')) {
            $offset++;
        } else {
            break;
        }
    }
}

// count how many pickups as next
$pickups = 0;
$pudays = $table[$offset]['days'];
foreach ($table as $pk => $row) {
    if ($pk < $offset) {
        continue;
    }
    if ($row['days'] == $pudays) {
        $pickups++;
    } else {
        break;
    }
}

// build icons & text
$wi = '';
$wn = '';
for ($i = $offset; $i < ($offset + $pickups); $i++) {
    $wi .= sprintf($WASTE_ICON_TEXT, $WASTE_TYPES[$table[$i]['type']]['Color']);
    $wn .= $table[$i]['name'];
    if ($i != ($offset + $pickups - 1)) {
        $wn .= ', ';
    }
}

// build html texts
$next = '';
// show today only if no date tommorow
if (strtotime($table[$offset]['date']) === strtotime('today')) {
    $next = 'Heute';
}
// tommorow overrule today
if (strtotime($table[$offset]['date']) === strtotime('tomorrow')) {
    $next = 'Morgen';
}
// generate widget for tile visu
if ($next == '') {
    $next = date('d.m.', strtotime($table[$offset]['date']));
    $next = strtr(date('D', strtotime($table[$offset]['date'])), $TRANS_TABLE) . '. ' . $next;
}
$wt = '';
// date infos
$days = $table[$offset]['days'];
$day  = strtotime($table[$offset]['date']);
$wd = strtr(date('l', $day),$TRANS_TABLE);
$sd = date('d.m.', $day);
if ($days > 1) {
    $wt = "Nächste Abholung:\nin $days Tagen\nam $wd $sd";
} else {
    $wt = "Nächste Abholung:\n$next\nam $wd $sd";
}
SetValue($wiID, $wi);
SetValue($wnID, $wn);
SetValue($wtID, $wt);
SetValue($wmID, $next == 'Morgen');

# ------------------------------ Functions -------------------------------------

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

function CalcDaysToDate($startDate, $endDate = null)
{
    if (empty($endDate)) $endDate = date('Y-m-d');
    return intval(round(abs(strtotime($endDate) - strtotime($startDate)) / (60 * 60 * 24)));
}

function RecognizeWaste($name, $matches)
{
    foreach ($matches as $type => $match) {
        $pm = '/(' . $match['Match'] . ')/i';
        if (preg_match($pm, $name)) {
            return $type;
        }
    }
    // Rest or all others
    return 'gray';
}


################################################################################

Hier die IDs, welche im Skript verwendet werden …


(Variablen für openHASP)


(parentID Variable)

Die $parentID zeigt auf das WebFront Dummy Modul (halt historisch gewachsen)

Man kann das bestimmt auch anders und einfacher machen, aber wie es immer ist - nerver touch a running system :smiley:

Viel Spaß Heiko

2 „Gefällt mir“

Danke Heiko,
den Spaß werde ich haben.
Du berechnest in etwa genau das was ich auch haben möchte.
Die Geschmäcker sind in etwa gleich :slight_smile:
Hans

1 „Gefällt mir“

Hi,

habe mich SEHR über das Modul gefreut, kann es allerdings nicht erfolgreich installieren auf meiner Symbox mit IP-Symcon 7.2 Unlimited.

=> Modulstore, Installation klappt
=> Konfig-Instanz wird angelegt
=> Wenn ich in der Konfig-Instanz MyMüll auswähle und anlege, wird die Instanz auch angelegt, allerdings direkt als fehlerhaft im Objektbaum ausgewiesen. Ein Doppelklick darauf lässt die Eieruhr endlos drehen

Ich habe dann probiert, IP-Symcon neu zu starten. Dann wird’s ganz magisch: die angelegte MyMüll-Instanz war weg, die ID existierte nicht mehr. Mehrmals reproduzierbar ausprobiert.

Kannst Du mir bitte helfen, das Modul zu installieren?

1.000 Dank

VG: Lars

PS: Meine Location ist 64342 Seeheim-Jugenheim, deswegen MyMüll :slight_smile:

Kannste mal versuchen einfach ne andere Instanz zu erstellen, z.B. ICS um zu checken ob es ein generelles Problem ist oder nur von Mymüll!?

Scheinbar ein generelles Problem, stellt sich jedoch etwas anders dar…

  • Modul neu installiert
  • ICS und IO installiert, beide gehen sofort auf ‚Diese Instanz ist fehlerhaft‘
  • Ist das ggf. normal, weil ich ja noch nichts konfiguriert habe innerhalb ICS/IO?
  • Beide Instanzen kann ich durch Doppelklick aufrufen und könnte konfigurieren
  • Symcon neu gestartet (nur Dienst, nicht Symbox), unverändert sind beide Instanzen da/fehlerhaft
  • Dann noch einmal MyMüll installiert, selbes Bild wie beschrieben…
  • Ewige Eieruhr bei Aufruf, nach Neustart Symcon bleibt MyMüll jetzt ebenso wie ICS/IO fehlerhaft da
  • Nach Neustart gleiches Verhalten, d.h. MyMüll: Ewige Eieruhr, ICS/IO-Aufruf funktioniert

Hast Du eine Idee, wie das klappen bzw. woran das liegen könnte?

Ich danke Dir :slight_smile:

VG: Lars

image

Ich bin gerade nicht am Rechner , aber ja die Instanzen sind nach anlegen vom Status her Rot, weil noch nicht konfiguriert. Das wird aber oben im Konfig-Dialog angezeigt was fehlt. Meinst du das mit fehlerhaft?
Man muss ja erst alle Daten auswählen und konfigurieren, ohne Wüste die Imstanz ja nicht wohin sie gehen soll um Daten abzurufen.

Das mit der Eieruhr bei Mymüll scheint dann aber ein Problem zu sein, schaue ich nachher mal bei mir.

Gruß Heiko

So habe gerade mal eine neue Instanz von MyMüll angeleget. Ging schnell und ohne Probleme …

image

Wie geschrieben wird dann oben auch angezeigt was erwartet wird!

Gruß Heiko