Skip to content

Commit

Permalink
Update v4.1.20240304
Browse files Browse the repository at this point in the history
  • Loading branch information
Wilkware committed Mar 12, 2024
1 parent 0e29522 commit ba8faf1
Show file tree
Hide file tree
Showing 39 changed files with 2,119 additions and 725 deletions.
27 changes: 21 additions & 6 deletions AbfallNavi/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# AbfallNavi

[![Version](https://img.shields.io/badge/Symcon-PHP--Modul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/)
[![Product](https://img.shields.io/badge/Symcon%20Version-6.4-blue.svg)](https://www.symcon.de/produkt/)
[![Version](https://img.shields.io/badge/Modul%20Version-2.0.20231119-orange.svg)](https://github.com/Wilkware/WasteManagement)
[![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![Actions](https://github.com/Wilkware/WasteManagement/workflows/Check%20Style/badge.svg)](https://github.com/Wilkware/WasteManagement/actions)
[![Version](https://img.shields.io/badge/Symcon-PHP--Modul-red.svg?style=flat-square)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/)
[![Product](https://img.shields.io/badge/Symcon%20Version-6.4-blue.svg?style=flat-square)](https://www.symcon.de/produkt/)
[![Version](https://img.shields.io/badge/Modul%20Version-2.1.20240304-orange.svg?style=flat-square)](https://github.com/Wilkware/WasteManagement)
[![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg?style=flat-square)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![Actions](https://img.shields.io/github/actions/workflow/status/wilkware/WasteManagement/style.yml?branch=main&label=CheckStyle&style=flat-square)](https://github.com/Wilkware/WasteManagement/actions)

IP-Symcon Modul für die Visualisierung von Entsorgungsterminen.

Expand All @@ -23,7 +23,7 @@ IP-Symcon Modul für die Visualisierung von Entsorgungsterminen.

Das Modul nutzt die von Regio IT (www.regioit.de) bereitgestellten Daten zur Berechnung der bevorstehenden Entsorgungstermine (Abfallentsorgung).

Derzeit unterstützt das Modul rund 20 verschiedene Regionen. Wenn jemand noch weitere kennt, bitte einfach bei mir melden!
Derzeit unterstützt das Modul rund 25 verschiedene Regionen. Wenn jemand noch weitere kennt, bitte einfach bei mir melden!

### 2. Voraussetzungen

Expand Down Expand Up @@ -66,6 +66,13 @@ Straße | Strasse im gewählten Ort
Hausnummer | Hausnummer (exakt/von-bis), oder Alle = gesamte Strasse
Entsorgungen | Entsorgungsarten, d.h. was wird im Gebiet an Entsorgung angeboten

> Visualisierung ...
Name | Beschreibung
--------------------------------------------- | ---------------------------------
Unterstützung für Tile Visu aktivieren? | Aktivierung, ob HTML für Kacheldarstellung erstellt werden soll
Abfallgruppen | Farbliche Zuordnung der Abfallarten

> Erweiterte Einstellungen ...
Name | Beschreibung
Expand Down Expand Up @@ -108,6 +115,14 @@ __Beispiel__: `REGIO_Update(12345);`

### 8. Versionshistorie

v2.1.20240304

* _FIX_: User-Agent für Datenabruf korrigiert
* _FIX_: Support für v7 Visualisierung verbessert
* _FIX_: Update für nicht aktivierte Abfallarten korrigiert
* _FIX_: Einige interne Vereinheitlichungen und Anpassungen
* _FIX_: Dokumentation korrigiert

v2.0.20231119

* _NEU_: Kompatibilität auf IPS 6.4 hoch gesetzt
Expand Down
17 changes: 0 additions & 17 deletions AbfallNavi/form.json
Original file line number Diff line number Diff line change
Expand Up @@ -282,23 +282,6 @@
"name": "settingsTileVisu",
"caption": "Activate support for Tile Visu?"
},
{
"type": "Select",
"name": "settingsTileSkin",
"caption": "Theme to be used (design):",
"width": "450px",
"visible": false,
"options": [
{
"label": "Light Skin",
"value": "light"
},
{
"label": "Dark Skin",
"value": "dark"
}
]
},
{
"type": "List",
"name": "settingsTileColors",
Expand Down
4 changes: 2 additions & 2 deletions AbfallNavi/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@
"General Waste": "Allgemeiner Müll",
"Organic Waste": "Bioabfall",
"Recyclable Waste": "Recyclingmüll",
"Hazardous Waste": "Gefährlicher Abfall",
"Mixed Recycling Waste" : "Leichtverpackungen",
"Hazardous Waste": "Gefährlicher Abfall",
"Mixed Recycling Waste": "Leichtverpackungen",
"HINT: Always separate different search terms with | and do not use spaces!": "HINWEIS: Verschiedene Suchbegriffe immer mit | trennen und keine Leerzeichen verwenden!",
"Disposal data ...": "Entsorgungsdaten ...",
"Update": "Aktualisieren",
Expand Down
18 changes: 10 additions & 8 deletions AbfallNavi/module.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class AbfallNavi extends IPSModule

// Service Provider
private const SERVICE_PROVIDER = 'regio';
private const SERVICE_USERAGENT = "'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36";
private const SERVICE_USERAGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36';
private const SERVICE_BASEURL = 'https://{{region}}-abfallapp.regioit.de/abfall-app-{{region}}';

// GET actions
Expand Down Expand Up @@ -76,7 +76,6 @@ public function Create()
}
// Visualisation
$this->RegisterPropertyBoolean('settingsTileVisu', false);
$this->RegisterPropertyString('settingsTileSkin', 'dark');
$this->RegisterPropertyString('settingsTileColors', '[]');
// Advanced Settings
$this->RegisterPropertyBoolean('settingsActivate', true);
Expand Down Expand Up @@ -265,7 +264,7 @@ public function GetConfigurationForm()
$colors = json_decode($this->ReadPropertyString('settingsTileColors'), true);
if (empty($colors)) {
$this->SendDebug(__FUNCTION__, 'Translate Waste Visu');
$jsonForm['elements'][self::ELEM_VISU]['items'][2]['values'] = $this->GetWasteValues();
$jsonForm['elements'][self::ELEM_VISU]['items'][1]['values'] = $this->GetWasteValues();
}
// Return Form
return json_encode($jsonForm);
Expand All @@ -285,7 +284,7 @@ public function ApplyChanges()
// Safty default
$this->SetTimerInterval('UpdateTimer', 0);
// Support for Tile Viso (v7.x)
$this->MaintainVariable('Widget', $this->Translate('Pickup'), vtString, '~HTMLBox', 0, $tilevisu);
$this->MaintainVariable('Widget', $this->Translate('Pickup'), VARIABLETYPE_STRING, '~HTMLBox', 0, $tilevisu);
// Set status
$io = unserialize($this->ReadAttributeString('io'));
$this->SendDebug(__FUNCTION__, $io);
Expand Down Expand Up @@ -350,10 +349,14 @@ public function Update()
return;
}
// fractions convert to name => ident
$i = 1;
$waste = [];
foreach ($io[self::IO_NAMES] as $ident => $name) {
$this->SendDebug(__FUNCTION__, 'Fraction ident: ' . $ident . ', Name: ' . $name);
$waste[$ident] = ['ident' => $ident, 'date' => ''];
$enabled = $this->ReadPropertyBoolean('fractionID' . $i++);
if ($enabled) {
$waste[$ident] = ['ident' => $ident, 'date' => ''];
}
}
$this->SendDebug(__FUNCTION__, $waste);
// Build timestamp
Expand Down Expand Up @@ -384,9 +387,8 @@ public function Update()
$btw = $this->ReadPropertyBoolean('settingsTileVisu');
$this->SendDebug(__FUNCTION__, 'TileVisu: ' . $btw);
if ($btw == true) {
$skin = $this->ReadPropertyString('settingsTileSkin');
$list = json_decode($this->ReadPropertyString('settingsTileColors'), true);
$this->BuildWidget($waste, $skin, $list);
$this->BuildWidget($waste, $list);
}

// execute Script
Expand Down Expand Up @@ -611,7 +613,7 @@ protected function CreateVariables()
foreach ($ids as $fract) {
if ($i <= static::$FRACTIONS) {
$enabled = $this->ReadPropertyBoolean('fractionID' . $i);
$this->MaintainVariable($fract, $io[self::IO_NAMES][$fract], vtString, '', $i, $enabled || $variable);
$this->MaintainVariable($fract, $io[self::IO_NAMES][$fract], VARIABLETYPE_STRING, '', $i, $enabled || $variable);
}
$i++;
}
Expand Down
138 changes: 138 additions & 0 deletions Abfall_ICS/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Abfall.ICS

[![Version](https://img.shields.io/badge/Symcon-PHP--Modul-red.svg?style=flat-square)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/)
[![Product](https://img.shields.io/badge/Symcon%20Version-6.4-blue.svg?style=flat-square)](https://www.symcon.de/produkt/)
[![Version](https://img.shields.io/badge/Modul%20Version-1.0.20240304-orange.svg?style=flat-square)](https://github.com/Wilkware/WasteManagement)
[![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg?style=flat-square)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![Actions](https://img.shields.io/github/actions/workflow/status/wilkware/WasteManagement/style.yml?branch=main&label=CheckStyle&style=flat-square)](https://github.com/Wilkware/WasteManagement/actions)

IP-Symcon Modul für die Visualisierung von Entsorgungsterminen.

## Inhaltverzeichnis

1. [Funktionsumfang](#user-content-1-funktionsumfang)
2. [Voraussetzungen](#user-content-2-voraussetzungen)
3. [Installation](#user-content-3-installation)
4. [Einrichten der Instanzen in IP-Symcon](#user-content-4-einrichten-der-instanzen-in-ip-symcon)
5. [Statusvariablen und Profile](#user-content-5-statusvariablen-und-profile)
6. [WebFront](#user-content-6-webfront)
7. [PHP-Befehlsreferenz](#user-content-7-php-befehlsreferenz)
8. [Versionshistorie](#user-content-8-versionshistorie)

### 1. Funktionsumfang

Das Modul bietet einen generischen Abfallkalender mittels der Bereitstellung einer iCalendar Datei (ICS).

### 2. Voraussetzungen

* IP-Symcon ab Version 6.4

### 3. Installation

* Über den Modul Store das Modul Abfallwirtschaft (ehem. Awido) installieren.
* Alternativ Über das Modul-Control folgende URL hinzufügen.
`https://github.com/Wilkware/WasteManagement` oder `git://github.com/Wilkware/WasteManagement.git`

### 4. Einrichten der Instanzen in IP-Symcon

* Unter "Instanz hinzufügen" ist das _'Waste_ICS'_-Modul (Alias: _'Abfallwirtschaft (Abfall_ICS)'_ oder _'Entsorgungskalender (Abfall_ICS)'_) unter dem Hersteller _'(Geräte)'_ aufgeführt.

__Konfigurationsseite__:

Entsprechend der gewählten Auswahl verändert sich das Formular dynamisch.
Eine komplette Neuauswahl erreicht man durch Auswahl "Bitte wählen ..." an der gewünschten Stelle.

VORSTICHT: eine Änderung der Auswahl bedingt ein Update bzw. ein Neuanlegen der Statusvariablen!!!
Alte Variablen, welche es im anderen Landkreis gab werden nicht gelöscht! Hat man diese in einem WF verlinkt muss man danach
selber aufräumen. Ich denke aber mal das ein Umzug nicht so häufig vorkommt ;-)

_Einstellungsbereich:_

> Online Dienste ...
Name | Beschreibung
----------------------- | ----------------------------------
Anbieter | 'Abfall.IO (abfallplus.de)'

> Abfallwirtschaft ...
Name | Beschreibung
----------------------- | ---------------------------------
Entsorgungsgebiet | Liste der verfügbaren Gebiete (siehe oben)
Stadt/Gemeinde | Ort im Entsorgungsgebiet (kann identisch zum Gebiet sein)
Stadt-/Ortsteil | In einigen Gegend zusätzliche Gebietseinschränkung
Straße/Abfuhrbezirk | Strasse bzw. Abfuhrbezirk im gewählten Ort
Hausnummer | Hausnummer von-bis, oder Alle = gesamte Strasse
Entsorgungen | Entsorgungsarten, d.h. was wird im Gebiet an Entsorgung angeboten

> Visualisierung ...
Name | Beschreibung
--------------------------------------------- | ---------------------------------
Unterstützung für Tile Visu aktivieren? | Aktivierung, ob HTML für Kacheldarstellung erstellt werden soll
Abfallgruppen | Farbliche Zuordnung der Abfallarten

> Erweiterte Einstellungen ...
Name | Beschreibung
------------------------------------------------------- | ---------------------------------
Tägliche Aktualisierung aktivieren? | Status, ob das tägliche Update aktiv oder inaktiv ist
Variablen für nicht ausgewählte Entsorgungen erstellen? | Status, ob für nicht genutzte Entsorgungen auch Variablen angelegt werden sollen, standardmäßig nein
Skript | Skript, welches nach dem Update der Termine ausgeführt wird, z.B. für Sortierung usw.

_Aktionsbereich:_

Aktion | Beschreibung
----------------------- | ---------------------------------
AKTUALISEREN | Werte werden neu ermittelt und geschrieben

### 5. Statusvariablen und Profile

Die Statusvariablen/Timer werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.

Name | Typ | Beschreibung
-------------------| --------- | ----------------
Entsorgungsart(en) | String | Abhängig vom Entsorgungsgebiet und den angebotenem Service mehrere Variablen, z.B.: Restmüll, Biotonne usw.

Es werden keine zusätzlichen Profile benötigt.

### 6. WebFront

Man kann die Statusvariablen(Strings) direkt im WF verlinken.
Aber wie bei der Konfiguration beschrieben, muss man aufpassen wenn die Konfiguration geändert wird. Dann müssen gegebenenfalls die Links neu eingerichtet werden.

### 7. PHP-Befehlsreferenz

```php
void WMICS_Update(int $InstanzID);
```

Holt die nächsten anstehenden Entsorgungstermine für die gewählten Entsorgungsarten.
Die Funktion liefert keinerlei Rückgabewert.

__Beispiel__: `WMICS_Update(12345);`


### 8. Versionshistorie

v1.0.20240304

* _NEU_: Initialversion

## Entwickler

Seit nunmehr über 10 Jahren fasziniert mich das Thema Haussteuerung. In den letzten Jahren betätige ich mich auch intensiv in der IP-Symcon Community und steuere dort verschiedenste Skript und Module bei. Ihr findet mich dort unter dem Namen @pitti ;-)

[![GitHub](https://img.shields.io/badge/GitHub-@wilkware-181717.svg?style=for-the-badge&logo=github)](https://wilkware.github.io/)

## Spenden

Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.

[![PayPal](https://img.shields.io/badge/PayPal-spenden-00457C.svg?style=for-the-badge&logo=paypal)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8816166)

## Lizenz

Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International

[![Licence](https://img.shields.io/badge/License-CC_BY--NC--SA_4.0-EF9421.svg?style=for-the-badge&logo=creativecommons)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
Loading

0 comments on commit ba8faf1

Please sign in to comment.