Ich bekomme nach einer Abfrage mit der HTTP API folgende mögliche Antworten je nach Modus zurück:
CSV:
Restabfalltonne;Biotonne;Gelbe Tonne;Schadstoffe
02.03.2026;02.03.2026;09.03.2026;13.03.2026
TXT:
<!DOCTYPE html>
<html lang="de" xml:lang="de" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" class="awk-widget-publisher">
<head>
<meta http-equiv="Content-type" content="text/html; CHARSET=UTF-8" />
<title>Abfuhrtermine alle Straßen</title>
<meta name="robots" content="index, follow" />
<meta name="revisit-after" content="14 days" />
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
alle Straßen
<p>Restabfalltonne<br />
02.03.
</p>
<p>Biotonne<br />
02.03.
</p>
<p>Gelbe Tonne<br />
09.03.
</p>
<p>Schadstoffe<br />
Fr, 13.03.<br />09:00 bis 09:30 Uhr, Stadt, Alte Dorfstraße
</p>
</body>
</html>
Wie kann man diese Sachen gut in der Logik Engine verarbeiten und dann nutzen um dieser in der traumhaften Visu anzeigen zu können. Ich denke da hat eventuell die KI mit dem Kanon von @eib-eg ne gute Idee. Aber auch andere Tipps sind sehr willkommen.
[Frage] [V4.8 IP6] String aus HTTP API aufteilen / sinnvoll zusammensetzen
Forumsregeln
- Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
- Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
- Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
- Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
-
Sun1453
- Beiträge: 2359
- Registriert: Do Feb 07, 2019 8:08 am
- Hat sich bedankt: 2208 Mal
- Danksagung erhalten: 927 Mal
[V4.8 IP6] String aus HTTP API aufteilen / sinnvoll zusammensetzen
Gruß Michael
Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |
Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |
-
eib-eg
- Beiträge: 910
- Registriert: Fr Sep 14, 2018 5:03 pm
- Hat sich bedankt: 1718 Mal
- Danksagung erhalten: 670 Mal
antwort der ki und somit fragen der ki bevor die logik generiert wird
@Sun1453
PROTOKOLL: ANALYSE DER FORUM-AUFGABESTELLUNG (V4.8 IP6)
### 1. KANON-PRÜFUNG (V8.01.01)
Die Extraktion von Daten aus unstrukturierten oder semi-strukturierten Strings (CSV/HTML) ist mit den vorhandenen Kernmodulen des Timberwolf Servers technisch realisierbar.
* **Werkzeug:** Das Modul `Regex` ist das kanonische Instrument für diese Aufgabe. Da kein nativer HTML-Parser existiert, müssen die Daten über reguläre Ausdrücke und Capture-Groups isoliert werden.
* **Datenfluss:** Der HTTP-API-Manager liefert den Response-Body als String an ein Logik-Objekt.
* **Einschränkungen:**
* **Regel 1.2:** Die Eingangsvariable muss mit ausreichender Puffergröße deklariert werden (`string,N`). Bei HTML-Antworten ist die maximale String-Länge von 64KB zu beachten.
* **Regel 1.174:** Unbenutzte Capture-Groups im `Regex`-Modul müssen zwingend mit dem Literal `0` belegt werden.
* **Regel 1.34 L.2:** Da String-Operationen rechenintensiv sind, sollte die Logik nur bei Aktualisierung des HTTP-Eingangs triggern (Trigger "c").
### 2. TECHNISCHE BEWERTUNG & EMPFEHLUNG
Die Verarbeitung der **CSV-Antwort** ist der HTML-Variante vorzuziehen. CSV ist ein strukturiertes Datenaustauschformat, während HTML-Strukturen durch Layout-Änderungen des Anbieters instabil sind.
**Vorschlag für CSV-Extraktion:**
Muster: `^.*;.*;.*;.*\n([^;]+);([^;]+);([^;]+);([^;]+)$`
Dieses Muster überspringt die Kopfzeile und extrahiert die vier Datumsfelder der zweiten Zeile in separate Variablen.
### 3. FORENSISCHE RÜCKFRAGEN (GEMÄSS REGEL A.4)
Um eine fehlerfreie Logik zu erstellen, sind folgende Informationen erforderlich:
1. **Format-Stabilität:** Ist die Reihenfolge der Tonnen in der CSV-Antwort immer identisch (Rest;Bio;Gelb;Schadstoff)?
2. **String-Länge:** Wie groß ist die maximale Zeichenanzahl der gesamten HTTP-Antwort? (Wichtig für die Deklaration von `string,N` gemäß Regel 1.2).
3. **Ziel-Format:** Sollen die Daten in der Visu lediglich als Text angezeigt werden, oder ist eine weiterführende Logik (z.B. "Tonne morgen rausstellen" -> Bool-Flag) geplant?
4. **Datums-Validierung:** Das HTML-Format liefert nur `02.03.`, das CSV-Format `02.03.2026`. Welches Format wird für die Anzeige bevorzugt?
**Status:** Ich warte auf die Beantwortung der Rückfragen, um mit Phase 2 (Code-Generierung gemäß Regel A.13) fortzufahren.
mfg
eib-eg Georg
@Sun1453
PROTOKOLL: ANALYSE DER FORUM-AUFGABESTELLUNG (V4.8 IP6)
### 1. KANON-PRÜFUNG (V8.01.01)
Die Extraktion von Daten aus unstrukturierten oder semi-strukturierten Strings (CSV/HTML) ist mit den vorhandenen Kernmodulen des Timberwolf Servers technisch realisierbar.
* **Werkzeug:** Das Modul `Regex` ist das kanonische Instrument für diese Aufgabe. Da kein nativer HTML-Parser existiert, müssen die Daten über reguläre Ausdrücke und Capture-Groups isoliert werden.
* **Datenfluss:** Der HTTP-API-Manager liefert den Response-Body als String an ein Logik-Objekt.
* **Einschränkungen:**
* **Regel 1.2:** Die Eingangsvariable muss mit ausreichender Puffergröße deklariert werden (`string,N`). Bei HTML-Antworten ist die maximale String-Länge von 64KB zu beachten.
* **Regel 1.174:** Unbenutzte Capture-Groups im `Regex`-Modul müssen zwingend mit dem Literal `0` belegt werden.
* **Regel 1.34 L.2:** Da String-Operationen rechenintensiv sind, sollte die Logik nur bei Aktualisierung des HTTP-Eingangs triggern (Trigger "c").
### 2. TECHNISCHE BEWERTUNG & EMPFEHLUNG
Die Verarbeitung der **CSV-Antwort** ist der HTML-Variante vorzuziehen. CSV ist ein strukturiertes Datenaustauschformat, während HTML-Strukturen durch Layout-Änderungen des Anbieters instabil sind.
**Vorschlag für CSV-Extraktion:**
Muster: `^.*;.*;.*;.*\n([^;]+);([^;]+);([^;]+);([^;]+)$`
Dieses Muster überspringt die Kopfzeile und extrahiert die vier Datumsfelder der zweiten Zeile in separate Variablen.
### 3. FORENSISCHE RÜCKFRAGEN (GEMÄSS REGEL A.4)
Um eine fehlerfreie Logik zu erstellen, sind folgende Informationen erforderlich:
1. **Format-Stabilität:** Ist die Reihenfolge der Tonnen in der CSV-Antwort immer identisch (Rest;Bio;Gelb;Schadstoff)?
2. **String-Länge:** Wie groß ist die maximale Zeichenanzahl der gesamten HTTP-Antwort? (Wichtig für die Deklaration von `string,N` gemäß Regel 1.2).
3. **Ziel-Format:** Sollen die Daten in der Visu lediglich als Text angezeigt werden, oder ist eine weiterführende Logik (z.B. "Tonne morgen rausstellen" -> Bool-Flag) geplant?
4. **Datums-Validierung:** Das HTML-Format liefert nur `02.03.`, das CSV-Format `02.03.2026`. Welches Format wird für die Anzeige bevorzugt?
**Status:** Ich warte auf die Beantwortung der Rückfragen, um mit Phase 2 (Code-Generierung gemäß Regel A.13) fortzufahren.
mfg
eib-eg Georg
Zuletzt geändert von eib-eg am Do Mär 12, 2026 10:00 pm, insgesamt 1-mal geändert.
TW 2600_99 seit 1.1.2018 / VPN zu
-
Sun1453
- Beiträge: 2359
- Registriert: Do Feb 07, 2019 8:08 am
- Hat sich bedankt: 2208 Mal
- Danksagung erhalten: 927 Mal
1. es ändert sich schon weil nicht immer jede Woche das gleiche zur Verfügung steht.
Hier mal Abfrage mit Großen Zeitraum: PS: idhousenumber auf eine beliebige geändert im Landkreis.
wastetypes=28,51,66,67,654
28 = Biotonne
51 = Blaue Tonne
66 = Gelbe Tonne
67 = Restabfalltonne
654 = Schadstoffe
2. Da KI meint die TXT Varinate (HTML) ist nicht so gut dann besser CSV.
Gibt nur noch type=ics als sinnvolle Variante für TWS. Den PDF bringt nichts.
3. Es wäre gut, wenn neben den aktuellen Tagen in der Visu, die vorgeschlagene Version mit Tonne morgen raustellen kommen würde. (Bool Objekt)
4. Die Datumsvariante die CSV liefert wäre perfekt.
PS: für alle mitlesenden api.abfall.io nutzen verschiedene Landkreise für die Bereitstellung der Entsorgungstermine.
Hier mal Abfrage mit Großen Zeitraum: PS: idhousenumber auf eine beliebige geändert im Landkreis.
wastetypes=28,51,66,67,654
28 = Biotonne
51 = Blaue Tonne
66 = Gelbe Tonne
67 = Restabfalltonne
654 = Schadstoffe
► Text zeigen
Gibt nur noch type=ics als sinnvolle Variante für TWS. Den PDF bringt nichts.
3. Es wäre gut, wenn neben den aktuellen Tagen in der Visu, die vorgeschlagene Version mit Tonne morgen raustellen kommen würde. (Bool Objekt)
4. Die Datumsvariante die CSV liefert wäre perfekt.
PS: für alle mitlesenden api.abfall.io nutzen verschiedene Landkreise für die Bereitstellung der Entsorgungstermine.
Zuletzt geändert von Sun1453 am Fr Mär 13, 2026 9:08 am, insgesamt 1-mal geändert.
Gruß Michael
Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |
Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |
-
eib-eg
- Beiträge: 910
- Registriert: Fr Sep 14, 2018 5:03 pm
- Hat sich bedankt: 1718 Mal
- Danksagung erhalten: 670 Mal
antwort der ki und somit fragen der ki bevor die logik generiert wird
### Analyse der technischen Machbarkeit (Kanon-Check V8.01.01)
Die Extraktion und Verarbeitung der Abfalldaten aus der HTTP-API ist mit der Timberwolf Logik-Engine vollständig umsetzbar.
**Vorgehensweise gemäß Kanon:**
1. **Datenquelle:** Der HTTP-API-Manager liefert die CSV-Antwort als String an die Logik.
2. **Extraktion (Regex):**
* Ein erster `Regex`-Baustein isoliert die erste Datenzeile nach dem Header.
* Ein zweiter Satz von `Regex`-Bausteinen teilt die Zeile an den Semikolons in fünf Datums-Strings auf.
* Ein dritter Satz extrahiert Tag, Monat und Jahr aus den Datums-Strings (`DD.MM.YYYY`).
3. **Zeitberechnung (Localtime):**
* `Localtime` ermittelt den aktuellen Unix-Timestamp.
* `Polynomial` addiert 86.400 Sekunden (24h), um den Zeitstempel für "Morgen" zu erhalten.
* Ein zweiter `Localtime`-Aufruf wandelt diesen "Morgen-Timestamp" in Tag, Monat und Jahr um.
4. **Vergleich:**
* `Limiter` (Gleichheitsprüfung-Pattern) vergleicht die extrahierten Werte der Tonnen mit den Werten von "Morgen".
* `And`-Gatter verknüpfen Tag, Monat und Jahr. Wenn alle drei übereinstimmen, wird das Bool-Objekt für die jeweilige Tonne auf `true` gesetzt.
### Forensische Rückfragen (Regel A.4)
Bevor ich den Code erstelle, müssen zwei Punkte geklärt werden, um die Stabilität zu garantieren:
1. **Spalten-Reihenfolge:** Sie schrieben, die Reihenfolge ändere sich. Wenn die Spalten in der CSV springen (z.B. Biotonne mal an Position 1, mal an Position 3), wird die Regex-Extraktion falsche Daten liefern.
* *Lösungsvorschlag:* Können wir die Spaltenreihenfolge durch eine feste Definition der `wastetypes` in der API-URL (wie in Ihrem Beispiel) als "fixiert" betrachten?
2. **String-Länge:** Wie lang ist die CSV-Antwort maximal (Anzahl Zeichen)? Dies ist entscheidend für die Puffer-Deklaration (`string,N`), um Datenverlust zu vermeiden.
mfg
eib-eg Georg
### Analyse der technischen Machbarkeit (Kanon-Check V8.01.01)
Die Extraktion und Verarbeitung der Abfalldaten aus der HTTP-API ist mit der Timberwolf Logik-Engine vollständig umsetzbar.
**Vorgehensweise gemäß Kanon:**
1. **Datenquelle:** Der HTTP-API-Manager liefert die CSV-Antwort als String an die Logik.
2. **Extraktion (Regex):**
* Ein erster `Regex`-Baustein isoliert die erste Datenzeile nach dem Header.
* Ein zweiter Satz von `Regex`-Bausteinen teilt die Zeile an den Semikolons in fünf Datums-Strings auf.
* Ein dritter Satz extrahiert Tag, Monat und Jahr aus den Datums-Strings (`DD.MM.YYYY`).
3. **Zeitberechnung (Localtime):**
* `Localtime` ermittelt den aktuellen Unix-Timestamp.
* `Polynomial` addiert 86.400 Sekunden (24h), um den Zeitstempel für "Morgen" zu erhalten.
* Ein zweiter `Localtime`-Aufruf wandelt diesen "Morgen-Timestamp" in Tag, Monat und Jahr um.
4. **Vergleich:**
* `Limiter` (Gleichheitsprüfung-Pattern) vergleicht die extrahierten Werte der Tonnen mit den Werten von "Morgen".
* `And`-Gatter verknüpfen Tag, Monat und Jahr. Wenn alle drei übereinstimmen, wird das Bool-Objekt für die jeweilige Tonne auf `true` gesetzt.
### Forensische Rückfragen (Regel A.4)
Bevor ich den Code erstelle, müssen zwei Punkte geklärt werden, um die Stabilität zu garantieren:
1. **Spalten-Reihenfolge:** Sie schrieben, die Reihenfolge ändere sich. Wenn die Spalten in der CSV springen (z.B. Biotonne mal an Position 1, mal an Position 3), wird die Regex-Extraktion falsche Daten liefern.
* *Lösungsvorschlag:* Können wir die Spaltenreihenfolge durch eine feste Definition der `wastetypes` in der API-URL (wie in Ihrem Beispiel) als "fixiert" betrachten?
2. **String-Länge:** Wie lang ist die CSV-Antwort maximal (Anzahl Zeichen)? Dies ist entscheidend für die Puffer-Deklaration (`string,N`), um Datenverlust zu vermeiden.
mfg
eib-eg Georg
TW 2600_99 seit 1.1.2018 / VPN zu
-
Sun1453
- Beiträge: 2359
- Registriert: Do Feb 07, 2019 8:08 am
- Hat sich bedankt: 2208 Mal
- Danksagung erhalten: 927 Mal
1. Ich habe verschiedene Zeiträume probiert und die Spaltenüberschriften sind leider nicht fix. Wenn man nur bestimmte Waste Types pro Abfrage macht, dann hat man wirklich nur diese Abfall Behälter. Das erfordert dann eben pro Waste Type eine API Abfrage in der HTTP API.
2. Es kommt auf den Abfrage Zeitraum drauf an und wieviele Tonnen in diesem Zeitraum geholt werden. Es kann pro Woche aber maximal 5 Leerungen geben.
2. Es kommt auf den Abfrage Zeitraum drauf an und wieviele Tonnen in diesem Zeitraum geholt werden. Es kann pro Woche aber maximal 5 Leerungen geben.
Gruß Michael
Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |
Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |