Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Tankerkönig - Extended Skript

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    962

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    690

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Tankerkönig - Extended Skript

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoring
41 Beiträge 11 Kommentatoren 1.0k Aufrufe 18 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ro75R Offline
    Ro75R Offline
    Ro75
    schrieb am zuletzt editiert von Ro75
    #1

    Einleitung

    Mir ist bewusst, dass es bereits den offiziellen ioBroker Tankerkönig Adapter (v3.4.0) gibt, der zuverlässig die aktuellen Spritpreise liefert. Mit meinem Extended-Skript möchte ich die Leistung des Adapters keinesfalls schmälern – im Gegenteil: Das Skript versteht sich als Ergänzung, die zusätzliche Funktionen wie Trends, Prognosen und Empfehlungen bereitstellt und die Daten für Visualisierungen und Automatisierungen im Smart Home noch aussagekräftiger macht. Das Skript setzt nicht auf die Daten des Adapters auf. Das Skript ist eine eigenständige Lösung.

    tk_anonymized.png

    Funktionelle Beschreibung
    Das Skript bietet neben der Standard-Preisabfrage eine Vielzahl an Features:

    Preisabfrage & Speicherung für Benzin, E10 und Diesel

    Historie & Trendberechnung über 48h, 14 Tage und 90 Tage

    24h-Prognose mit Richtungspfeilen und projiziertem Preis

    Durchschnitts- & Differenzwerte aller offenen Stationen

    Top-3 Ranking nach Preis → Favorit → Entfernung

    Handlungsempfehlungen („JETZT TANKEN“, „ABWARTEN“, „NICHT TANKEN“)

    Konfigurierbare Schwellenwerte für Preisvorteile und Trends

    Unicode-Hochzahlen für typografisch saubere Preisdarstellung

    Geodaten & Distanzberechnung: Entfernung zur eigenen Position wird berechnet und in die Logik einbezogen

    Favoriten: Stationen können als Favorit markiert werden, was bei Gleichstand den Ausschlag gibt

    Stationen aktivieren/deaktivieren: Jede Station lässt sich einzeln steuern, auch „nur Daten abrufen“ ohne Auswertung ist möglich

    Öffnungszeiten: Offene/geschlossene Stationen werden berücksichtigt, inkl. Feiertagslogik und Overrides

    Reiner Datenabruf: Für Nutzer, die nur Rohdaten wollen, lässt sich die Auswertung pro Station abschalten

    Vergleich: Adapter vs. Extended-Skript

    Merkmal Tankerkönig Adapter 3.4.0 Extended-Skript
    Basisfunktion: Preise abrufen ✔️ ✔️
    Stationen frei definierbar ✔️ ✔️
    Historie ❌ ✔️ (48h, 14d, 90d)
    Trendberechnung ❌ ✔️
    24h-Prognose ❌ ✔️
    Durchschnittspreise ❌ ✔️
    Preis-Differenzen ❌ ✔️
    Top-3 Ranking ❌ ✔️
    Empfehlungen (JETZT/ NICHT TANKEN) ❌ ✔️
    Konfigurierbare Schwellenwerte ❌ ✔️
    Unicode-Hochzahlen für Preise ❌ ✔️
    Visuelle JSON-Ausgaben für VIS ❌ ✔️
    Geodaten / Distanzberechnung ❌ ✔️
    Favoriten-Logik ❌ ✔️
    Stationen aktivieren/deaktivieren ❌ ✔️
    Reiner Datenabruf ohne Auswertung ❌ ✔️
    Öffnungszeiten inkl. Feiertage ❌ ✔️
    Fehler- und Info-Logging Basis Erweiterte Steuerung

    Besonderheiten
    Geodaten: Entfernung zur Tankstelle wird berechnet und in Rankings berücksichtigt.

    Favoriten: Markierte Stationen haben Vorrang bei gleichen Preisen.

    Stationen steuerbar: Jede Station kann einzeln aktiviert, deaktiviert oder auf „nur Daten“ gesetzt werden.

    Öffnungszeiten: Berücksichtigung von Öffnungsstatus, Feiertagen und Overrides.

    Reiner Datenabruf: Wer nur Rohdaten will, kann die Auswertung pro Station abschalten.

    Visuelle JSON-Ausgaben: Alle Ergebnisse (Top-3, Durchschnitt, Empfehlungen) stehen als JSON für VIS oder andere Frontends bereit.

    Praxisnähe: Handlungsempfehlungen und Trends sind direkt nutzbar für Automatisierungen.

    Typografie: Preise mit Hochzahlen wirken sauberer und sind sofort unterscheidbar.

    Manuelle Änderung der Stationsdaten: Nach dem ersten Datenabruf können die Stationsdaten manuell überschrieben, OHNE das diese beim Folgeabruf wieder überschieben werden. Das betrifft Name und Adressdaten.

    Datenstruktur:

    0_userdata.0.tankerkoenig
    ├── <stationId>
    │   ├── benzin (number, €)
    │   ├── e10 (number, €)
    │   ├── diesel (number, €)
    │   ├── benzin_str (string)
    │   ├── e10_str (string)
    │   ├── diesel_str (string)
    │   ├── name (string)
    │   ├── brand (string)
    │   ├── street (string)
    │   ├── postCode (string)
    │   ├── place (string)
    │   ├── isOpen (boolean)
    │   ├── isWholeDay (boolean)
    │   ├── openingTimes (string JSON)
    │   ├── overrides (string JSON)
    │   ├── distance (number, km)
    │   ├── lastPriceUpdate (string, Datum/Uhrzeit)
    │   ├── lastChecked (string, Datum/Uhrzeit)
    │   ├── prices (string JSON)
    │   ├── image (string, Pfad)
    │   ├── enabled (boolean)
    │   ├── dataonly (boolean)
    │   ├── status (string)
    │   ├── favorite (boolean)
    │   └── aspects
    │       ├── benzin
    │       │   ├── trend_48h / trend_48h_icon
    │       │   ├── trend_14d / trend_14d_icon
    │       │   ├── trend_90d / trend_90d_icon
    │       │   ├── trend_24h_proj / trend_24h_proj_icon
    │       │   ├── trend_24h_proj_price (number, €)
    │       │   ├── history (string JSON)
    │       │   └── json (string JSON)
    │       ├── e10 (analog zu benzin)
    │       ├── diesel (analog zu benzin)
    │       └── reset_history (boolean)
    │
    ├── cheapest
    │   ├── benzin_price / benzin_price_str
    │   ├── benzin_station / benzin_station_name / benzin_image
    │   ├── benzin_top3_json
    │   ├── e10_price / e10_price_str
    │   ├── e10_station / e10_station_name / e10_image
    │   ├── e10_top3_json
    │   ├── diesel_price / diesel_price_str
    │   ├── diesel_station / diesel_station_name / diesel_image
    │   ├── diesel_top3_json
    │   └── cheapest_json (alle zusammen)
    │
    ├── average
    │   ├── benzin / benzin_str
    │   ├── e10 / e10_str
    │   ├── diesel / diesel_str
    │   └── average_json
    │
    ├── difference
    │   ├── benzin / e10 / diesel (Preisunterschiede)
    │   └── prices (JSON mit billigster/teuerster Station)
    │
    ├── recommendation_json (Handlungsempfehlungen)
    ├── all_stations_full_info (JSON)
    ├── reset_all_trends (boolean)
    │
    └── config
        ├── threshold_tanken (€/L unter Durchschnitt)
        ├── threshold_nicht_tanken (€/L über Durchschnitt)
        ├── trend_threshold_percent (% vom Durchschnitt)
        ├── use_superscript (boolean)
        ├── show_trend_symbols (boolean)
        ├── keep_last_price_if_closed (boolean)
    
    

    Fazit
    Der Adapter ist ideal für den schnellen Einstieg. Das Extended-Skript richtet sich an alle, die mehr Kontext, mehr Intelligenz und mehr Kontrolle wollen. Es macht die Tankerkönig-Daten nicht nur sichtbar, sondern wirklich nutzbar – für Visualisierungen, Automatisierungen und smarte Entscheidungen im Alltag.

    Voraussetzungen

    API‑Key: Den API‑Key bekommst du kostenlos auf der offiziellen Tankerkönig‑Seite.
    Gehe auf tankerkoenig.de → oben rechts „API‑Key“ auswählen. Formular ausfüllen (Name, E‑Mail). Du erhältst per Mail deinen persönlichen Schlüssel.

    Der Key ist notwendig, um die API nutzen zu können. Ohne ihn gibt es keine Datenabfragen. Einschränkungen: Die API ist für private Projekte gedacht, nicht für Massendatenabfragen. Empfohlen sind maximal 10 Tankstellen und ein Abfrageintervall von mindestens 5 Minuten. Das Skript ruft bei mir aller 10 Minuten (bitte keine glatten Minuten nehmen) 12 Stationen ab.

    Tankstellen‑UUIDs: Jede Tankstelle hat eine eindeutige UUID (Universally Unique Identifier). Über die Tankerkönig‑Webseite: Dort kannst du nach Tankstellen suchen (PLZ oder Ort eingeben). Diese UUIDs trägst du dann im Skrip ein, um genau die gewünschten Stationen abzufragen.

    NPM-Modul: Damit die API‑Abfragen zuverlässig funktionieren, muss im JavaScript‑Adapter ein zusätzliches npm‑Modul eingetragen werden, das die HTTP‑Requests mit einem gültigen User‑Agent ausführt. Hintergrund: Die Tankerkönig‑API erwartet, dass jede Anfrage einen User‑Agent‑Header mitliefert. Ohne diesen kann es zu Ablehnungen oder Fehlern kommen.

    Vorgehen: Den JavaScript‑Adapter öffnen. Unter „Zusätzliche npm‑Module“ das Modul user-agents eintragen.
    npm.png

    Grafiken: Ich habe bereits einige Grafiken von Tankstellen und zusätzliche Grafiken für Auswertungen und Darstellung in VIS beigefügt. Es sind aber nicht alle Tankstellen dabei - da müsst ihr selber aktiv werden.
    tanken.zip

    HINWEIS: Wenn ihr das Skript testen wollt, bitte Adapter und Skript nicht zur selben Zeit laufen lassen! Es besteht die Gefahr den Fehler 503 zu bekommen, ihr kommt sonst in das Ratelimit! Es ist zwar möglich mehr als 10 Stationen einzutragen, allerdings sollte es nicht übertrieben werden. Je mehr Stationen um so größer das Abrufinterval! Bei mir getestet und ohne Probleme 12 Stationen, aller 10 Miinuten.

    WAS IST ZU MACHEN?

    1. API-Key besorgen
    2. UUIDs der Stationen besorgen
    3. Code einkopieren und anpassen
    const apiKey = ""; // Tankerkoenig API-Schlüssel
    const base = "0_userdata.0.tankerkoenig"; // kann auch so belassen werden
    const image_base = "/vis.0/tanken/"; //hier wird der Standort für die Bilder eingetragen
    const myLocation = { lat: 51.18869225498527, lon: 14.44717724792715 };   // hier eure Geodaten
    

    Hier jetzt der Code:

    // === Tankerkoenig Extended-Script ===
    
    //Erst-Version 1.0.0 - 14.12.2025
    //Version 1.0.2 - 23.12.2025
    //Ersteller Ro75.
     
    //Voraussetzungen (Version 1.0.2 getestet mit)
    //NodeJS: 22.x
    //Javascript-Adapter: 8.9.2
    //Admin-Adapter: 7.7.2
    //JS-Controller: 7.0.7
    
    // === Einstellungen & Konfiguration ===
    const apiKey = "xxxxxxx";                                            // Tankerkoenig API-Schlüssel
    const base = "0_userdata.0.tankerkoenig";                           // Basis-Pfad für alle States
    const image_base = "/vis.0/tanken/";                                // Pfad zu lokalen Bildern
    const myLocation = { lat: 51.18869225498527, lon: 14.44717724792715 };   // Eigener Standort für Distanzberechnung eintragen - Daten sind echt, aber nicht meine
    
    const ENABLE_LOG = false;       // Allgemeine Logs ein/aus
    const ENABLE_ERROR_LOG = true;  // Fehlerlogs ein/aus
    
    // === Tankstellenliste ===
    const stations = [
        { id: "51d4b70e-a095-1aa0-e100-80009459e03a", image: image_base+"jet.png" },
        { id: "9bbf6e47-eafe-4072-a7b1-9bf7fee2ba44", image: image_base+"sb-tank.png" },
        { id: "2c0a9194-7b4b-4590-bbae-8db8760598c4", image: image_base+"total.png" },
        { id: "0cc33bda-3773-4b47-94d2-41142e9a97ad", image: image_base+"agip.png" },
        { id: "0868c839-f0cd-4ceb-a53c-4a6de271b606", image: image_base+"marktkauf.png" },
        { id: "53ad9d77-a259-40fc-b868-b79cb77086d8", image: image_base+"aral.png" },
        { id: "1b008ee6-78ea-4485-ab1d-7212a393b471", image: image_base+"aral.png" },
        { id: "4a92a231-3d68-4928-9155-5d3534583c57", image: image_base+"aral.png" },
        { id: "c21f9238-c5e6-4a5b-985e-89d406166b2d", image: image_base+"esso.png" },
        { id: "86f037d7-d8f8-4fad-9aac-f256857725f6", image: image_base+"sprint.png" },
        { id: "28989f56-fe4c-4785-925d-cc0ee4e574e8", image: image_base+"greenline.png" },
        { id: "005056ba-7cb6-1ed2-bceb-b72e2ef04d4a", image: image_base+"star.png" }
    ];
    
    // ********** AB HIER NICHTS MEHR ÄNDERN !!! **********//
    
    // ==============================
    // === Externe Pakete / Helfer: muss im JS-Adapter als zusätzliches NPM-Paket eingetragen sein! ===
    const UserAgent = require('user-agents');
    
    // ==============================
    // === Hilfsfunktionen ===
    
    // Setzt einen State nur, wenn er leer ist (Initialwerte ohne Überschreiben)
    function setIfEmpty(id, value) {
        const current = getState(id)?.val;
        if (!current || current === "") {
            setState(id, value, true);
        }
    }
    
    // Gibt aktuelles Datum/Uhrzeit als String zurück (für Status-States) (dd.mm.yyyy hh:mm:ss)
    function hole_datum() {
        const datum = new Date();
    
        const tag = String(datum.getDate()).padStart(2, '0');
        const monat = String(datum.getMonth() + 1).padStart(2, '0');
        const jahr = datum.getFullYear();
        const stunde = String(datum.getHours()).padStart(2, '0');
        const minute = String(datum.getMinutes()).padStart(2, '0');
        const sekunde = String(datum.getSeconds()).padStart(2, '0');
    
        return `${tag}.${monat}.${jahr} ${stunde}:${minute}:${sekunde}`;
    }
    
    // Asynchrone Verzögerung in Millisekunden (z. B. zwischen API‑Requests)
    function sleepMs(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }
    
    // Info‑Logging, nur wenn ENABLE_LOG aktiv
    function logInfo(msg) {
        if (ENABLE_LOG) log(`[Tankerkoenig] ${msg}`,"info");
    }
    
    // Fehler‑Logging, nur wenn ENABLE_ERROR_LOG aktiv
    function logError(msg) {
        if (ENABLE_ERROR_LOG) log(`[Tankerkoenig ERROR] ${msg}`,"error");
    }
    
    // Berechnet Distanz in km zwischen zwei Koordinaten (Haversine‑Formel)
    function getDistance(lat1, lon1, lat2, lon2) {
        const R = 6371;
        const dLat = (lat2 - lat1) * Math.PI / 180;
        const dLon = (lon2 - lon1) * Math.PI / 180;
        const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                  Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
                  Math.sin(dLon / 2) * Math.sin(dLon / 2);
        return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    }
    
    // Öffnungszeiten formatieren (Mo-Sa, Feiertage abkürzen)
    function formatOpeningEntries(list, WEEKDAY_MAP) {
        return list.map(o => {
            // wenn kein Text vorhanden, setze "keine Angabe"
            let rawText = (typeof o.text === "string" && o.text.trim() !== "")
                ? o.text
                : "keine Angabe";
    
            // Ersetzungen nur auf gültigem String
            let text = rawText
                .replace(/\btäglich ausser Sonn- und Feiertagen\b/gi, "Mo-Sa")
                .replace(
                    /\b(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag|Feiertag)\b/g,
                    m => WEEKDAY_MAP[m] || m   // Fallback: wenn Map-Eintrag fehlt, Original behalten
                );
    
            const hours =
                (o.start && o.end)
                    ? `${o.start.split(':')[0]}-${o.end.split(':')[0]}`
                    : "";
    
            return { text, hours };
        });
    }
    
    
    // Erstellt alle States für Stationen, Preise, Trends, Empfehlungen
    async function initStates() {
        stations.forEach((s) => {
            const path = `${base}.${s.id}`;
    
            ["benzin","e10","diesel"].forEach(fuel => {
                ["48h","14d","90d"].forEach(win => {
                    createState(`${path}.aspects.${fuel}.trend_${win}`, "", { name: `Trend ${fuel} ${win}`, type: "string", read: true, write: true });
                    createState(`${path}.aspects.${fuel}.trend_${win}_icon`, "", { name: `Trend Icon ${fuel} ${win}`, type: "string", read: true, write: true });
                });
    
                createState(`${path}.aspects.${fuel}.trend_24h_proj`, "", { name: `Trend ${fuel} 24h Prognose`, type: "string", read: true, write: true });
                createState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, "", { name: `Trend Icon ${fuel} 24h Prognose`, type: "string", read: true, write: true });
                createState(`${path}.aspects.${fuel}.trend_24h_proj_price`, 0, { name: `Trend ${fuel} 24h prognostizierter Preis`, type: "number", read: true, write: true, unit: "€" });
    
                createState(`${path}.aspects.${fuel}.history`, "[]", { name: `Historie ${fuel}`, type: 'string', read: true, write: true }); //dient nur der Datenhaltung für Auswertung
                createState(`${path}.aspects.${fuel}.json`, "[]", { name: `JSON ${fuel}`, type: 'string', read: true, write: true });
            });
    
            createState(`${path}.image`, s.image, { name: 'Image', type: 'string', read: true, write: true });
            createState(`${path}.enabled`, true, { name: 'Aktiv', type: 'boolean', read: true, write: true });
            createState(`${path}.dataonly`, false, { name: 'Nur Daten abrufen, nicht auswerten', type: 'boolean', read: true, write: true });
            createState(`${path}.status`, '', { name: 'Status', type: 'string', read: true, write: true });
            createState(`${path}.benzin`, 0, { name: 'Benzin', type: 'number', read: true, write: true, unit: '€' });
            createState(`${path}.e10`, 0, { name: 'E10', type: 'number', read: true, write: true, unit: '€' });
            createState(`${path}.diesel`, 0, { name: 'Diesel', type: 'number', read: true, write: true, unit: '€' });
            createState(`${path}.benzin_str`, '', { name: 'Benzin (String)', type: 'string', read: true, write: true });
            createState(`${path}.e10_str`, '', { name: 'E10 (String)', type: 'string', read: true, write: true });
            createState(`${path}.diesel_str`, '', { name: 'Diesel (String)', type: 'string', read: true, write: true });
            createState(`${path}.name`, '', { name: 'Name', type: 'string', read: true, write: true });
            createState(`${path}.brand`, '', { name: 'Marke', type: 'string', read: true, write: true });
            createState(`${path}.street`, '', { name: 'Straße', type: 'string', read: true, write: true });
            createState(`${path}.postCode`, '', { name: 'Postleitzahl', type: 'string', read: true, write: true });
            createState(`${path}.place`, '', { name: 'Ort', type: 'string', read: true, write: true });
            createState(`${path}.isOpen`, false, { name: 'Ist Offen', type: 'boolean', read: true, write: true });
            createState(`${path}.isWholeDay`, false, { name: 'ganztägig', type: 'boolean', read: true, write: true });
            createState(`${path}.openingTimes`, "[]", { name: 'Öffnungszeiten', type: 'string', read: true, write: true });
            createState(`${path}.overrides`, "[]", { name: 'geänderte Öffnungszeiten', type: 'string', read: true, write: true });
            createState(`${path}.distance`, 0, { name: 'Entfernung', type: 'number', read: true, write: true });
            createState(`${path}.lastPriceUpdate`, hole_datum(), { name: 'letzte Preisaktualisierung', type: 'string', read: true, write: true });
            createState(`${path}.lastChecked`, hole_datum(), { name: 'letzter Abruf', type: 'string', read: true, write: true });
            createState(`${path}.prices`, "[]", { name: 'Preis JSON', type: 'string', read: true, write: true });
            createState(`${path}.favorite`, false, { name: 'Favorit', type: 'boolean', read: true, write: true });
    
            createState(`${path}.aspects.reset_history`, false, { name: "History & Trends zurücksetzen", type: "boolean", read: true, write: true });
        });
        
        ["benzin", "e10", "diesel"].forEach(fuel => {
            createState(`${base}.cheapest.${fuel}_price`, 0, { type: 'number', read: true, write: true, unit: '€' });
            createState(`${base}.cheapest.${fuel}_price_str`, "", { type: 'string', read: true, write: true });
            createState(`${base}.cheapest.${fuel}_station`, '', { type: 'string', read: true, write: true });
            createState(`${base}.cheapest.${fuel}_station_name`, '', { type: 'string', read: true, write: true });
            createState(`${base}.cheapest.${fuel}_image`, '', { type: 'string', read: true, write: true });
            createState(`${base}.cheapest.${fuel}_top3_json`, "[]", { name: `Top 3 ${fuel}`, type: 'string', read: true, write: true });
    
            createState(`${base}.average.${fuel}`, 0, { name: `${fuel}`, type: 'number', read: true, write: true, unit: '€' });
            createState(`${base}.average.${fuel}_str`, "", { type: 'string', read: true, write: true });
    
            createState(`${base}.difference.${fuel}`, 0, { name: `${fuel}`, type: 'number', read: true, write: true, unit: '€' });
        });
    
        createState(`${base}.recommendation.benzin_tanken_empfohlen`, false, { name: "Tanken empfohlen Benzin", type: "boolean", read: true, write: true });
        createState(`${base}.recommendation.e10_tanken_empfohlen`, false, { name: "Tanken empfohlen E10", type: "boolean", read: true, write: true });
        createState(`${base}.recommendation.diesel_tanken_empfohlen`, false, { name: "Tanken empfohlen Diesel", type: "boolean", read: true, write: true });
    
        createState(`${base}.difference.prices`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
        createState(`${base}.cheapest.cheapest_json`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
        createState(`${base}.average.average_json`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
    
        createState(`${base}.recommendation_json`, "[]", { name: 'Empfehlungen JSON', type: 'string', read: true, write: true });
    
        createState(`${base}.all_stations_full_info`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
        createState(`${base}.reset_all_trends`, false, { name: "ALLE Trends & Historien zurücksetzen", type: "boolean", read: true, write: true });
    
        createState(`${base}.config.threshold_tanken`, 0.05, { name: "Schwelle JETZT_TANKEN (€/L unter Durchschnitt)", type: "number", read: true, write: true, unit: "€" });
        createState(`${base}.config.threshold_nicht_tanken`, -0.05, { name: "Schwelle NICHT_TANKEN (€/L über Durchschnitt)", type: "number", read: true, write: true, unit: "€" });
        createState(`${base}.config.trend_threshold_percent`, 0.2, { name: "Trend-Schwelle (% vom Durchschnitt)", type: "number", read: true, write: true, unit: "%" });
        createState(`${base}.config.use_superscript`, true, { name: "Preise mit Hochzahl darstellen", type: "boolean", read: true, write: true });
        createState(`${base}.config.show_trend_symbols`, false, { name: "Trend-/Forecast-Symbole im JSON anzeigen", type: "boolean", read: true, write: true });
        createState(`${base}.config.keep_last_price_if_closed`, true, { name: "Letzten Preis bei geschlossenen Stationen behalten", type: "boolean", read: true, write: true });
        
        logInfo("States initialisiert.");
    }
    
    // Promise‑Wrapper für httpGet, liefert API‑Antwort asynchron
    function httpGetAsync(url, options) {
        return new Promise((resolve, reject) => {
            httpGet(url, options, (error, response) => {
                if (error) reject(error);
                else resolve(response);
            });
        });
    }
    
    // Berechnet Durchschnittspreise aller offenen Stationen und speichert sie
    function calculateAveragePrices() {
        const fuels = ["benzin", "e10", "diesel"];
        const averages = {};
    
        fuels.forEach(fuel => {
            let sum = 0;
            let count = 0;
    
            stations
                .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false && getState(`${base}.${s.id}.dataonly`)?.val !== true)
                .forEach(s => {
                    const path = `${base}.${s.id}`;
                    const isOpen = getState(`${path}.isOpen`)?.val;
                    const price = getState(`${path}.${fuel}`)?.val;
    
                    if (isOpen && typeof price === "number" && price > 0) {
                        sum += price;
                        count++;
                    }
                });
    
            averages[fuel] = count > 0 ? parseFloat((sum / count).toFixed(3)) : 0;
        });
    
        fuels.forEach(fuel => {
            setState(`${base}.average.${fuel}`, averages[fuel], true);
            setState(`${base}.average.${fuel}_str`, formatPriceUnicode(averages[fuel]), true);
        });
        logInfo("Durchschnittspreise aktualisiert.");
    }
    
    // Prognose für Preisentwicklung (24h) anhand Historie
    function calculateFutureTrend(history, futureHours = 24) {
        const data = history.filter(h => typeof h.price === "number").sort((a,b) => a.ts - b.ts);
        if (data.length < 2) return { text: "kein Trend", icon: TREND_ICONS.none, projectedPrice: null };
    
        const first = data[0];
        const last  = data[data.length - 1];
    
        const hoursDiff = (last.ts - first.ts) / (1000 * 3600); 
        if (hoursDiff === 0) return { text: "stabil", icon: TREND_ICONS.flat, projectedPrice: last.price };
    
        const ratePerHour = (last.price - first.price) / hoursDiff;
        const projectedPrice = last.price + ratePerHour * futureHours;
    
        const avg = data.reduce((sum, d) => sum + d.price, 0) / data.length;
        const TH = avg * 0.002;
    
        const diff = projectedPrice - last.price;
        if (diff > TH) return { text: "steigend", icon: TREND_ICONS.up, projectedPrice };
        if (diff < -TH) return { text: "fallend", icon: TREND_ICONS.down, projectedPrice };
        return { text: "stabil", icon: TREND_ICONS.flat, projectedPrice };
    }
    
    // Schreibt alle Trend‑Infos einer Station als JSON zusammen
    function updateAspectsJSON(stationId) {
        const path = `${base}.${stationId}`;
        ["benzin","e10","diesel"].forEach(fuel => {
            const trends = {
                trend_48h: getState(`${path}.aspects.${fuel}.trend_48h`)?.val || "",
                trend_14d: getState(`${path}.aspects.${fuel}.trend_14d`)?.val || "",
                trend_90d: getState(`${path}.aspects.${fuel}.trend_90d`)?.val || "",
                trend_24h_proj: getState(`${path}.aspects.${fuel}.trend_24h_proj`)?.val || "",
                trend_24h_proj_price: getState(`${path}.aspects.${fuel}.trend_24h_proj_price`)?.val || 0,
                trend_48h_icon: getState(`${path}.aspects.${fuel}.trend_48h_icon`)?.val || "",
                trend_14d_icon: getState(`${path}.aspects.${fuel}.trend_14d_icon`)?.val || "",
                trend_90d_icon: getState(`${path}.aspects.${fuel}.trend_90d_icon`)?.val || "",
                trend_24h_proj_icon: getState(`${path}.aspects.${fuel}.trend_24h_proj_icon`)?.val || ""
            };
            setState(`${path}.aspects.${fuel}.json`, JSON.stringify(trends), true);
        });
    }
    
    // Trend / FORECAST Icons / Unicode-Hochzahlen für 0–9
    const TREND_ICONS = { up: "↑", down: "↓", flat: "→", none: "–" };
    const TREND_SYMBOLS = { up: "↑", down: "↓", flat: "→" };
    const FORECAST_SYMBOLS = { up: "↗", down: "↘", flat: "→" };
    const SUPERSCRIPT = ['⁰','¹','²','³','⁴','⁵','⁶','⁷','⁸','⁹'];
    
    // Formatiert Preis mit Unicode‑Hochzahl oder normaler Darstellung
    function formatPriceUnicode(price) {
        if (price === null || price === undefined || isNaN(price)) return null;
    
        const p = Number(price).toFixed(3);            // z.B. 1.899
        const main = p.slice(0, -1).replace('.', ','); // "1,89"
        const lastDigit = p.slice(-1);                 // "9"
        const useSuperscript = getState(`${base}.config.use_superscript`)?.val ?? true;
    
        if (useSuperscript) {
            return main + SUPERSCRIPT[Number(lastDigit)]; // "1,89⁹"
        } else {
            return (Number(price).toFixed(2)).replace('.', ','); // "1,90" normale Darstellung
        }
    }
    
    // Berechnet Preisunterschiede zwischen billigster/teuerster Station pro Spritsorte
    function calculateDifferencesStates() {
        const fuels = [
            { key: "benzin", label: "Benzin" },
            { key: "e10", label: "E10" },
            { key: "diesel", label: "Diesel" }
        ];
    
        const openStations = stations
            .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false
                      && getState(`${base}.${s.id}.isOpen`)?.val === true
                      && getState(`${base}.${s.id}.dataonly`)?.val !== true);
    
        const priceDiffArray = fuels.map(fuel => {
            const prices = openStations
                .map(s => {
                    const price = getState(`${base}.${s.id}.${fuel.key}`)?.val;
                    return (typeof price === "number" && price > 0)
                        ? {
                            name: getState(`${base}.${s.id}.name`)?.val || "",
                            price,
                            image: getState(`${base}.${s.id}.image`)?.val || ""
                        }
                        : null;
                })
                .filter(Boolean);
    
            let diff = 0;
            let cheapestName = "---";
            let teuersteName = "---";
            let billigste_image = "";
            let teuerste_image = "";
    
            if (prices.length > 0) {
                const cheapest = prices.reduce((a, b) => a.price < b.price ? a : b);
                const expensive = prices.reduce((a, b) => a.price > b.price ? a : b);
    
                diff = parseFloat((expensive.price - cheapest.price).toFixed(2));
    
                billigste_image = cheapest.image;
                teuerste_image = expensive.image;
    
                cheapestName = cheapest.name + " (" + cheapest.price.toFixed(2) + " €)";
                teuersteName = expensive.name + " (" + expensive.price.toFixed(2) + " €)";
            }
            setState(`${base}.difference.${fuel.key}`, diff, true);
    
            return {
                text: fuel.label,
                billigste_image,
                billigste: cheapestName,
                teuerste_image,
                teuerste: teuersteName,
                differenz: diff.toFixed(2)
            };
        });
    
        setState(`${base}.difference.prices`, JSON.stringify(priceDiffArray), true);
        logInfo("Differenzen und Preise als JSON unter `${base}.difference` aktualisiert.");
    }
    
    // Speichert günstigste Stationen je Spritsorte als JSON
    function saveCheapestJSON() {
        const fuels = [
            { key: "benzin", label: "Benzin", img: image_base+"blue.png" },
            { key: "e10", label: "E10", img: image_base+"green.png" },
            { key: "diesel", label: "Diesel", img: image_base+"red.png" }
        ];
    
        const json = fuels.map(fuel => {
            const stationId = getState(`${base}.cheapest.${fuel.key}_station`)?.val;
            if (!stationId) {
                return {
                    col_1: fuel.img,
                    col_2: fuel.label,
                    col_3: "",
                    col_4: "---",
                    col_5: "---"
                };
            }
    
            const img = getState(`${base}.${stationId}.image`)?.val || "";
            const isFav = getState(`${base}.${stationId}.favorite`)?.val === true;
            const brand = (getState(`${base}.${stationId}.name`)?.val || "") + (isFav ? " ★" : "");
            const price = getState(`${base}.${stationId}.${fuel.key}`)?.val ?? null;
    
            return {
                col_1: fuel.img,
                col_2: fuel.label,
                col_3: img,
                col_4: brand.trim(),
                col_5: formatPriceUnicode(price)   // <-- hier Unicode-Hochzahl
            };
        });
    
        setState(`${base}.cheapest.cheapest_json`, JSON.stringify(json), true);
    }
    
    // Ermittelt Top‑3 Stationen je Spritsorte (Preis → Favorit → Entfernung)
    function saveTop3JSON() {
        const fuels = ["benzin","e10","diesel"];
    
        fuels.forEach(fuel => {
            const stationsWithPrices = stations
                .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false
                          && getState(`${base}.${s.id}.isOpen`)?.val === true
                          && getState(`${base}.${s.id}.dataonly`)?.val !== true)
                .map(s => {
                    const isFav = getState(`${base}.${s.id}.favorite`)?.val === true;
                    return {
                        name: getState(`${base}.${s.id}.name`)?.val || "",
                        favorite: isFav,
                        price: getState(`${base}.${s.id}.${fuel}`)?.val || 0,
                        image: getState(`${base}.${s.id}.image`)?.val || "",
                        distance: getState(`${base}.${s.id}.distance`)?.val || 0
                    };
                })
                .filter(s => typeof s.price === "number" && s.price > 0);
    
            // Sortierung: Preis → Favorit → Entfernung
            stationsWithPrices.sort((a, b) => {
                if (a.price !== b.price) return a.price - b.price;
                if (a.favorite !== b.favorite) return a.favorite ? -1 : 1;
                return a.distance - b.distance;
            });
    
            // Top 3 auswählen und JSON mit rank und gewünschter Feldreihenfolge
            const top3 = stationsWithPrices.slice(0,3).map((s, index) => ({
                rank: index + 1,
                image: s.image,
                name: s.name + (s.favorite ? " ★" : ""),
                price: formatPriceUnicode(s.price),  // <-- hier Hochzahlen verwenden
                distance: parseFloat(s.distance.toFixed(2))
            }));
    
            setState(`${base}.cheapest.${fuel}_top3_json`, JSON.stringify(top3), true);
        });
    }
    
    // Speichert Durchschnittspreise je Spritsorte als JSON
    function saveAverageJSON() {
        const fuels = ["benzin","e10","diesel"];
        const json = fuels.map(fuel => {
            const avg = getState(`${base}.average.${fuel}`)?.val ?? 0;
            return {
                fuel: fuel,
                price: formatPriceUnicode(avg)  // Unicode-Hochzahl für letzte Stelle
            };
        });
        setState(`${base}.average.average_json`, JSON.stringify(json), true);
    }
    
    // Fügt neuen Preis in Historie ein, aggregiert ältere Daten (48h/90d)
    function appendHistory(path, fuel, price) {
        if (typeof price !== "number" || price <= 0) return;
    
        const now = Date.now();
        const cutoff90d = now - 90 * 24 * 3600 * 1000;  // 90 Tage
        const cutoff48h = now - 48 * 3600 * 1000;       // 48 Stunden
    
        const historyStr = getState(`${path}.aspects.${fuel}.history`)?.val || "[]";
        let history = [];
        try { history = JSON.parse(historyStr); } catch {}
    
        // Neuer Eintrag
        history.push({ ts: now, price });
    
        // Alte Einträge >90 Tage entfernen
        history = history.filter(h => h.ts >= cutoff90d);
    
        // Kurzzeit 48h: alle behalten für exakte Trendberechnung
        const shortTerm = history.filter(h => h.ts >= cutoff48h);
    
        // Langzeit >48h: stündlich aggregieren
        const longTerm = history
            .filter(h => h.ts < cutoff48h)
            .reduce((acc, cur) => {
                const hour = Math.floor(cur.ts / (3600*1000)); // Stunde als Bucket
                if (!acc[hour]) acc[hour] = { ts: cur.ts, price: cur.price, count: 1 };
                else {
                    acc[hour].price = (acc[hour].price * acc[hour].count + cur.price) / (acc[hour].count + 1);
                    acc[hour].count++;
                    acc[hour].ts = cur.ts; // letzte Zeit der Stunde
                }
                return acc;
            }, {});
    
        const longTermArray = Object.values(longTerm).map(h => ({ ts: h.ts, price: parseFloat(h.price.toFixed(3)) }));
    
        // Kombiniere kurz- und langzeit
        const newHistory = [...longTermArray, ...shortTerm];
    
        setState(`${path}.aspects.${fuel}.history`, JSON.stringify(newHistory), true);
    }
    
    // Berechnet Trend (steigend/fallend/stabil) über angegebenes Zeitfenster
    function calculateTrend(history, hours) {
        const cutoff = Date.now() - (hours * 3600 * 1000);
        const data = history
            .filter(h => h.ts >= cutoff)
            .sort((a,b) => a.ts - b.ts);
    
        if (data.length < 2) return { text: "kein Trend", icon: TREND_ICONS.none };
    
        const first = data[0].price;
        const last  = data[data.length - 1].price;
        const diff  = last - first;
    
        const avg = data.reduce((sum,d) => sum+d.price,0) / data.length;
        const thresholdPercent = getState(`${base}.config.trend_threshold_percent`)?.val ?? 0.2;
        const TH = avg * (thresholdPercent / 100);
    
        if (diff > TH) return { text: "steigend", icon: TREND_ICONS.up };
        if (diff < -TH) return { text: "fallend", icon: TREND_ICONS.down };
        return { text: "stabil", icon: TREND_ICONS.flat };
    }
    
    // Erstellt Handlungsempfehlungen („JETZT_TANKEN“, „ABWARTEN“) basierend auf Durchschnitt, günstigster Station und Trends
    // Erstellt Handlungsempfehlungen („JETZT_TANKEN“, „ABWARTEN“) basierend auf Durchschnitt, günstigster Station und Trends
    async function updateRecommendations() {
        const fuels = [
            { key: "benzin", label: "BENZIN" },
            { key: "e10",    label: "E10" },
            { key: "diesel", label: "DIESEL" }
        ];
    
        const recommendations = [];
        const thresholdTanken = getState(`${base}.config.threshold_tanken`)?.val ?? 0.05;
        const thresholdNichtTanken = getState(`${base}.config.threshold_nicht_tanken`)?.val ?? -0.05;
    
        fuels.forEach(fuel => {
            const avg       = getState(`${base}.average.${fuel.key}`)?.val;
            const cheapest  = getState(`${base}.cheapest.${fuel.key}_price`)?.val;
            const stationId = getState(`${base}.cheapest.${fuel.key}_station`)?.val;
            const stationNm = getState(`${base}.cheapest.${fuel.key}_station_name`)?.val;
    
            if (typeof avg !== "number" || typeof cheapest !== "number" || !stationId) {
                return;
            }
    
            const diff = parseFloat((avg - cheapest).toFixed(2));
    
            // ---- Handlungsempfehlung ----
            let action = "ABWARTEN";
            let reason = "Kein Preisvorteil";
    
            if (diff >= thresholdTanken) {
                action = "JETZT_TANKEN";
                reason = `${diff.toFixed(2).replace('.', ',')} € unter Durchschnitt`;
            } else if (diff <= thresholdNichtTanken) {
                action = "NICHT_TANKEN";
                reason = `${Math.abs(diff).toFixed(2).replace('.', ',')} € über Durchschnitt`;
            }
    
            // ---- NEU: Boolesche Tankempfehlung ----
            const tanken_empfohlen = (action === "JETZT_TANKEN");
    
            // >>> Hier setzen wir die drei neuen States <<<
            setState(`${base}.recommendation.${fuel.key}_tanken_empfohlen`, tanken_empfohlen, true);
    
            // ---- Trends (vom günstigsten Anbieter) ----
            const trend48h = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_48h_icon`)?.val || "–";
            const trend14d = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_14d_icon`)?.val || "–";
            const trend90d = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_90d_icon`)?.val || "–";
    
            const projDir   = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_24h_proj_icon`)?.val || "–";
            const projPrice = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_24h_proj_price`)?.val || 0;
    
            recommendations.push({
                fuel: fuel.label,
                action,
                reason,
                trend_48h: trend48h,
                trend_14d: trend14d,
                trend_90d: trend90d,
                forecast_dir: projDir,
                forecast_price: projPrice > 0 ? parseFloat(projPrice.toFixed(2)) : null,
                best_station_name: stationNm || "",
                best_station_price: formatPriceUnicode(cheapest)
            });
        });
    
        // JSON bleibt bestehen, nur ohne tanken_empfohlen
        setState(`${base}.recommendation_json`, JSON.stringify(recommendations), true);
    }
    
    // Hauptfunktion: Holt Tankerkoenig‑Daten, aktualisiert States, berechnet günstigste Stationen
    async function loadData() {
        logInfo("Starte Datenabfrage ...");
    
        function considerCheapest(cheapest, fuelKey, newPrice, dist, stationId, image, isFav) {
            if (typeof newPrice !== 'number') return;
    
            const current = cheapest[fuelKey];
    
            // 1) Wenn noch keine vorhanden: setzen
            if (!current) {
                cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                return;
            }
            // 2) Günstigerer Preis gewinnt IMMER
            if (newPrice < current.price) {
                cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                return;
            }
            // 3) Gleicher Preis -> Favorit gewinnt
            if (newPrice === current.price) {
                const currentFav = !!current.favorite;
                if (isFav && !currentFav) {
                    // neuer ist Favorit, aktueller nicht -> neuer gewinnt
                    cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                    return;
                }
                // 4) Beide Favorit oder beide nicht -> Entfernung entscheidet
                if ((isFav === currentFav) && dist < current.distance) {
                    cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                    return;
                }
            }
            // sonst behalte current
        }
    
        const listCleaner = (entry = '') =>
            entry
                .toLowerCase()
                .split(' ')
                .map(word =>
                    word.replace(/oe/g, 'ö')
                        .replace(/ae/g, 'ä')
                        .replace(/ue/g, 'ü')
                        .replace(/ss/g, 'ß')
                )
                .map(word => word.charAt(0).toUpperCase() + word.slice(1))
                .join(' ');
    
        const cheapest = { benzin: null, e10: null, diesel: null };
    
        const tasks = stations
            .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false)
            .map(async (s) => {
    
                const url = `https://creativecommons.tankerkoenig.de/json/detail.php?id=${s.id}&apikey=${apiKey}`;
    
                try {
                    const dynamicUA = new UserAgent().toString();
    
                    logInfo(`Abruf für Station ${s.id}`);
    
                    const response = await httpGetAsync(url, {
                        timeout: 15000,
                        headers: { "User-Agent": dynamicUA }
                    });
    
                    if (!response || response.statusCode !== 200) {
                        logError(`HTTP Error Station ${s.id}: ${response?.statusCode}`);
                        return;
                    }
    
                    const body = typeof response.data === "string" ? JSON.parse(response.data) : response.data;
                    if (!body || !body.station) return;
    
                    const p = body.station;
                    const path = `${base}.${s.id}`;
    
                    setState(`${path}.status`, p.isOpen ? "geöffnet" : "geschlossen", true);
                    setState(`${path}.image`, s.image, true);
    
                    setIfEmpty(`${path}.name`, p.name);
                    setIfEmpty(`${path}.brand`, p.brand);
    
                    const streetWithHouse = p.houseNumber && p.houseNumber.trim() !== "" ? `${p.street} ${p.houseNumber}` : p.street;
    
                    setIfEmpty(`${path}.street`, listCleaner(streetWithHouse));
                    setIfEmpty(`${path}.place`, listCleaner(p.place));
                    setIfEmpty(`${path}.postCode`, p.postCode ? p.postCode.toString().padStart(5, "0") : "");
    
                    setState(`${path}.isOpen`, p.isOpen, true);
                    setState(`${path}.isWholeDay`, p.wholeDay, true);
    
                    // --- Mapping für Wochentage + Feiertag + Sonderfälle ---
                    const WEEKDAY_MAP = { "Montag": "Mo", "Dienstag": "Di", "Mittwoch": "Mi", "Donnerstag": "Do", "Freitag": "Fr", "Samstag": "Sa", "Sonntag": "So", "Feiertag": "Ft" };
    
                    // --- Öffnungszeiten vorbereiten und transformieren ---
                    let rawOpeningTimes;
                    if (p.wholeDay) {
                        rawOpeningTimes = [{ text: "Mo-So", start: "00:00:00", end: "24:00:00" }];
                    } else {
                        if (Array.isArray(p.openingTimes)) {
                            rawOpeningTimes = p.openingTimes;
                        } else if (typeof p.openingTimes === "string") {
                            try {
                                rawOpeningTimes = JSON.parse(p.openingTimes);
                            } catch {
                                rawOpeningTimes = [];
                            }
                        } else {
                            rawOpeningTimes = [];
                        }
                    }
    
                    const formattedOpening = formatOpeningEntries(rawOpeningTimes, WEEKDAY_MAP);
                    setState(`${path}.openingTimes`, JSON.stringify(formattedOpening), true);
    
                    // --- Overrides vorbereiten und transformieren ---
                    let rawOverrides;
                    if (Array.isArray(p.overrides)) {
                        rawOverrides = p.overrides;
                    } else if (typeof p.overrides === "string") {
                        try { rawOverrides = JSON.parse(p.overrides); } catch { rawOverrides = []; }
                    } else {
                        rawOverrides = [];
                    }
    
                    const formattedOverrides = formatOpeningEntries(rawOverrides, WEEKDAY_MAP);
                    setState(`${path}.overrides`, JSON.stringify(formattedOverrides), true);
    
                    // --- Distanzberechnung, ausgehend von eigenen Standort ---
                    if (p.lat && p.lng) {
                        const distance = getDistance(myLocation.lat, myLocation.lon, p.lat, p.lng);
                        setState(`${path}.distance`, parseFloat(distance.toFixed(2)), true);
                    }
    
                    // --- Preise ---
                    let priceChanged = false;
    
                    const fuels = [
                        { api: "e5", dp: "benzin" },
                        { api: "e10", dp: "e10" },
                        { api: "diesel", dp: "diesel" }
                    ];
    
                    const keepLastPriceIfClosed = getState(`${base}.config.keep_last_price_if_closed`)?.val ?? true;
                    if (p.isOpen) {
                        if (getState(`${path}.benzin`)?.val !== p.e5) {
                            appendHistory(path, "benzin", p.e5);
                        }
                        if (getState(`${path}.e10`)?.val !== p.e10) {
                            appendHistory(path, "e10", p.e10);
                        }
                        if (getState(`${path}.diesel`)?.val !== p.diesel) {
                            appendHistory(path, "diesel", p.diesel);
                        }
    
                        fuels.forEach(f => {
                            if (typeof p[f.api] === "number") {
                                const oldVal = getState(`${path}.${f.dp}`)?.val;
                                if (oldVal !== p[f.api]) priceChanged = true;
                                setState(`${path}.${f.dp}`, p[f.api], true);
                            }
                        });
    
                        if (priceChanged) {
                            setState(`${path}.lastPriceUpdate`, hole_datum(), true);
                        }
    
                        setState(`${path}.benzin_str`, formatPriceUnicode(getState(`${path}.benzin`)?.val), true);
                        setState(`${path}.e10_str`, formatPriceUnicode(getState(`${path}.e10`)?.val), true);
                        setState(`${path}.diesel_str`, formatPriceUnicode(getState(`${path}.diesel`)?.val), true);
    
                    } else if (!keepLastPriceIfClosed) {
                        setState(`${path}.benzin`, 0.0, true);
                        setState(`${path}.e10`, 0.0, true);
                        setState(`${path}.diesel`, 0.0, true);
                        setState(`${path}.benzin_str`, "", true);
                        setState(`${path}.e10_str`, "", true);
                        setState(`${path}.diesel_str`, "", true);
                    }
    
                    ["benzin","e10","diesel"].forEach(fuel => {
                        const historyStr = getState(`${path}.aspects.${fuel}.history`)?.val || "[]";
                        let history = [];
                        try { history = JSON.parse(historyStr); } catch {}
    
                    const trends = {
                        "48h": calculateTrend(history, 48),
                        "14d": calculateTrend(history, 24 * 14),
                        "90d": calculateTrend(history, 24 * 90)
                    };
    
                    Object.entries(trends).forEach(([win, result]) => {
                        setState(`${path}.aspects.${fuel}.trend_${win}`, result.text, true);
                        setState(`${path}.aspects.${fuel}.trend_${win}_icon`, result.icon, true);
                    });
    
                    // 24h Prognose pro Tankstelle ===
                    const futureTrend = calculateFutureTrend(history, 24);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj`, futureTrend.text, true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, futureTrend.icon, true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj_price`, futureTrend.projectedPrice ? parseFloat(futureTrend.projectedPrice.toFixed(3)) : 0, true);                });
    
                    function buildPriceEntry(fuelKey, label, image) {
                        let priceStr = formatPriceUnicode(getState(`${path}.${fuelKey}`)?.val ?? null) || "";
    
                        const showTrendSymbols = getState(`${base}.config.show_trend_symbols`)?.val ?? false;
                        if (showTrendSymbols && priceStr) {
                            const trendIcon = getState(`${path}.aspects.${fuelKey}.trend_48h_icon`)?.val || TREND_SYMBOLS.flat;
                            const forecastIcon = getState(`${path}.aspects.${fuelKey}.trend_24h_proj_icon`)?.val || FORECAST_SYMBOLS.flat;
                            priceStr = `${priceStr} ${trendIcon} ${forecastIcon}`;
                        }
    
                        return { image, text: label, price: priceStr };
                    }
    
                    const pricesJSON = [
                        buildPriceEntry("benzin", "Benzin", image_base + "blue.png"),
                        buildPriceEntry("e10",    "E10",    image_base + "green.png"),
                        buildPriceEntry("diesel", "Diesel", image_base + "red.png")
                    ];
    
                    setState(`${path}.prices`, JSON.stringify(pricesJSON), true);
                    setState(`${path}.lastChecked`, hole_datum(), true);
    
                    const dist = getState(`${path}.distance`)?.val || 0;
                    const isFav = getState(`${path}.favorite`)?.val === true;
                    if (p.isOpen && getState(`${base}.${s.id}.dataonly`)?.val !== true) {
                        considerCheapest(cheapest, 'benzin', p.e5, dist, s.id, s.image, isFav);
                        considerCheapest(cheapest, 'e10', p.e10, dist, s.id, s.image, isFav);
                        considerCheapest(cheapest, 'diesel', p.diesel, dist, s.id, s.image, isFav);
                    }
                    updateAspectsJSON(s.id);
                } catch (error) {
                    logError(`Fehler bei Station ${s.id}: ${error}`);
                }
            });
    
        await Promise.allSettled(tasks);
        logInfo("Auswertung abgeschlossen.");
    
        ["benzin", "e10", "diesel"].forEach(fuel => {
            if (cheapest[fuel]) {
                const stationId = cheapest[fuel].station;
                const stationName = getState(`${base}.${stationId}.name`)?.val || "";
    
                setState(`${base}.cheapest.${fuel}_price`, cheapest[fuel].price, true);
                setState(`${base}.cheapest.${fuel}_price_str`, formatPriceUnicode(cheapest[fuel].price), true);
                setState(`${base}.cheapest.${fuel}_station`, stationId, true); // ID bleibt für Pfad-Operationen
                setState(`${base}.cheapest.${fuel}_station_name`, stationName, true);
                setState(`${base}.cheapest.${fuel}_image`, cheapest[fuel].image, true);
            } else {
                setState(`${base}.cheapest.${fuel}_price`, 0, true);
                setState(`${base}.cheapest.${fuel}_price_str`, "", true);
                setState(`${base}.cheapest.${fuel}_station`, "", true);
                setState(`${base}.cheapest.${fuel}_station_name`, "", true);
                setState(`${base}.cheapest.${fuel}_image`, "", true);
            }
        });
    
        saveCheapestJSON();
        saveTop3JSON();
        calculateAveragePrices();
        calculateDifferencesStates();
        saveAverageJSON();
    
        // Vollständige Infos JSON — nur aktive Stationen
        const fullInfo = stations
            .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false)
            .map(s => {
                const path = `${base}.${s.id}`;
                return {
                    name: getState(`${path}.name`)?.val || "",
                    brand: getState(`${path}.brand`)?.val || "",
                    street: getState(`${path}.street`)?.val || "",
                    postCode: getState(`${path}.postCode`)?.val || "",
                    place: getState(`${path}.place`)?.val || "",
                    distance: getState(`${path}.distance`)?.val || "",
                    image: getState(`${path}.image`)?.val || "",
                    benzin: getState(`${path}.benzin`)?.val ?? null,
                    e10: getState(`${path}.e10`)?.val ?? null,
                    diesel: getState(`${path}.diesel`)?.val ?? null,
                    isOpen: getState(`${path}.isOpen`)?.val ?? false,
                    lastPriceUpdate: getState(`${path}.lastPriceUpdate`)?.val || "",
                    lastChecked: getState(`${path}.lastChecked`)?.val || ""
                };
            });
    
        setState(`${base}.all_stations_full_info`, JSON.stringify(fullInfo), true);
        updateRecommendations();
    }
    
    // Start + Cron
    (async () => {
        try {
            if (await internetUndTankerkoenigOK()) {
                await initStates();
                await sleepMs(5000);
                await loadData();
            }
        } catch (err) {
            logError("Fehler beim Start: " + err);
        }
    })();
    
    schedule('35 7,17,27,37,47,57 * * * *', async() => {
        try {
            if (await internetUndTankerkoenigOK()) {
                await initStates();
                await sleepMs(5000);
                await loadData();
            }
        } catch (err) {
            logError("Fehler beim Cron-Start: " + err);
        }
    });
    
    async function internetUndTankerkoenigOK() {
        try {
            // 1. Internetcheck
            const net = await httpGetAsync("https://www.google.com/generate_204", { timeout: 5000 });
            if (!net || net.statusCode !== 204) return false;
    
            // 2. Tankerkönig-Check (nur HEAD auf statische Seite)
            const tk = await httpGetAsync("https://creativecommons.tankerkoenig.de/", { timeout: 5000 });
            return (tk && tk.statusCode === 200);
    
        } catch {
            return false;
        }
    }
    
    stations.forEach(s => {
        const resetId = `${base}.${s.id}.aspects.reset_history`;
    
        on({ id: resetId, change: "ne" }, obj => {
            if (obj.state.val === true) {
                const path = `${base}.${s.id}`;
    
                ["benzin","e10","diesel"].forEach(fuel => {
                    setState(`${path}.aspects.${fuel}.history`, "[]", true);
                    setState(`${path}.aspects.${fuel}.trend_48h`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_14d`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_90d`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj_price`, 0, true);
                    setState(`${path}.aspects.${fuel}.trend_48h_icon`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_14d_icon`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_90d_icon`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, "", true);
                });
                setState(resetId, false, true);
            }
        });
    });
    
    on({ id: `${base}.reset_all_trends`, change: "ne" }, obj => {
        if (obj.state.val === true) {
                stations.forEach(s => {
                const path = `${base}.${s.id}`;
                ["benzin","e10","diesel"].forEach(fuel => {
                    setState(`${path}.aspects.${fuel}.history`, "[]", true);
                    setState(`${path}.aspects.${fuel}.trend_48h`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_14d`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_90d`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj_price`, 0, true);
                    setState(`${path}.aspects.${fuel}.trend_48h_icon`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_14d_icon`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_90d_icon`, "", true);
                    setState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, "", true);
                });
            });
            setState(`${base}.reset_all_trends`, false, true);
        }
    });
    
    

    Wenn alles richtig gemacht wurde, trudeln die Daten regelmäßig ein. Trend und Prognosen werden nicht sofort "brauchbare" Daten liefern. Es muss einfach etwas Zeit vertreichen. Ich habe bei mir alles in VIS1 visualisiert, sollte aber auch mit anderen Systemen funktionieren.

    Viel Spaß und gutes Gelingen mit diesem Skript.

    Ro75.

    SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

    NegaleinN 1 Antwort Letzte Antwort
    4
    • M Offline
      M Offline
      MartyBr
      schrieb am zuletzt editiert von
      #2

      Mit welchen Widget visualisierst du die Werte? Hast du ein Beispiel? Das Script sieht vielversprechend aus.

      Gruß
      Martin


      Intel NUCs mit Proxmox / Iobroker als VM unter Debian
      Raspeberry mit USB Leseköpfen für Smartmeter
      Homematic und Homematic IP

      Ro75R 1 Antwort Letzte Antwort
      0
      • M MartyBr

        Mit welchen Widget visualisierst du die Werte? Hast du ein Beispiel? Das Script sieht vielversprechend aus.

        Ro75R Offline
        Ro75R Offline
        Ro75
        schrieb am zuletzt editiert von
        #3

        @MartyBr die Basic-Widgets und ich nutze Json von Material-Design (vis-Materialdesign 0.5.94)

        Hier mal eine Karte (Esso):

        [{"tpl":"tplImage","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/tanken/esso.png","stretch":true},"style":{"left":"789px","top":"295px","width":"57px","height":"70px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplFrame","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","title":"{0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.name}","title_color":"#ffffff","title_top":"2","title_left":"5","header_height":"23","header_color":"{alias.0.TK.8}","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"title_back":"transparent","name":"Rahmen","locked":false},"style":{"left":"779px","top":"274px","width":"361px","height":"165px","z-index":1,"border-width":"1px","border-style":"solid","border-color":"rgba(255, 255, 255, 0.2)","border-radius":"10px","opacity":"{0_userdata.0.HardwareInfo.DashBoard.Opacity}%","font-family":"RobotoCondensed-Regular","font-style":"normal","font-weight":"lighter","font-variant":"small-caps","font-size":"medium","text-shadow":"3px 3px 4px #000","box-shadow":"15px 18px 62px 0px rgba(0, 0, 0, 0.35)","background":"#202020","background-color":"#000000"},"widgetSet":"basic"},{"tpl":"tplVis-materialdesign-Icon-Button-State-Multi","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","countOids":"1","vibrateOnMobilDevices":"50","delayInMs0":"0","delayInMs1":"0","image":"chart-areaspline","imageColor":"#ffffff","colorBgFalse":"{alias.0.Switche.Tankstellen.9}","colorPress":"{alias.0.Switche.Tankstellen.9}","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"g_lock":false,"autoLockAfter":"10","lockIconTop":"45","lockIconLeft":"55","lockIconSize":"20","lockIconColor":"#mdwTheme:vis-materialdesign.0.colors.button.icon.lock_icon","lockIconBackground":"#mdwTheme:vis-materialdesign.0.colors.button.icon.lock_icon_background","lockBackgroundSizeFactor":"1","lockFilterGrayscale":"30","oid0":"0_userdata.0.tankerkoenig.Statistik_Switch","value0":"9","oid1":"0_userdata.0.tankerkoenig.Grafana","value1":"http://192.168.10.99:3000/d-solo/bfcb8097-7090-45f9-84a3-44d67b2faea1/tanken?orgId=1&refresh=15m&panelId=9","clickSoundVolume":"0.5","g_buttonOids_§2":false,"delayInMs2":"0","g_buttonOids_§3":false,"delayInMs3":"0","g_buttonOids_§4":false,"delayInMs4":"0"},"style":{"left":"1078px","top":"374px","z-index":"4","border-style":"solid","border-radius":"","border-width":"2px","width":"50px","height":"50px","box-shadow":"3px 3px 8px 1px rgba(255, 255, 255, 0.65)"},"widgetSet":"materialdesign"},{"tpl":"tplValueString","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.status","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":""},"style":{"left":"1065px","top":"279px","color":"rgba(255,255,255,0.8)","z-index":"7","width":"64px","height":"14px","text-align":"right","text-shadow":"3px 3px 4px #000","font-family":"RobotoCondensed-Regular","font-style":"normal","font-variant":"normal","font-weight":"lighter","font-size":"small","line-height":"1"},"widgetSet":"basic"},{"tpl":"tplVis-materialdesign-Table","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.openingTimes","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"countCols":"1","tableLayout":"card","showHeader":false,"roundBorder":true,"headerTextSize":"#mdwTheme:vis-materialdesign.0.fontSizes.table.header","headerFontFamily":"#mdwTheme:vis-materialdesign.0.fonts.table.header","colorBackground":"transparent","colorHeaderRowBackground":"","colorHeaderRowText":"","colorRowBackground":"transparent","colorRowBackgroundHover":"transparent","colorRowText":"rgba(255,255,255,0.8)","borderColor":"transparent","dividers":"rgba(255,255,255,0.25)","showColumn0":"true","colType0":"text","textAlign0":"left","colTextSize0":"12","fontFamily0":"RobotoCondensed-Regular","showColumn1":"true","colType1":"text","textAlign1":"right","colTextSize1":"12","fontFamily1":"RobotoCondensed-Regular","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"dataJson":"","showColumn3":false,"colType3":"text","textAlign3":"right","colTextSize3":"12","fontFamily3":"RobotoCondensed-Regular","showColumn4":"true","colType4":"text","textAlign4":"right","colTextSize4":"#mdwTheme:vis-materialdesign.0.fontSizes.table.row","fontFamily4":"#mdwTheme:vis-materialdesign.0.fonts.table.row","imageSize0":"","label0":" ","colNoWrap1":true,"columnWidth0":"40","colNoWrap0":true,"fixedHeader":true,"columnWidth1":"30","rowHeight":"19","padding_left0":"5","columnWidth3":"","headerRowHeight":"0","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","imageSize1":"","suffix3":" €","debug":false,"g_columnLayout_§2":false,"showColumn2":"true","colType2":"text","textAlign2":"center","colTextSize2":"#mdwTheme:vis-materialdesign.0.fontSizes.table.row","fontFamily2":"#mdwTheme:vis-materialdesign.0.fonts.table.row"},"style":{"left":"782px","top":"359px","width":"118px","height":"78px","z-index":"8","text-shadow":"3px 3px 4px #000","font-family":"RobotoCondensed-Regular","font-style":"normal","font-variant":"normal","font-weight":"lighter","font-size":""},"widgetSet":"materialdesign"},{"tpl":"tplVis-materialdesign-Table","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.prices","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"countCols":"2","tableLayout":"card","showHeader":false,"roundBorder":true,"headerTextSize":"#mdwTheme:vis-materialdesign.0.fontSizes.table.header","headerFontFamily":"#mdwTheme:vis-materialdesign.0.fonts.table.header","colorBackground":"transparent","colorHeaderRowBackground":"","colorHeaderRowText":"","colorRowBackground":"transparent","colorRowBackgroundHover":"transparent","colorRowText":"rgba(255,255,255,0.8)","borderColor":"transparent","dividers":"rgba(255,255,255,0.25)","showColumn0":"true","colType0":"image","textAlign0":"left","colTextSize0":"12","fontFamily0":"RobotoCondensed-Regular","showColumn1":"true","colType1":"text","textAlign1":"left","colTextSize1":"15","fontFamily1":"RobotoCondensed-Regular","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"dataJson":"","showColumn3":false,"colType3":"text","textAlign3":"right","colTextSize3":"12","fontFamily3":"RobotoCondensed-Regular","showColumn4":"true","colType4":"text","textAlign4":"right","colTextSize4":"#mdwTheme:vis-materialdesign.0.fontSizes.table.row","fontFamily4":"#mdwTheme:vis-materialdesign.0.fonts.table.row","imageSize0":"20","label0":" ","colNoWrap1":true,"columnWidth0":"35","colNoWrap0":true,"fixedHeader":true,"columnWidth1":"65","rowHeight":"32","padding_left0":"5","columnWidth3":"","headerRowHeight":"0","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","imageSize1":"","suffix3":" €","debug":false,"g_columnLayout_§2":true,"showColumn2":"true","colType2":"text","textAlign2":"right","colTextSize2":"15","fontFamily2":"RobotoCondensed-Regular"},"style":{"left":"902px","top":"338px","width":"165px","height":"105px","z-index":"8","text-shadow":"3px 3px 4px #000","font-family":"RobotoCondensed-Regular","font-style":"normal","font-variant":"normal","font-weight":"lighter","font-size":""},"widgetSet":"materialdesign"},{"tpl":"tplVis-materialdesign-CheckBox","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.enabled","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","toggleType":"boolean","stateIfNotTrueValue":"on","vibrateOnMobilDevices":"50","labelPosition":"right","labelClickActive":true,"valueFontFamily":"RobotoCondensed-Regular","valueFontSize":"15","colorCheckBox":"rgba(31, 97, 196, 0.25)","colorCheckBoxBorder":"rgba(31, 97, 196, 0.25)","colorCheckBoxHover":"#mdwTheme:vis-materialdesign.0.colors.checkbox.hover","labelColorFalse":"rgba(255,255,255,0.8)","labelColorTrue":"rgba(255,255,255,0.8)","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"valueOff":"false","valueOn":"true","labelFalse":"inaktiv","labelTrue":"aktiv","g_lock":false,"autoLockAfter":"10","lockIconTop":"5","lockIconLeft":"5","lockIconColor":"#mdwTheme:vis-materialdesign.0.colors.checkbox.lock_icon","lockFilterGrayscale":"30","clickSoundVolume":"0.5","generateHtmlControl":"true"},"style":{"left":"1062px","top":"321px","width":"76px","height":"20px","z-index":"10","text-shadow":"3px 3px 4px #000"},"widgetSet":"materialdesign"},{"tpl":"tplVis-materialdesign-CheckBox","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.dataonly","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","toggleType":"boolean","stateIfNotTrueValue":"on","vibrateOnMobilDevices":"50","labelPosition":"right","labelClickActive":true,"valueFontFamily":"RobotoCondensed-Regular","valueFontSize":"14","colorCheckBox":"rgba(31, 97, 196, 0.25)","colorCheckBoxBorder":"rgba(31, 97, 196, 0.25)","colorCheckBoxHover":"#mdwTheme:vis-materialdesign.0.colors.checkbox.hover","labelColorFalse":"rgba(255,255,255,0.8)","labelColorTrue":"rgba(255,255,255,0.8)","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"valueOff":"false","valueOn":"true","labelFalse":"NUR Abruf","labelTrue":"NUR Abruf","g_lock":false,"autoLockAfter":"10","lockIconTop":"5","lockIconLeft":"5","lockIconColor":"#mdwTheme:vis-materialdesign.0.colors.checkbox.lock_icon","lockFilterGrayscale":"30","clickSoundVolume":"0.5","generateHtmlControl":"true"},"style":{"left":"862px","top":"321px","width":"108px","height":"20px","z-index":"10","text-shadow":"3px 3px 4px #000"},"widgetSet":"materialdesign"},{"tpl":"tplVis-materialdesign-CheckBox","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.favorite","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","toggleType":"boolean","stateIfNotTrueValue":"on","vibrateOnMobilDevices":"50","labelPosition":"right","labelClickActive":true,"valueFontFamily":"RobotoCondensed-Regular","valueFontSize":"14","colorCheckBox":"rgba(31, 97, 196, 0.25)","colorCheckBoxBorder":"rgba(31, 97, 196, 0.25)","colorCheckBoxHover":"#mdwTheme:vis-materialdesign.0.colors.checkbox.hover","labelColorFalse":"rgba(255,255,255,0.8)","labelColorTrue":"rgba(255,255,255,0.8)","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"valueOff":"false","valueOn":"true","labelFalse":"Favorit","labelTrue":"Favorit","g_lock":false,"autoLockAfter":"10","lockIconTop":"5","lockIconLeft":"5","lockIconColor":"#mdwTheme:vis-materialdesign.0.colors.checkbox.lock_icon","lockFilterGrayscale":"30","clickSoundVolume":"0.5","generateHtmlControl":"true"},"style":{"left":"972px","top":"321px","width":"88px","height":"20px","z-index":"10","text-shadow":"3px 3px 4px #000"},"widgetSet":"materialdesign"},{"tpl":"tplValueString","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.lastPriceUpdate","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"Update: "},"style":{"left":"1007px","top":"301px","z-index":"6","font-family":"RobotoCondensed-Regular","text-shadow":"3px 3px 4px #000","width":"130px","height":"11px","font-style":"normal","font-variant":"normal","font-weight":"lighter","font-size":"11px","color":"rgba(255,255,255,0.8)"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"0_userdata.0.tankerkoenig.c21f9238-c5e6-4a5b-985e-89d406166b2d.lastChecked","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"Abruf: "},"style":{"left":"862px","top":"301px","z-index":"6","font-family":"RobotoCondensed-Regular","text-shadow":"3px 3px 4px #000","width":"130px","height":"11px","font-style":"normal","font-variant":"normal","font-weight":"lighter","font-size":"11px","color":"rgba(255,255,255,0.8)"},"widgetSet":"basic"}]
        

        Ro75.

        SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

        1 Antwort Letzte Antwort
        0
        • Ro75R Offline
          Ro75R Offline
          Ro75
          schrieb am zuletzt editiert von
          #4

          Noch ein Hinweis. Sobald Daten zu den Stationen erstmalig abgerufen wurden, können Adressdaten (Name, Straße, Ort, Plz) nachträglich geändert werden, OHNE das diese Infos wieder überschrieben werden!

          Ro75.

          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

          1 Antwort Letzte Antwort
          1
          • M Offline
            M Offline
            MartyBr
            schrieb am zuletzt editiert von
            #5

            Danke, ich importier das Widget und schaue es mir an.

            Gruß
            Martin


            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
            Raspeberry mit USB Leseköpfen für Smartmeter
            Homematic und Homematic IP

            1 Antwort Letzte Antwort
            0
            • NashraN Offline
              NashraN Offline
              Nashra
              Most Active Forum Testing
              schrieb am zuletzt editiert von Nashra
              #6

              Moin @ro75 , klasse Skript, danke dafür.
              Könntest Du noch bitte die Bilder red, green und blue hochladen, danke
              Sorry übersehen tanken.zip

              Gruß Ralf
              Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              1 Antwort Letzte Antwort
              0
              • Thomas MaulT Offline
                Thomas MaulT Offline
                Thomas Maul
                schrieb am zuletzt editiert von
                #7

                Super, danke! Ich probier's demnächst.

                Hinweis: im Bild ganz oben ist der genaue Standort verpixelt (vermutlich wg. Privatsphäre), im Code sind aber hoffentlich dann nicht Deine echten Geodaten ;-)

                Ro75R 1 Antwort Letzte Antwort
                0
                • Ro75R Ro75

                  Einleitung

                  Mir ist bewusst, dass es bereits den offiziellen ioBroker Tankerkönig Adapter (v3.4.0) gibt, der zuverlässig die aktuellen Spritpreise liefert. Mit meinem Extended-Skript möchte ich die Leistung des Adapters keinesfalls schmälern – im Gegenteil: Das Skript versteht sich als Ergänzung, die zusätzliche Funktionen wie Trends, Prognosen und Empfehlungen bereitstellt und die Daten für Visualisierungen und Automatisierungen im Smart Home noch aussagekräftiger macht. Das Skript setzt nicht auf die Daten des Adapters auf. Das Skript ist eine eigenständige Lösung.

                  tk_anonymized.png

                  Funktionelle Beschreibung
                  Das Skript bietet neben der Standard-Preisabfrage eine Vielzahl an Features:

                  Preisabfrage & Speicherung für Benzin, E10 und Diesel

                  Historie & Trendberechnung über 48h, 14 Tage und 90 Tage

                  24h-Prognose mit Richtungspfeilen und projiziertem Preis

                  Durchschnitts- & Differenzwerte aller offenen Stationen

                  Top-3 Ranking nach Preis → Favorit → Entfernung

                  Handlungsempfehlungen („JETZT TANKEN“, „ABWARTEN“, „NICHT TANKEN“)

                  Konfigurierbare Schwellenwerte für Preisvorteile und Trends

                  Unicode-Hochzahlen für typografisch saubere Preisdarstellung

                  Geodaten & Distanzberechnung: Entfernung zur eigenen Position wird berechnet und in die Logik einbezogen

                  Favoriten: Stationen können als Favorit markiert werden, was bei Gleichstand den Ausschlag gibt

                  Stationen aktivieren/deaktivieren: Jede Station lässt sich einzeln steuern, auch „nur Daten abrufen“ ohne Auswertung ist möglich

                  Öffnungszeiten: Offene/geschlossene Stationen werden berücksichtigt, inkl. Feiertagslogik und Overrides

                  Reiner Datenabruf: Für Nutzer, die nur Rohdaten wollen, lässt sich die Auswertung pro Station abschalten

                  Vergleich: Adapter vs. Extended-Skript

                  Merkmal Tankerkönig Adapter 3.4.0 Extended-Skript
                  Basisfunktion: Preise abrufen ✔️ ✔️
                  Stationen frei definierbar ✔️ ✔️
                  Historie ❌ ✔️ (48h, 14d, 90d)
                  Trendberechnung ❌ ✔️
                  24h-Prognose ❌ ✔️
                  Durchschnittspreise ❌ ✔️
                  Preis-Differenzen ❌ ✔️
                  Top-3 Ranking ❌ ✔️
                  Empfehlungen (JETZT/ NICHT TANKEN) ❌ ✔️
                  Konfigurierbare Schwellenwerte ❌ ✔️
                  Unicode-Hochzahlen für Preise ❌ ✔️
                  Visuelle JSON-Ausgaben für VIS ❌ ✔️
                  Geodaten / Distanzberechnung ❌ ✔️
                  Favoriten-Logik ❌ ✔️
                  Stationen aktivieren/deaktivieren ❌ ✔️
                  Reiner Datenabruf ohne Auswertung ❌ ✔️
                  Öffnungszeiten inkl. Feiertage ❌ ✔️
                  Fehler- und Info-Logging Basis Erweiterte Steuerung

                  Besonderheiten
                  Geodaten: Entfernung zur Tankstelle wird berechnet und in Rankings berücksichtigt.

                  Favoriten: Markierte Stationen haben Vorrang bei gleichen Preisen.

                  Stationen steuerbar: Jede Station kann einzeln aktiviert, deaktiviert oder auf „nur Daten“ gesetzt werden.

                  Öffnungszeiten: Berücksichtigung von Öffnungsstatus, Feiertagen und Overrides.

                  Reiner Datenabruf: Wer nur Rohdaten will, kann die Auswertung pro Station abschalten.

                  Visuelle JSON-Ausgaben: Alle Ergebnisse (Top-3, Durchschnitt, Empfehlungen) stehen als JSON für VIS oder andere Frontends bereit.

                  Praxisnähe: Handlungsempfehlungen und Trends sind direkt nutzbar für Automatisierungen.

                  Typografie: Preise mit Hochzahlen wirken sauberer und sind sofort unterscheidbar.

                  Manuelle Änderung der Stationsdaten: Nach dem ersten Datenabruf können die Stationsdaten manuell überschrieben, OHNE das diese beim Folgeabruf wieder überschieben werden. Das betrifft Name und Adressdaten.

                  Datenstruktur:

                  0_userdata.0.tankerkoenig
                  ├── <stationId>
                  │   ├── benzin (number, €)
                  │   ├── e10 (number, €)
                  │   ├── diesel (number, €)
                  │   ├── benzin_str (string)
                  │   ├── e10_str (string)
                  │   ├── diesel_str (string)
                  │   ├── name (string)
                  │   ├── brand (string)
                  │   ├── street (string)
                  │   ├── postCode (string)
                  │   ├── place (string)
                  │   ├── isOpen (boolean)
                  │   ├── isWholeDay (boolean)
                  │   ├── openingTimes (string JSON)
                  │   ├── overrides (string JSON)
                  │   ├── distance (number, km)
                  │   ├── lastPriceUpdate (string, Datum/Uhrzeit)
                  │   ├── lastChecked (string, Datum/Uhrzeit)
                  │   ├── prices (string JSON)
                  │   ├── image (string, Pfad)
                  │   ├── enabled (boolean)
                  │   ├── dataonly (boolean)
                  │   ├── status (string)
                  │   ├── favorite (boolean)
                  │   └── aspects
                  │       ├── benzin
                  │       │   ├── trend_48h / trend_48h_icon
                  │       │   ├── trend_14d / trend_14d_icon
                  │       │   ├── trend_90d / trend_90d_icon
                  │       │   ├── trend_24h_proj / trend_24h_proj_icon
                  │       │   ├── trend_24h_proj_price (number, €)
                  │       │   ├── history (string JSON)
                  │       │   └── json (string JSON)
                  │       ├── e10 (analog zu benzin)
                  │       ├── diesel (analog zu benzin)
                  │       └── reset_history (boolean)
                  │
                  ├── cheapest
                  │   ├── benzin_price / benzin_price_str
                  │   ├── benzin_station / benzin_station_name / benzin_image
                  │   ├── benzin_top3_json
                  │   ├── e10_price / e10_price_str
                  │   ├── e10_station / e10_station_name / e10_image
                  │   ├── e10_top3_json
                  │   ├── diesel_price / diesel_price_str
                  │   ├── diesel_station / diesel_station_name / diesel_image
                  │   ├── diesel_top3_json
                  │   └── cheapest_json (alle zusammen)
                  │
                  ├── average
                  │   ├── benzin / benzin_str
                  │   ├── e10 / e10_str
                  │   ├── diesel / diesel_str
                  │   └── average_json
                  │
                  ├── difference
                  │   ├── benzin / e10 / diesel (Preisunterschiede)
                  │   └── prices (JSON mit billigster/teuerster Station)
                  │
                  ├── recommendation_json (Handlungsempfehlungen)
                  ├── all_stations_full_info (JSON)
                  ├── reset_all_trends (boolean)
                  │
                  └── config
                      ├── threshold_tanken (€/L unter Durchschnitt)
                      ├── threshold_nicht_tanken (€/L über Durchschnitt)
                      ├── trend_threshold_percent (% vom Durchschnitt)
                      ├── use_superscript (boolean)
                      ├── show_trend_symbols (boolean)
                      ├── keep_last_price_if_closed (boolean)
                  
                  

                  Fazit
                  Der Adapter ist ideal für den schnellen Einstieg. Das Extended-Skript richtet sich an alle, die mehr Kontext, mehr Intelligenz und mehr Kontrolle wollen. Es macht die Tankerkönig-Daten nicht nur sichtbar, sondern wirklich nutzbar – für Visualisierungen, Automatisierungen und smarte Entscheidungen im Alltag.

                  Voraussetzungen

                  API‑Key: Den API‑Key bekommst du kostenlos auf der offiziellen Tankerkönig‑Seite.
                  Gehe auf tankerkoenig.de → oben rechts „API‑Key“ auswählen. Formular ausfüllen (Name, E‑Mail). Du erhältst per Mail deinen persönlichen Schlüssel.

                  Der Key ist notwendig, um die API nutzen zu können. Ohne ihn gibt es keine Datenabfragen. Einschränkungen: Die API ist für private Projekte gedacht, nicht für Massendatenabfragen. Empfohlen sind maximal 10 Tankstellen und ein Abfrageintervall von mindestens 5 Minuten. Das Skript ruft bei mir aller 10 Minuten (bitte keine glatten Minuten nehmen) 12 Stationen ab.

                  Tankstellen‑UUIDs: Jede Tankstelle hat eine eindeutige UUID (Universally Unique Identifier). Über die Tankerkönig‑Webseite: Dort kannst du nach Tankstellen suchen (PLZ oder Ort eingeben). Diese UUIDs trägst du dann im Skrip ein, um genau die gewünschten Stationen abzufragen.

                  NPM-Modul: Damit die API‑Abfragen zuverlässig funktionieren, muss im JavaScript‑Adapter ein zusätzliches npm‑Modul eingetragen werden, das die HTTP‑Requests mit einem gültigen User‑Agent ausführt. Hintergrund: Die Tankerkönig‑API erwartet, dass jede Anfrage einen User‑Agent‑Header mitliefert. Ohne diesen kann es zu Ablehnungen oder Fehlern kommen.

                  Vorgehen: Den JavaScript‑Adapter öffnen. Unter „Zusätzliche npm‑Module“ das Modul user-agents eintragen.
                  npm.png

                  Grafiken: Ich habe bereits einige Grafiken von Tankstellen und zusätzliche Grafiken für Auswertungen und Darstellung in VIS beigefügt. Es sind aber nicht alle Tankstellen dabei - da müsst ihr selber aktiv werden.
                  tanken.zip

                  HINWEIS: Wenn ihr das Skript testen wollt, bitte Adapter und Skript nicht zur selben Zeit laufen lassen! Es besteht die Gefahr den Fehler 503 zu bekommen, ihr kommt sonst in das Ratelimit! Es ist zwar möglich mehr als 10 Stationen einzutragen, allerdings sollte es nicht übertrieben werden. Je mehr Stationen um so größer das Abrufinterval! Bei mir getestet und ohne Probleme 12 Stationen, aller 10 Miinuten.

                  WAS IST ZU MACHEN?

                  1. API-Key besorgen
                  2. UUIDs der Stationen besorgen
                  3. Code einkopieren und anpassen
                  const apiKey = ""; // Tankerkoenig API-Schlüssel
                  const base = "0_userdata.0.tankerkoenig"; // kann auch so belassen werden
                  const image_base = "/vis.0/tanken/"; //hier wird der Standort für die Bilder eingetragen
                  const myLocation = { lat: 51.18869225498527, lon: 14.44717724792715 };   // hier eure Geodaten
                  

                  Hier jetzt der Code:

                  // === Tankerkoenig Extended-Script ===
                  
                  //Erst-Version 1.0.0 - 14.12.2025
                  //Version 1.0.2 - 23.12.2025
                  //Ersteller Ro75.
                   
                  //Voraussetzungen (Version 1.0.2 getestet mit)
                  //NodeJS: 22.x
                  //Javascript-Adapter: 8.9.2
                  //Admin-Adapter: 7.7.2
                  //JS-Controller: 7.0.7
                  
                  // === Einstellungen & Konfiguration ===
                  const apiKey = "xxxxxxx";                                            // Tankerkoenig API-Schlüssel
                  const base = "0_userdata.0.tankerkoenig";                           // Basis-Pfad für alle States
                  const image_base = "/vis.0/tanken/";                                // Pfad zu lokalen Bildern
                  const myLocation = { lat: 51.18869225498527, lon: 14.44717724792715 };   // Eigener Standort für Distanzberechnung eintragen - Daten sind echt, aber nicht meine
                  
                  const ENABLE_LOG = false;       // Allgemeine Logs ein/aus
                  const ENABLE_ERROR_LOG = true;  // Fehlerlogs ein/aus
                  
                  // === Tankstellenliste ===
                  const stations = [
                      { id: "51d4b70e-a095-1aa0-e100-80009459e03a", image: image_base+"jet.png" },
                      { id: "9bbf6e47-eafe-4072-a7b1-9bf7fee2ba44", image: image_base+"sb-tank.png" },
                      { id: "2c0a9194-7b4b-4590-bbae-8db8760598c4", image: image_base+"total.png" },
                      { id: "0cc33bda-3773-4b47-94d2-41142e9a97ad", image: image_base+"agip.png" },
                      { id: "0868c839-f0cd-4ceb-a53c-4a6de271b606", image: image_base+"marktkauf.png" },
                      { id: "53ad9d77-a259-40fc-b868-b79cb77086d8", image: image_base+"aral.png" },
                      { id: "1b008ee6-78ea-4485-ab1d-7212a393b471", image: image_base+"aral.png" },
                      { id: "4a92a231-3d68-4928-9155-5d3534583c57", image: image_base+"aral.png" },
                      { id: "c21f9238-c5e6-4a5b-985e-89d406166b2d", image: image_base+"esso.png" },
                      { id: "86f037d7-d8f8-4fad-9aac-f256857725f6", image: image_base+"sprint.png" },
                      { id: "28989f56-fe4c-4785-925d-cc0ee4e574e8", image: image_base+"greenline.png" },
                      { id: "005056ba-7cb6-1ed2-bceb-b72e2ef04d4a", image: image_base+"star.png" }
                  ];
                  
                  // ********** AB HIER NICHTS MEHR ÄNDERN !!! **********//
                  
                  // ==============================
                  // === Externe Pakete / Helfer: muss im JS-Adapter als zusätzliches NPM-Paket eingetragen sein! ===
                  const UserAgent = require('user-agents');
                  
                  // ==============================
                  // === Hilfsfunktionen ===
                  
                  // Setzt einen State nur, wenn er leer ist (Initialwerte ohne Überschreiben)
                  function setIfEmpty(id, value) {
                      const current = getState(id)?.val;
                      if (!current || current === "") {
                          setState(id, value, true);
                      }
                  }
                  
                  // Gibt aktuelles Datum/Uhrzeit als String zurück (für Status-States) (dd.mm.yyyy hh:mm:ss)
                  function hole_datum() {
                      const datum = new Date();
                  
                      const tag = String(datum.getDate()).padStart(2, '0');
                      const monat = String(datum.getMonth() + 1).padStart(2, '0');
                      const jahr = datum.getFullYear();
                      const stunde = String(datum.getHours()).padStart(2, '0');
                      const minute = String(datum.getMinutes()).padStart(2, '0');
                      const sekunde = String(datum.getSeconds()).padStart(2, '0');
                  
                      return `${tag}.${monat}.${jahr} ${stunde}:${minute}:${sekunde}`;
                  }
                  
                  // Asynchrone Verzögerung in Millisekunden (z. B. zwischen API‑Requests)
                  function sleepMs(ms) {
                      return new Promise(resolve => setTimeout(resolve, ms));
                  }
                  
                  // Info‑Logging, nur wenn ENABLE_LOG aktiv
                  function logInfo(msg) {
                      if (ENABLE_LOG) log(`[Tankerkoenig] ${msg}`,"info");
                  }
                  
                  // Fehler‑Logging, nur wenn ENABLE_ERROR_LOG aktiv
                  function logError(msg) {
                      if (ENABLE_ERROR_LOG) log(`[Tankerkoenig ERROR] ${msg}`,"error");
                  }
                  
                  // Berechnet Distanz in km zwischen zwei Koordinaten (Haversine‑Formel)
                  function getDistance(lat1, lon1, lat2, lon2) {
                      const R = 6371;
                      const dLat = (lat2 - lat1) * Math.PI / 180;
                      const dLon = (lon2 - lon1) * Math.PI / 180;
                      const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                                Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
                                Math.sin(dLon / 2) * Math.sin(dLon / 2);
                      return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
                  }
                  
                  // Öffnungszeiten formatieren (Mo-Sa, Feiertage abkürzen)
                  function formatOpeningEntries(list, WEEKDAY_MAP) {
                      return list.map(o => {
                          // wenn kein Text vorhanden, setze "keine Angabe"
                          let rawText = (typeof o.text === "string" && o.text.trim() !== "")
                              ? o.text
                              : "keine Angabe";
                  
                          // Ersetzungen nur auf gültigem String
                          let text = rawText
                              .replace(/\btäglich ausser Sonn- und Feiertagen\b/gi, "Mo-Sa")
                              .replace(
                                  /\b(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag|Feiertag)\b/g,
                                  m => WEEKDAY_MAP[m] || m   // Fallback: wenn Map-Eintrag fehlt, Original behalten
                              );
                  
                          const hours =
                              (o.start && o.end)
                                  ? `${o.start.split(':')[0]}-${o.end.split(':')[0]}`
                                  : "";
                  
                          return { text, hours };
                      });
                  }
                  
                  
                  // Erstellt alle States für Stationen, Preise, Trends, Empfehlungen
                  async function initStates() {
                      stations.forEach((s) => {
                          const path = `${base}.${s.id}`;
                  
                          ["benzin","e10","diesel"].forEach(fuel => {
                              ["48h","14d","90d"].forEach(win => {
                                  createState(`${path}.aspects.${fuel}.trend_${win}`, "", { name: `Trend ${fuel} ${win}`, type: "string", read: true, write: true });
                                  createState(`${path}.aspects.${fuel}.trend_${win}_icon`, "", { name: `Trend Icon ${fuel} ${win}`, type: "string", read: true, write: true });
                              });
                  
                              createState(`${path}.aspects.${fuel}.trend_24h_proj`, "", { name: `Trend ${fuel} 24h Prognose`, type: "string", read: true, write: true });
                              createState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, "", { name: `Trend Icon ${fuel} 24h Prognose`, type: "string", read: true, write: true });
                              createState(`${path}.aspects.${fuel}.trend_24h_proj_price`, 0, { name: `Trend ${fuel} 24h prognostizierter Preis`, type: "number", read: true, write: true, unit: "€" });
                  
                              createState(`${path}.aspects.${fuel}.history`, "[]", { name: `Historie ${fuel}`, type: 'string', read: true, write: true }); //dient nur der Datenhaltung für Auswertung
                              createState(`${path}.aspects.${fuel}.json`, "[]", { name: `JSON ${fuel}`, type: 'string', read: true, write: true });
                          });
                  
                          createState(`${path}.image`, s.image, { name: 'Image', type: 'string', read: true, write: true });
                          createState(`${path}.enabled`, true, { name: 'Aktiv', type: 'boolean', read: true, write: true });
                          createState(`${path}.dataonly`, false, { name: 'Nur Daten abrufen, nicht auswerten', type: 'boolean', read: true, write: true });
                          createState(`${path}.status`, '', { name: 'Status', type: 'string', read: true, write: true });
                          createState(`${path}.benzin`, 0, { name: 'Benzin', type: 'number', read: true, write: true, unit: '€' });
                          createState(`${path}.e10`, 0, { name: 'E10', type: 'number', read: true, write: true, unit: '€' });
                          createState(`${path}.diesel`, 0, { name: 'Diesel', type: 'number', read: true, write: true, unit: '€' });
                          createState(`${path}.benzin_str`, '', { name: 'Benzin (String)', type: 'string', read: true, write: true });
                          createState(`${path}.e10_str`, '', { name: 'E10 (String)', type: 'string', read: true, write: true });
                          createState(`${path}.diesel_str`, '', { name: 'Diesel (String)', type: 'string', read: true, write: true });
                          createState(`${path}.name`, '', { name: 'Name', type: 'string', read: true, write: true });
                          createState(`${path}.brand`, '', { name: 'Marke', type: 'string', read: true, write: true });
                          createState(`${path}.street`, '', { name: 'Straße', type: 'string', read: true, write: true });
                          createState(`${path}.postCode`, '', { name: 'Postleitzahl', type: 'string', read: true, write: true });
                          createState(`${path}.place`, '', { name: 'Ort', type: 'string', read: true, write: true });
                          createState(`${path}.isOpen`, false, { name: 'Ist Offen', type: 'boolean', read: true, write: true });
                          createState(`${path}.isWholeDay`, false, { name: 'ganztägig', type: 'boolean', read: true, write: true });
                          createState(`${path}.openingTimes`, "[]", { name: 'Öffnungszeiten', type: 'string', read: true, write: true });
                          createState(`${path}.overrides`, "[]", { name: 'geänderte Öffnungszeiten', type: 'string', read: true, write: true });
                          createState(`${path}.distance`, 0, { name: 'Entfernung', type: 'number', read: true, write: true });
                          createState(`${path}.lastPriceUpdate`, hole_datum(), { name: 'letzte Preisaktualisierung', type: 'string', read: true, write: true });
                          createState(`${path}.lastChecked`, hole_datum(), { name: 'letzter Abruf', type: 'string', read: true, write: true });
                          createState(`${path}.prices`, "[]", { name: 'Preis JSON', type: 'string', read: true, write: true });
                          createState(`${path}.favorite`, false, { name: 'Favorit', type: 'boolean', read: true, write: true });
                  
                          createState(`${path}.aspects.reset_history`, false, { name: "History & Trends zurücksetzen", type: "boolean", read: true, write: true });
                      });
                      
                      ["benzin", "e10", "diesel"].forEach(fuel => {
                          createState(`${base}.cheapest.${fuel}_price`, 0, { type: 'number', read: true, write: true, unit: '€' });
                          createState(`${base}.cheapest.${fuel}_price_str`, "", { type: 'string', read: true, write: true });
                          createState(`${base}.cheapest.${fuel}_station`, '', { type: 'string', read: true, write: true });
                          createState(`${base}.cheapest.${fuel}_station_name`, '', { type: 'string', read: true, write: true });
                          createState(`${base}.cheapest.${fuel}_image`, '', { type: 'string', read: true, write: true });
                          createState(`${base}.cheapest.${fuel}_top3_json`, "[]", { name: `Top 3 ${fuel}`, type: 'string', read: true, write: true });
                  
                          createState(`${base}.average.${fuel}`, 0, { name: `${fuel}`, type: 'number', read: true, write: true, unit: '€' });
                          createState(`${base}.average.${fuel}_str`, "", { type: 'string', read: true, write: true });
                  
                          createState(`${base}.difference.${fuel}`, 0, { name: `${fuel}`, type: 'number', read: true, write: true, unit: '€' });
                      });
                  
                      createState(`${base}.recommendation.benzin_tanken_empfohlen`, false, { name: "Tanken empfohlen Benzin", type: "boolean", read: true, write: true });
                      createState(`${base}.recommendation.e10_tanken_empfohlen`, false, { name: "Tanken empfohlen E10", type: "boolean", read: true, write: true });
                      createState(`${base}.recommendation.diesel_tanken_empfohlen`, false, { name: "Tanken empfohlen Diesel", type: "boolean", read: true, write: true });
                  
                      createState(`${base}.difference.prices`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
                      createState(`${base}.cheapest.cheapest_json`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
                      createState(`${base}.average.average_json`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
                  
                      createState(`${base}.recommendation_json`, "[]", { name: 'Empfehlungen JSON', type: 'string', read: true, write: true });
                  
                      createState(`${base}.all_stations_full_info`, "[]", { name: 'JSON', type: 'string', read: true, write: true });
                      createState(`${base}.reset_all_trends`, false, { name: "ALLE Trends & Historien zurücksetzen", type: "boolean", read: true, write: true });
                  
                      createState(`${base}.config.threshold_tanken`, 0.05, { name: "Schwelle JETZT_TANKEN (€/L unter Durchschnitt)", type: "number", read: true, write: true, unit: "€" });
                      createState(`${base}.config.threshold_nicht_tanken`, -0.05, { name: "Schwelle NICHT_TANKEN (€/L über Durchschnitt)", type: "number", read: true, write: true, unit: "€" });
                      createState(`${base}.config.trend_threshold_percent`, 0.2, { name: "Trend-Schwelle (% vom Durchschnitt)", type: "number", read: true, write: true, unit: "%" });
                      createState(`${base}.config.use_superscript`, true, { name: "Preise mit Hochzahl darstellen", type: "boolean", read: true, write: true });
                      createState(`${base}.config.show_trend_symbols`, false, { name: "Trend-/Forecast-Symbole im JSON anzeigen", type: "boolean", read: true, write: true });
                      createState(`${base}.config.keep_last_price_if_closed`, true, { name: "Letzten Preis bei geschlossenen Stationen behalten", type: "boolean", read: true, write: true });
                      
                      logInfo("States initialisiert.");
                  }
                  
                  // Promise‑Wrapper für httpGet, liefert API‑Antwort asynchron
                  function httpGetAsync(url, options) {
                      return new Promise((resolve, reject) => {
                          httpGet(url, options, (error, response) => {
                              if (error) reject(error);
                              else resolve(response);
                          });
                      });
                  }
                  
                  // Berechnet Durchschnittspreise aller offenen Stationen und speichert sie
                  function calculateAveragePrices() {
                      const fuels = ["benzin", "e10", "diesel"];
                      const averages = {};
                  
                      fuels.forEach(fuel => {
                          let sum = 0;
                          let count = 0;
                  
                          stations
                              .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false && getState(`${base}.${s.id}.dataonly`)?.val !== true)
                              .forEach(s => {
                                  const path = `${base}.${s.id}`;
                                  const isOpen = getState(`${path}.isOpen`)?.val;
                                  const price = getState(`${path}.${fuel}`)?.val;
                  
                                  if (isOpen && typeof price === "number" && price > 0) {
                                      sum += price;
                                      count++;
                                  }
                              });
                  
                          averages[fuel] = count > 0 ? parseFloat((sum / count).toFixed(3)) : 0;
                      });
                  
                      fuels.forEach(fuel => {
                          setState(`${base}.average.${fuel}`, averages[fuel], true);
                          setState(`${base}.average.${fuel}_str`, formatPriceUnicode(averages[fuel]), true);
                      });
                      logInfo("Durchschnittspreise aktualisiert.");
                  }
                  
                  // Prognose für Preisentwicklung (24h) anhand Historie
                  function calculateFutureTrend(history, futureHours = 24) {
                      const data = history.filter(h => typeof h.price === "number").sort((a,b) => a.ts - b.ts);
                      if (data.length < 2) return { text: "kein Trend", icon: TREND_ICONS.none, projectedPrice: null };
                  
                      const first = data[0];
                      const last  = data[data.length - 1];
                  
                      const hoursDiff = (last.ts - first.ts) / (1000 * 3600); 
                      if (hoursDiff === 0) return { text: "stabil", icon: TREND_ICONS.flat, projectedPrice: last.price };
                  
                      const ratePerHour = (last.price - first.price) / hoursDiff;
                      const projectedPrice = last.price + ratePerHour * futureHours;
                  
                      const avg = data.reduce((sum, d) => sum + d.price, 0) / data.length;
                      const TH = avg * 0.002;
                  
                      const diff = projectedPrice - last.price;
                      if (diff > TH) return { text: "steigend", icon: TREND_ICONS.up, projectedPrice };
                      if (diff < -TH) return { text: "fallend", icon: TREND_ICONS.down, projectedPrice };
                      return { text: "stabil", icon: TREND_ICONS.flat, projectedPrice };
                  }
                  
                  // Schreibt alle Trend‑Infos einer Station als JSON zusammen
                  function updateAspectsJSON(stationId) {
                      const path = `${base}.${stationId}`;
                      ["benzin","e10","diesel"].forEach(fuel => {
                          const trends = {
                              trend_48h: getState(`${path}.aspects.${fuel}.trend_48h`)?.val || "",
                              trend_14d: getState(`${path}.aspects.${fuel}.trend_14d`)?.val || "",
                              trend_90d: getState(`${path}.aspects.${fuel}.trend_90d`)?.val || "",
                              trend_24h_proj: getState(`${path}.aspects.${fuel}.trend_24h_proj`)?.val || "",
                              trend_24h_proj_price: getState(`${path}.aspects.${fuel}.trend_24h_proj_price`)?.val || 0,
                              trend_48h_icon: getState(`${path}.aspects.${fuel}.trend_48h_icon`)?.val || "",
                              trend_14d_icon: getState(`${path}.aspects.${fuel}.trend_14d_icon`)?.val || "",
                              trend_90d_icon: getState(`${path}.aspects.${fuel}.trend_90d_icon`)?.val || "",
                              trend_24h_proj_icon: getState(`${path}.aspects.${fuel}.trend_24h_proj_icon`)?.val || ""
                          };
                          setState(`${path}.aspects.${fuel}.json`, JSON.stringify(trends), true);
                      });
                  }
                  
                  // Trend / FORECAST Icons / Unicode-Hochzahlen für 0–9
                  const TREND_ICONS = { up: "↑", down: "↓", flat: "→", none: "–" };
                  const TREND_SYMBOLS = { up: "↑", down: "↓", flat: "→" };
                  const FORECAST_SYMBOLS = { up: "↗", down: "↘", flat: "→" };
                  const SUPERSCRIPT = ['⁰','¹','²','³','⁴','⁵','⁶','⁷','⁸','⁹'];
                  
                  // Formatiert Preis mit Unicode‑Hochzahl oder normaler Darstellung
                  function formatPriceUnicode(price) {
                      if (price === null || price === undefined || isNaN(price)) return null;
                  
                      const p = Number(price).toFixed(3);            // z.B. 1.899
                      const main = p.slice(0, -1).replace('.', ','); // "1,89"
                      const lastDigit = p.slice(-1);                 // "9"
                      const useSuperscript = getState(`${base}.config.use_superscript`)?.val ?? true;
                  
                      if (useSuperscript) {
                          return main + SUPERSCRIPT[Number(lastDigit)]; // "1,89⁹"
                      } else {
                          return (Number(price).toFixed(2)).replace('.', ','); // "1,90" normale Darstellung
                      }
                  }
                  
                  // Berechnet Preisunterschiede zwischen billigster/teuerster Station pro Spritsorte
                  function calculateDifferencesStates() {
                      const fuels = [
                          { key: "benzin", label: "Benzin" },
                          { key: "e10", label: "E10" },
                          { key: "diesel", label: "Diesel" }
                      ];
                  
                      const openStations = stations
                          .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false
                                    && getState(`${base}.${s.id}.isOpen`)?.val === true
                                    && getState(`${base}.${s.id}.dataonly`)?.val !== true);
                  
                      const priceDiffArray = fuels.map(fuel => {
                          const prices = openStations
                              .map(s => {
                                  const price = getState(`${base}.${s.id}.${fuel.key}`)?.val;
                                  return (typeof price === "number" && price > 0)
                                      ? {
                                          name: getState(`${base}.${s.id}.name`)?.val || "",
                                          price,
                                          image: getState(`${base}.${s.id}.image`)?.val || ""
                                      }
                                      : null;
                              })
                              .filter(Boolean);
                  
                          let diff = 0;
                          let cheapestName = "---";
                          let teuersteName = "---";
                          let billigste_image = "";
                          let teuerste_image = "";
                  
                          if (prices.length > 0) {
                              const cheapest = prices.reduce((a, b) => a.price < b.price ? a : b);
                              const expensive = prices.reduce((a, b) => a.price > b.price ? a : b);
                  
                              diff = parseFloat((expensive.price - cheapest.price).toFixed(2));
                  
                              billigste_image = cheapest.image;
                              teuerste_image = expensive.image;
                  
                              cheapestName = cheapest.name + " (" + cheapest.price.toFixed(2) + " €)";
                              teuersteName = expensive.name + " (" + expensive.price.toFixed(2) + " €)";
                          }
                          setState(`${base}.difference.${fuel.key}`, diff, true);
                  
                          return {
                              text: fuel.label,
                              billigste_image,
                              billigste: cheapestName,
                              teuerste_image,
                              teuerste: teuersteName,
                              differenz: diff.toFixed(2)
                          };
                      });
                  
                      setState(`${base}.difference.prices`, JSON.stringify(priceDiffArray), true);
                      logInfo("Differenzen und Preise als JSON unter `${base}.difference` aktualisiert.");
                  }
                  
                  // Speichert günstigste Stationen je Spritsorte als JSON
                  function saveCheapestJSON() {
                      const fuels = [
                          { key: "benzin", label: "Benzin", img: image_base+"blue.png" },
                          { key: "e10", label: "E10", img: image_base+"green.png" },
                          { key: "diesel", label: "Diesel", img: image_base+"red.png" }
                      ];
                  
                      const json = fuels.map(fuel => {
                          const stationId = getState(`${base}.cheapest.${fuel.key}_station`)?.val;
                          if (!stationId) {
                              return {
                                  col_1: fuel.img,
                                  col_2: fuel.label,
                                  col_3: "",
                                  col_4: "---",
                                  col_5: "---"
                              };
                          }
                  
                          const img = getState(`${base}.${stationId}.image`)?.val || "";
                          const isFav = getState(`${base}.${stationId}.favorite`)?.val === true;
                          const brand = (getState(`${base}.${stationId}.name`)?.val || "") + (isFav ? " ★" : "");
                          const price = getState(`${base}.${stationId}.${fuel.key}`)?.val ?? null;
                  
                          return {
                              col_1: fuel.img,
                              col_2: fuel.label,
                              col_3: img,
                              col_4: brand.trim(),
                              col_5: formatPriceUnicode(price)   // <-- hier Unicode-Hochzahl
                          };
                      });
                  
                      setState(`${base}.cheapest.cheapest_json`, JSON.stringify(json), true);
                  }
                  
                  // Ermittelt Top‑3 Stationen je Spritsorte (Preis → Favorit → Entfernung)
                  function saveTop3JSON() {
                      const fuels = ["benzin","e10","diesel"];
                  
                      fuels.forEach(fuel => {
                          const stationsWithPrices = stations
                              .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false
                                        && getState(`${base}.${s.id}.isOpen`)?.val === true
                                        && getState(`${base}.${s.id}.dataonly`)?.val !== true)
                              .map(s => {
                                  const isFav = getState(`${base}.${s.id}.favorite`)?.val === true;
                                  return {
                                      name: getState(`${base}.${s.id}.name`)?.val || "",
                                      favorite: isFav,
                                      price: getState(`${base}.${s.id}.${fuel}`)?.val || 0,
                                      image: getState(`${base}.${s.id}.image`)?.val || "",
                                      distance: getState(`${base}.${s.id}.distance`)?.val || 0
                                  };
                              })
                              .filter(s => typeof s.price === "number" && s.price > 0);
                  
                          // Sortierung: Preis → Favorit → Entfernung
                          stationsWithPrices.sort((a, b) => {
                              if (a.price !== b.price) return a.price - b.price;
                              if (a.favorite !== b.favorite) return a.favorite ? -1 : 1;
                              return a.distance - b.distance;
                          });
                  
                          // Top 3 auswählen und JSON mit rank und gewünschter Feldreihenfolge
                          const top3 = stationsWithPrices.slice(0,3).map((s, index) => ({
                              rank: index + 1,
                              image: s.image,
                              name: s.name + (s.favorite ? " ★" : ""),
                              price: formatPriceUnicode(s.price),  // <-- hier Hochzahlen verwenden
                              distance: parseFloat(s.distance.toFixed(2))
                          }));
                  
                          setState(`${base}.cheapest.${fuel}_top3_json`, JSON.stringify(top3), true);
                      });
                  }
                  
                  // Speichert Durchschnittspreise je Spritsorte als JSON
                  function saveAverageJSON() {
                      const fuels = ["benzin","e10","diesel"];
                      const json = fuels.map(fuel => {
                          const avg = getState(`${base}.average.${fuel}`)?.val ?? 0;
                          return {
                              fuel: fuel,
                              price: formatPriceUnicode(avg)  // Unicode-Hochzahl für letzte Stelle
                          };
                      });
                      setState(`${base}.average.average_json`, JSON.stringify(json), true);
                  }
                  
                  // Fügt neuen Preis in Historie ein, aggregiert ältere Daten (48h/90d)
                  function appendHistory(path, fuel, price) {
                      if (typeof price !== "number" || price <= 0) return;
                  
                      const now = Date.now();
                      const cutoff90d = now - 90 * 24 * 3600 * 1000;  // 90 Tage
                      const cutoff48h = now - 48 * 3600 * 1000;       // 48 Stunden
                  
                      const historyStr = getState(`${path}.aspects.${fuel}.history`)?.val || "[]";
                      let history = [];
                      try { history = JSON.parse(historyStr); } catch {}
                  
                      // Neuer Eintrag
                      history.push({ ts: now, price });
                  
                      // Alte Einträge >90 Tage entfernen
                      history = history.filter(h => h.ts >= cutoff90d);
                  
                      // Kurzzeit 48h: alle behalten für exakte Trendberechnung
                      const shortTerm = history.filter(h => h.ts >= cutoff48h);
                  
                      // Langzeit >48h: stündlich aggregieren
                      const longTerm = history
                          .filter(h => h.ts < cutoff48h)
                          .reduce((acc, cur) => {
                              const hour = Math.floor(cur.ts / (3600*1000)); // Stunde als Bucket
                              if (!acc[hour]) acc[hour] = { ts: cur.ts, price: cur.price, count: 1 };
                              else {
                                  acc[hour].price = (acc[hour].price * acc[hour].count + cur.price) / (acc[hour].count + 1);
                                  acc[hour].count++;
                                  acc[hour].ts = cur.ts; // letzte Zeit der Stunde
                              }
                              return acc;
                          }, {});
                  
                      const longTermArray = Object.values(longTerm).map(h => ({ ts: h.ts, price: parseFloat(h.price.toFixed(3)) }));
                  
                      // Kombiniere kurz- und langzeit
                      const newHistory = [...longTermArray, ...shortTerm];
                  
                      setState(`${path}.aspects.${fuel}.history`, JSON.stringify(newHistory), true);
                  }
                  
                  // Berechnet Trend (steigend/fallend/stabil) über angegebenes Zeitfenster
                  function calculateTrend(history, hours) {
                      const cutoff = Date.now() - (hours * 3600 * 1000);
                      const data = history
                          .filter(h => h.ts >= cutoff)
                          .sort((a,b) => a.ts - b.ts);
                  
                      if (data.length < 2) return { text: "kein Trend", icon: TREND_ICONS.none };
                  
                      const first = data[0].price;
                      const last  = data[data.length - 1].price;
                      const diff  = last - first;
                  
                      const avg = data.reduce((sum,d) => sum+d.price,0) / data.length;
                      const thresholdPercent = getState(`${base}.config.trend_threshold_percent`)?.val ?? 0.2;
                      const TH = avg * (thresholdPercent / 100);
                  
                      if (diff > TH) return { text: "steigend", icon: TREND_ICONS.up };
                      if (diff < -TH) return { text: "fallend", icon: TREND_ICONS.down };
                      return { text: "stabil", icon: TREND_ICONS.flat };
                  }
                  
                  // Erstellt Handlungsempfehlungen („JETZT_TANKEN“, „ABWARTEN“) basierend auf Durchschnitt, günstigster Station und Trends
                  // Erstellt Handlungsempfehlungen („JETZT_TANKEN“, „ABWARTEN“) basierend auf Durchschnitt, günstigster Station und Trends
                  async function updateRecommendations() {
                      const fuels = [
                          { key: "benzin", label: "BENZIN" },
                          { key: "e10",    label: "E10" },
                          { key: "diesel", label: "DIESEL" }
                      ];
                  
                      const recommendations = [];
                      const thresholdTanken = getState(`${base}.config.threshold_tanken`)?.val ?? 0.05;
                      const thresholdNichtTanken = getState(`${base}.config.threshold_nicht_tanken`)?.val ?? -0.05;
                  
                      fuels.forEach(fuel => {
                          const avg       = getState(`${base}.average.${fuel.key}`)?.val;
                          const cheapest  = getState(`${base}.cheapest.${fuel.key}_price`)?.val;
                          const stationId = getState(`${base}.cheapest.${fuel.key}_station`)?.val;
                          const stationNm = getState(`${base}.cheapest.${fuel.key}_station_name`)?.val;
                  
                          if (typeof avg !== "number" || typeof cheapest !== "number" || !stationId) {
                              return;
                          }
                  
                          const diff = parseFloat((avg - cheapest).toFixed(2));
                  
                          // ---- Handlungsempfehlung ----
                          let action = "ABWARTEN";
                          let reason = "Kein Preisvorteil";
                  
                          if (diff >= thresholdTanken) {
                              action = "JETZT_TANKEN";
                              reason = `${diff.toFixed(2).replace('.', ',')} € unter Durchschnitt`;
                          } else if (diff <= thresholdNichtTanken) {
                              action = "NICHT_TANKEN";
                              reason = `${Math.abs(diff).toFixed(2).replace('.', ',')} € über Durchschnitt`;
                          }
                  
                          // ---- NEU: Boolesche Tankempfehlung ----
                          const tanken_empfohlen = (action === "JETZT_TANKEN");
                  
                          // >>> Hier setzen wir die drei neuen States <<<
                          setState(`${base}.recommendation.${fuel.key}_tanken_empfohlen`, tanken_empfohlen, true);
                  
                          // ---- Trends (vom günstigsten Anbieter) ----
                          const trend48h = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_48h_icon`)?.val || "–";
                          const trend14d = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_14d_icon`)?.val || "–";
                          const trend90d = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_90d_icon`)?.val || "–";
                  
                          const projDir   = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_24h_proj_icon`)?.val || "–";
                          const projPrice = getState(`${base}.${stationId}.aspects.${fuel.key}.trend_24h_proj_price`)?.val || 0;
                  
                          recommendations.push({
                              fuel: fuel.label,
                              action,
                              reason,
                              trend_48h: trend48h,
                              trend_14d: trend14d,
                              trend_90d: trend90d,
                              forecast_dir: projDir,
                              forecast_price: projPrice > 0 ? parseFloat(projPrice.toFixed(2)) : null,
                              best_station_name: stationNm || "",
                              best_station_price: formatPriceUnicode(cheapest)
                          });
                      });
                  
                      // JSON bleibt bestehen, nur ohne tanken_empfohlen
                      setState(`${base}.recommendation_json`, JSON.stringify(recommendations), true);
                  }
                  
                  // Hauptfunktion: Holt Tankerkoenig‑Daten, aktualisiert States, berechnet günstigste Stationen
                  async function loadData() {
                      logInfo("Starte Datenabfrage ...");
                  
                      function considerCheapest(cheapest, fuelKey, newPrice, dist, stationId, image, isFav) {
                          if (typeof newPrice !== 'number') return;
                  
                          const current = cheapest[fuelKey];
                  
                          // 1) Wenn noch keine vorhanden: setzen
                          if (!current) {
                              cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                              return;
                          }
                          // 2) Günstigerer Preis gewinnt IMMER
                          if (newPrice < current.price) {
                              cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                              return;
                          }
                          // 3) Gleicher Preis -> Favorit gewinnt
                          if (newPrice === current.price) {
                              const currentFav = !!current.favorite;
                              if (isFav && !currentFav) {
                                  // neuer ist Favorit, aktueller nicht -> neuer gewinnt
                                  cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                                  return;
                              }
                              // 4) Beide Favorit oder beide nicht -> Entfernung entscheidet
                              if ((isFav === currentFav) && dist < current.distance) {
                                  cheapest[fuelKey] = { price: newPrice, station: stationId, image: image, distance: dist, favorite: !!isFav };
                                  return;
                              }
                          }
                          // sonst behalte current
                      }
                  
                      const listCleaner = (entry = '') =>
                          entry
                              .toLowerCase()
                              .split(' ')
                              .map(word =>
                                  word.replace(/oe/g, 'ö')
                                      .replace(/ae/g, 'ä')
                                      .replace(/ue/g, 'ü')
                                      .replace(/ss/g, 'ß')
                              )
                              .map(word => word.charAt(0).toUpperCase() + word.slice(1))
                              .join(' ');
                  
                      const cheapest = { benzin: null, e10: null, diesel: null };
                  
                      const tasks = stations
                          .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false)
                          .map(async (s) => {
                  
                              const url = `https://creativecommons.tankerkoenig.de/json/detail.php?id=${s.id}&apikey=${apiKey}`;
                  
                              try {
                                  const dynamicUA = new UserAgent().toString();
                  
                                  logInfo(`Abruf für Station ${s.id}`);
                  
                                  const response = await httpGetAsync(url, {
                                      timeout: 15000,
                                      headers: { "User-Agent": dynamicUA }
                                  });
                  
                                  if (!response || response.statusCode !== 200) {
                                      logError(`HTTP Error Station ${s.id}: ${response?.statusCode}`);
                                      return;
                                  }
                  
                                  const body = typeof response.data === "string" ? JSON.parse(response.data) : response.data;
                                  if (!body || !body.station) return;
                  
                                  const p = body.station;
                                  const path = `${base}.${s.id}`;
                  
                                  setState(`${path}.status`, p.isOpen ? "geöffnet" : "geschlossen", true);
                                  setState(`${path}.image`, s.image, true);
                  
                                  setIfEmpty(`${path}.name`, p.name);
                                  setIfEmpty(`${path}.brand`, p.brand);
                  
                                  const streetWithHouse = p.houseNumber && p.houseNumber.trim() !== "" ? `${p.street} ${p.houseNumber}` : p.street;
                  
                                  setIfEmpty(`${path}.street`, listCleaner(streetWithHouse));
                                  setIfEmpty(`${path}.place`, listCleaner(p.place));
                                  setIfEmpty(`${path}.postCode`, p.postCode ? p.postCode.toString().padStart(5, "0") : "");
                  
                                  setState(`${path}.isOpen`, p.isOpen, true);
                                  setState(`${path}.isWholeDay`, p.wholeDay, true);
                  
                                  // --- Mapping für Wochentage + Feiertag + Sonderfälle ---
                                  const WEEKDAY_MAP = { "Montag": "Mo", "Dienstag": "Di", "Mittwoch": "Mi", "Donnerstag": "Do", "Freitag": "Fr", "Samstag": "Sa", "Sonntag": "So", "Feiertag": "Ft" };
                  
                                  // --- Öffnungszeiten vorbereiten und transformieren ---
                                  let rawOpeningTimes;
                                  if (p.wholeDay) {
                                      rawOpeningTimes = [{ text: "Mo-So", start: "00:00:00", end: "24:00:00" }];
                                  } else {
                                      if (Array.isArray(p.openingTimes)) {
                                          rawOpeningTimes = p.openingTimes;
                                      } else if (typeof p.openingTimes === "string") {
                                          try {
                                              rawOpeningTimes = JSON.parse(p.openingTimes);
                                          } catch {
                                              rawOpeningTimes = [];
                                          }
                                      } else {
                                          rawOpeningTimes = [];
                                      }
                                  }
                  
                                  const formattedOpening = formatOpeningEntries(rawOpeningTimes, WEEKDAY_MAP);
                                  setState(`${path}.openingTimes`, JSON.stringify(formattedOpening), true);
                  
                                  // --- Overrides vorbereiten und transformieren ---
                                  let rawOverrides;
                                  if (Array.isArray(p.overrides)) {
                                      rawOverrides = p.overrides;
                                  } else if (typeof p.overrides === "string") {
                                      try { rawOverrides = JSON.parse(p.overrides); } catch { rawOverrides = []; }
                                  } else {
                                      rawOverrides = [];
                                  }
                  
                                  const formattedOverrides = formatOpeningEntries(rawOverrides, WEEKDAY_MAP);
                                  setState(`${path}.overrides`, JSON.stringify(formattedOverrides), true);
                  
                                  // --- Distanzberechnung, ausgehend von eigenen Standort ---
                                  if (p.lat && p.lng) {
                                      const distance = getDistance(myLocation.lat, myLocation.lon, p.lat, p.lng);
                                      setState(`${path}.distance`, parseFloat(distance.toFixed(2)), true);
                                  }
                  
                                  // --- Preise ---
                                  let priceChanged = false;
                  
                                  const fuels = [
                                      { api: "e5", dp: "benzin" },
                                      { api: "e10", dp: "e10" },
                                      { api: "diesel", dp: "diesel" }
                                  ];
                  
                                  const keepLastPriceIfClosed = getState(`${base}.config.keep_last_price_if_closed`)?.val ?? true;
                                  if (p.isOpen) {
                                      if (getState(`${path}.benzin`)?.val !== p.e5) {
                                          appendHistory(path, "benzin", p.e5);
                                      }
                                      if (getState(`${path}.e10`)?.val !== p.e10) {
                                          appendHistory(path, "e10", p.e10);
                                      }
                                      if (getState(`${path}.diesel`)?.val !== p.diesel) {
                                          appendHistory(path, "diesel", p.diesel);
                                      }
                  
                                      fuels.forEach(f => {
                                          if (typeof p[f.api] === "number") {
                                              const oldVal = getState(`${path}.${f.dp}`)?.val;
                                              if (oldVal !== p[f.api]) priceChanged = true;
                                              setState(`${path}.${f.dp}`, p[f.api], true);
                                          }
                                      });
                  
                                      if (priceChanged) {
                                          setState(`${path}.lastPriceUpdate`, hole_datum(), true);
                                      }
                  
                                      setState(`${path}.benzin_str`, formatPriceUnicode(getState(`${path}.benzin`)?.val), true);
                                      setState(`${path}.e10_str`, formatPriceUnicode(getState(`${path}.e10`)?.val), true);
                                      setState(`${path}.diesel_str`, formatPriceUnicode(getState(`${path}.diesel`)?.val), true);
                  
                                  } else if (!keepLastPriceIfClosed) {
                                      setState(`${path}.benzin`, 0.0, true);
                                      setState(`${path}.e10`, 0.0, true);
                                      setState(`${path}.diesel`, 0.0, true);
                                      setState(`${path}.benzin_str`, "", true);
                                      setState(`${path}.e10_str`, "", true);
                                      setState(`${path}.diesel_str`, "", true);
                                  }
                  
                                  ["benzin","e10","diesel"].forEach(fuel => {
                                      const historyStr = getState(`${path}.aspects.${fuel}.history`)?.val || "[]";
                                      let history = [];
                                      try { history = JSON.parse(historyStr); } catch {}
                  
                                  const trends = {
                                      "48h": calculateTrend(history, 48),
                                      "14d": calculateTrend(history, 24 * 14),
                                      "90d": calculateTrend(history, 24 * 90)
                                  };
                  
                                  Object.entries(trends).forEach(([win, result]) => {
                                      setState(`${path}.aspects.${fuel}.trend_${win}`, result.text, true);
                                      setState(`${path}.aspects.${fuel}.trend_${win}_icon`, result.icon, true);
                                  });
                  
                                  // 24h Prognose pro Tankstelle ===
                                  const futureTrend = calculateFutureTrend(history, 24);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj`, futureTrend.text, true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, futureTrend.icon, true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj_price`, futureTrend.projectedPrice ? parseFloat(futureTrend.projectedPrice.toFixed(3)) : 0, true);                });
                  
                                  function buildPriceEntry(fuelKey, label, image) {
                                      let priceStr = formatPriceUnicode(getState(`${path}.${fuelKey}`)?.val ?? null) || "";
                  
                                      const showTrendSymbols = getState(`${base}.config.show_trend_symbols`)?.val ?? false;
                                      if (showTrendSymbols && priceStr) {
                                          const trendIcon = getState(`${path}.aspects.${fuelKey}.trend_48h_icon`)?.val || TREND_SYMBOLS.flat;
                                          const forecastIcon = getState(`${path}.aspects.${fuelKey}.trend_24h_proj_icon`)?.val || FORECAST_SYMBOLS.flat;
                                          priceStr = `${priceStr} ${trendIcon} ${forecastIcon}`;
                                      }
                  
                                      return { image, text: label, price: priceStr };
                                  }
                  
                                  const pricesJSON = [
                                      buildPriceEntry("benzin", "Benzin", image_base + "blue.png"),
                                      buildPriceEntry("e10",    "E10",    image_base + "green.png"),
                                      buildPriceEntry("diesel", "Diesel", image_base + "red.png")
                                  ];
                  
                                  setState(`${path}.prices`, JSON.stringify(pricesJSON), true);
                                  setState(`${path}.lastChecked`, hole_datum(), true);
                  
                                  const dist = getState(`${path}.distance`)?.val || 0;
                                  const isFav = getState(`${path}.favorite`)?.val === true;
                                  if (p.isOpen && getState(`${base}.${s.id}.dataonly`)?.val !== true) {
                                      considerCheapest(cheapest, 'benzin', p.e5, dist, s.id, s.image, isFav);
                                      considerCheapest(cheapest, 'e10', p.e10, dist, s.id, s.image, isFav);
                                      considerCheapest(cheapest, 'diesel', p.diesel, dist, s.id, s.image, isFav);
                                  }
                                  updateAspectsJSON(s.id);
                              } catch (error) {
                                  logError(`Fehler bei Station ${s.id}: ${error}`);
                              }
                          });
                  
                      await Promise.allSettled(tasks);
                      logInfo("Auswertung abgeschlossen.");
                  
                      ["benzin", "e10", "diesel"].forEach(fuel => {
                          if (cheapest[fuel]) {
                              const stationId = cheapest[fuel].station;
                              const stationName = getState(`${base}.${stationId}.name`)?.val || "";
                  
                              setState(`${base}.cheapest.${fuel}_price`, cheapest[fuel].price, true);
                              setState(`${base}.cheapest.${fuel}_price_str`, formatPriceUnicode(cheapest[fuel].price), true);
                              setState(`${base}.cheapest.${fuel}_station`, stationId, true); // ID bleibt für Pfad-Operationen
                              setState(`${base}.cheapest.${fuel}_station_name`, stationName, true);
                              setState(`${base}.cheapest.${fuel}_image`, cheapest[fuel].image, true);
                          } else {
                              setState(`${base}.cheapest.${fuel}_price`, 0, true);
                              setState(`${base}.cheapest.${fuel}_price_str`, "", true);
                              setState(`${base}.cheapest.${fuel}_station`, "", true);
                              setState(`${base}.cheapest.${fuel}_station_name`, "", true);
                              setState(`${base}.cheapest.${fuel}_image`, "", true);
                          }
                      });
                  
                      saveCheapestJSON();
                      saveTop3JSON();
                      calculateAveragePrices();
                      calculateDifferencesStates();
                      saveAverageJSON();
                  
                      // Vollständige Infos JSON — nur aktive Stationen
                      const fullInfo = stations
                          .filter(s => getState(`${base}.${s.id}.enabled`)?.val !== false)
                          .map(s => {
                              const path = `${base}.${s.id}`;
                              return {
                                  name: getState(`${path}.name`)?.val || "",
                                  brand: getState(`${path}.brand`)?.val || "",
                                  street: getState(`${path}.street`)?.val || "",
                                  postCode: getState(`${path}.postCode`)?.val || "",
                                  place: getState(`${path}.place`)?.val || "",
                                  distance: getState(`${path}.distance`)?.val || "",
                                  image: getState(`${path}.image`)?.val || "",
                                  benzin: getState(`${path}.benzin`)?.val ?? null,
                                  e10: getState(`${path}.e10`)?.val ?? null,
                                  diesel: getState(`${path}.diesel`)?.val ?? null,
                                  isOpen: getState(`${path}.isOpen`)?.val ?? false,
                                  lastPriceUpdate: getState(`${path}.lastPriceUpdate`)?.val || "",
                                  lastChecked: getState(`${path}.lastChecked`)?.val || ""
                              };
                          });
                  
                      setState(`${base}.all_stations_full_info`, JSON.stringify(fullInfo), true);
                      updateRecommendations();
                  }
                  
                  // Start + Cron
                  (async () => {
                      try {
                          if (await internetUndTankerkoenigOK()) {
                              await initStates();
                              await sleepMs(5000);
                              await loadData();
                          }
                      } catch (err) {
                          logError("Fehler beim Start: " + err);
                      }
                  })();
                  
                  schedule('35 7,17,27,37,47,57 * * * *', async() => {
                      try {
                          if (await internetUndTankerkoenigOK()) {
                              await initStates();
                              await sleepMs(5000);
                              await loadData();
                          }
                      } catch (err) {
                          logError("Fehler beim Cron-Start: " + err);
                      }
                  });
                  
                  async function internetUndTankerkoenigOK() {
                      try {
                          // 1. Internetcheck
                          const net = await httpGetAsync("https://www.google.com/generate_204", { timeout: 5000 });
                          if (!net || net.statusCode !== 204) return false;
                  
                          // 2. Tankerkönig-Check (nur HEAD auf statische Seite)
                          const tk = await httpGetAsync("https://creativecommons.tankerkoenig.de/", { timeout: 5000 });
                          return (tk && tk.statusCode === 200);
                  
                      } catch {
                          return false;
                      }
                  }
                  
                  stations.forEach(s => {
                      const resetId = `${base}.${s.id}.aspects.reset_history`;
                  
                      on({ id: resetId, change: "ne" }, obj => {
                          if (obj.state.val === true) {
                              const path = `${base}.${s.id}`;
                  
                              ["benzin","e10","diesel"].forEach(fuel => {
                                  setState(`${path}.aspects.${fuel}.history`, "[]", true);
                                  setState(`${path}.aspects.${fuel}.trend_48h`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_14d`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_90d`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj_price`, 0, true);
                                  setState(`${path}.aspects.${fuel}.trend_48h_icon`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_14d_icon`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_90d_icon`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, "", true);
                              });
                              setState(resetId, false, true);
                          }
                      });
                  });
                  
                  on({ id: `${base}.reset_all_trends`, change: "ne" }, obj => {
                      if (obj.state.val === true) {
                              stations.forEach(s => {
                              const path = `${base}.${s.id}`;
                              ["benzin","e10","diesel"].forEach(fuel => {
                                  setState(`${path}.aspects.${fuel}.history`, "[]", true);
                                  setState(`${path}.aspects.${fuel}.trend_48h`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_14d`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_90d`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj_price`, 0, true);
                                  setState(`${path}.aspects.${fuel}.trend_48h_icon`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_14d_icon`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_90d_icon`, "", true);
                                  setState(`${path}.aspects.${fuel}.trend_24h_proj_icon`, "", true);
                              });
                          });
                          setState(`${base}.reset_all_trends`, false, true);
                      }
                  });
                  
                  

                  Wenn alles richtig gemacht wurde, trudeln die Daten regelmäßig ein. Trend und Prognosen werden nicht sofort "brauchbare" Daten liefern. Es muss einfach etwas Zeit vertreichen. Ich habe bei mir alles in VIS1 visualisiert, sollte aber auch mit anderen Systemen funktionieren.

                  Viel Spaß und gutes Gelingen mit diesem Skript.

                  Ro75.

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von
                  #8

                  @Ro75 sagte in Tankerkönig - Extended Skript:

                  Viel Spaß und gutes Gelingen mit diesem Skript.

                  Servus

                  Könnte man sowas auch für Österreich machen?
                  Adapter gibt es zwar, aber so wie deins wäre hübscher. ;)

                  API gibt es von e-Control

                  ° Node.js Update ---> iob nodejs-update
                  ° Fixer ---> iob fix

                  Ro75R 1 Antwort Letzte Antwort
                  0
                  • Thomas MaulT Thomas Maul

                    Super, danke! Ich probier's demnächst.

                    Hinweis: im Bild ganz oben ist der genaue Standort verpixelt (vermutlich wg. Privatsphäre), im Code sind aber hoffentlich dann nicht Deine echten Geodaten ;-)

                    Ro75R Offline
                    Ro75R Offline
                    Ro75
                    schrieb am zuletzt editiert von
                    #9

                    @Thomas-Maul sagte in Tankerkönig - Extended Skript:

                    Deine echten Geodaten ;-)

                    Nein, steht aber auch als Kommentar dahinter :-)

                    Ro75.

                    SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                    1 Antwort Letzte Antwort
                    0
                    • NegaleinN Negalein

                      @Ro75 sagte in Tankerkönig - Extended Skript:

                      Viel Spaß und gutes Gelingen mit diesem Skript.

                      Servus

                      Könnte man sowas auch für Österreich machen?
                      Adapter gibt es zwar, aber so wie deins wäre hübscher. ;)

                      API gibt es von e-Control

                      Ro75R Offline
                      Ro75R Offline
                      Ro75
                      schrieb am zuletzt editiert von
                      #10

                      @Negalein sagte in Tankerkönig - Extended Skript:

                      Könnte man sowas auch für Österreich machen?

                      wenn ich Zeit und Lust habe, schaue ich mir das mal an. Im Moment bereite ich weitere Skripte vor, die eine Alternative zu Adaptern sind.

                      Ro75.

                      SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                      1 Antwort Letzte Antwort
                      3
                      • joalexaJ Offline
                        joalexaJ Offline
                        joalexa
                        schrieb am zuletzt editiert von
                        #11

                        Hallo, erstmal besten Dank für Deine Arbeit. Der Tankerkoenig läuft bei mir. Ich habe nun Dein Skript angepasst und bekomme dann allerdings beim Import unter VIS1 folgenden Fehler:Tankerkoenig_ext2.jpg
                        Danke für die Hilfe

                        RPi 4, SSD, Debian Booster
                        XIAOMI Hubs, Aqara und XIAOMI Sensoren, Yeelight Lampen, Shelly Schalter und Steckdose, Sonoff-Schalter (Tasmota), Fritz!Boxen (7490, 7390...)

                        NegaleinN 1 Antwort Letzte Antwort
                        0
                        • joalexaJ joalexa

                          Hallo, erstmal besten Dank für Deine Arbeit. Der Tankerkoenig läuft bei mir. Ich habe nun Dein Skript angepasst und bekomme dann allerdings beim Import unter VIS1 folgenden Fehler:Tankerkoenig_ext2.jpg
                          Danke für die Hilfe

                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          schrieb am zuletzt editiert von
                          #12

                          @joalexa sagte in Tankerkönig - Extended Skript:

                          Der Tankerkoenig läuft bei mir. Ich habe nun Dein Skript angepasst und bekomme dann allerdings beim Import unter VIS1 folgenden Fehler:

                          das ist ein Javascript.
                          Musst du in Scripte anlegen. Nicht in VIS importieren.

                          Den Tankerkoenig Adapter brauchst du dann nicht mehr.

                          ° Node.js Update ---> iob nodejs-update
                          ° Fixer ---> iob fix

                          joalexaJ 1 Antwort Letzte Antwort
                          1
                          • NegaleinN Negalein

                            @joalexa sagte in Tankerkönig - Extended Skript:

                            Der Tankerkoenig läuft bei mir. Ich habe nun Dein Skript angepasst und bekomme dann allerdings beim Import unter VIS1 folgenden Fehler:

                            das ist ein Javascript.
                            Musst du in Scripte anlegen. Nicht in VIS importieren.

                            Den Tankerkoenig Adapter brauchst du dann nicht mehr.

                            joalexaJ Offline
                            joalexaJ Offline
                            joalexa
                            schrieb am zuletzt editiert von
                            #13

                            @Negalein Danke für den Hinweis

                            RPi 4, SSD, Debian Booster
                            XIAOMI Hubs, Aqara und XIAOMI Sensoren, Yeelight Lampen, Shelly Schalter und Steckdose, Sonoff-Schalter (Tasmota), Fritz!Boxen (7490, 7390...)

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              Dragon
                              schrieb am zuletzt editiert von
                              #14

                              Hier habe ich mal etwas für die Vis 2 gebastelt.

                              Im Editor einfach die Zahlen durch die Zahlen eurer Tankstelle ersetzen und importieren. Funktioniert hervorragend.

                              [
                                {
                                  "tpl": "tplMaterial2Switches",
                                  "data": {
                                    "actual1": null,
                                    "actual10": null,
                                    "actual11": null,
                                    "actual12": null,
                                    "actual2": null,
                                    "actual3": null,
                                    "actual4": null,
                                    "actual5": null,
                                    "actual6": null,
                                    "actual7": null,
                                    "actual8": null,
                                    "actual9": null,
                                    "allSwitch": false,
                                    "bindings": [
                                      "widgetTitle",
                                      "icon2",
                                      "icon10",
                                      "infoActiveIcon1",
                                      "icon1"
                                    ],
                                    "blue1": null,
                                    "blue10": null,
                                    "blue11": null,
                                    "blue12": null,
                                    "blue2": null,
                                    "blue3": null,
                                    "blue4": null,
                                    "blue5": null,
                                    "blue6": null,
                                    "blue7": null,
                                    "blue8": null,
                                    "blue9": null,
                                    "boost1": null,
                                    "boost10": null,
                                    "boost11": null,
                                    "boost12": null,
                                    "boost2": null,
                                    "boost3": null,
                                    "boost4": null,
                                    "boost5": null,
                                    "boost6": null,
                                    "boost7": null,
                                    "boost8": null,
                                    "boost9": null,
                                    "brightness1": null,
                                    "brightness10": null,
                                    "brightness11": null,
                                    "brightness12": null,
                                    "brightness2": null,
                                    "brightness3": null,
                                    "brightness4": null,
                                    "brightness5": null,
                                    "brightness6": null,
                                    "brightness7": null,
                                    "brightness8": null,
                                    "brightness9": null,
                                    "buttonIcon1": null,
                                    "buttonIcon10": null,
                                    "buttonIcon11": null,
                                    "buttonIcon12": null,
                                    "buttonIcon2": null,
                                    "buttonIcon3": null,
                                    "buttonIcon4": null,
                                    "buttonIcon5": null,
                                    "buttonIcon6": null,
                                    "buttonIcon7": null,
                                    "buttonIcon8": null,
                                    "buttonIcon9": null,
                                    "buttonIconActive1": null,
                                    "buttonIconActive10": null,
                                    "buttonIconActive11": null,
                                    "buttonIconActive12": null,
                                    "buttonIconActive2": null,
                                    "buttonIconActive3": null,
                                    "buttonIconActive4": null,
                                    "buttonIconActive5": null,
                                    "buttonIconActive6": null,
                                    "buttonIconActive7": null,
                                    "buttonIconActive8": null,
                                    "buttonIconActive9": null,
                                    "buttonImage1": null,
                                    "buttonImage10": null,
                                    "buttonImage11": null,
                                    "buttonImage12": null,
                                    "buttonImage2": null,
                                    "buttonImage3": null,
                                    "buttonImage4": null,
                                    "buttonImage5": null,
                                    "buttonImage6": null,
                                    "buttonImage7": null,
                                    "buttonImage8": null,
                                    "buttonImage9": null,
                                    "buttonImageActive1": null,
                                    "buttonImageActive10": null,
                                    "buttonImageActive11": null,
                                    "buttonImageActive12": null,
                                    "buttonImageActive2": null,
                                    "buttonImageActive3": null,
                                    "buttonImageActive4": null,
                                    "buttonImageActive5": null,
                                    "buttonImageActive6": null,
                                    "buttonImageActive7": null,
                                    "buttonImageActive8": null,
                                    "buttonImageActive9": null,
                                    "buttonText1": null,
                                    "buttonText10": null,
                                    "buttonText11": null,
                                    "buttonText12": null,
                                    "buttonText2": null,
                                    "buttonText3": null,
                                    "buttonText4": null,
                                    "buttonText5": null,
                                    "buttonText6": null,
                                    "buttonText7": null,
                                    "buttonText8": null,
                                    "buttonText9": null,
                                    "buttonsWidth": 120,
                                    "chartPeriod1": 60,
                                    "chartPeriod10": 60,
                                    "chartPeriod11": 60,
                                    "chartPeriod12": 60,
                                    "chartPeriod2": 60,
                                    "chartPeriod3": 10080,
                                    "chartPeriod4": 60,
                                    "chartPeriod5": 60,
                                    "chartPeriod6": 60,
                                    "chartPeriod7": 60,
                                    "chartPeriod8": 60,
                                    "chartPeriod9": 60,
                                    "color1": null,
                                    "color10": null,
                                    "color11": null,
                                    "color12": null,
                                    "color2": null,
                                    "color3": "#ffffff",
                                    "color4": null,
                                    "color5": null,
                                    "color6": null,
                                    "color7": null,
                                    "color8": null,
                                    "color9": "#ffffff",
                                    "colorEnabled1": null,
                                    "colorEnabled10": null,
                                    "colorEnabled11": null,
                                    "colorEnabled12": null,
                                    "colorEnabled2": null,
                                    "colorEnabled3": "#ffffff",
                                    "colorEnabled4": null,
                                    "colorEnabled5": null,
                                    "colorEnabled6": null,
                                    "colorEnabled7": null,
                                    "colorEnabled8": null,
                                    "colorEnabled9": "#ffffff",
                                    "color_temperature1": null,
                                    "color_temperature10": null,
                                    "color_temperature11": null,
                                    "color_temperature12": null,
                                    "color_temperature2": null,
                                    "color_temperature3": null,
                                    "color_temperature4": null,
                                    "color_temperature5": null,
                                    "color_temperature6": null,
                                    "color_temperature7": null,
                                    "color_temperature8": null,
                                    "color_temperature9": null,
                                    "count": 13,
                                    "ct_max1": null,
                                    "ct_max10": null,
                                    "ct_max11": null,
                                    "ct_max12": null,
                                    "ct_max2": null,
                                    "ct_max3": null,
                                    "ct_max4": null,
                                    "ct_max5": null,
                                    "ct_max6": null,
                                    "ct_max7": null,
                                    "ct_max8": null,
                                    "ct_max9": null,
                                    "ct_min1": null,
                                    "ct_min10": null,
                                    "ct_min11": null,
                                    "ct_min12": null,
                                    "ct_min2": null,
                                    "ct_min3": null,
                                    "ct_min4": null,
                                    "ct_min5": null,
                                    "ct_min6": null,
                                    "ct_min7": null,
                                    "ct_min8": null,
                                    "ct_min9": null,
                                    "doNotConfirm1": null,
                                    "doNotConfirm10": null,
                                    "doNotConfirm11": null,
                                    "doNotConfirm12": null,
                                    "doNotConfirm2": null,
                                    "doNotConfirm3": null,
                                    "doNotConfirm4": null,
                                    "doNotConfirm5": null,
                                    "doNotConfirm6": null,
                                    "doNotConfirm7": null,
                                    "doNotConfirm8": null,
                                    "doNotConfirm9": null,
                                    "doNotWantIncludeWidgets": false,
                                    "g_common": true,
                                    "g_switch-1": true,
                                    "g_switch-10": true,
                                    "g_switch-11": true,
                                    "g_switch-12": true,
                                    "g_switch-2": true,
                                    "g_switch-3": true,
                                    "g_switch-4": true,
                                    "g_switch-5": true,
                                    "g_switch-6": true,
                                    "g_switch-7": true,
                                    "g_switch-8": true,
                                    "g_switch-9": true,
                                    "green1": null,
                                    "green10": null,
                                    "green11": null,
                                    "green12": null,
                                    "green2": null,
                                    "green3": null,
                                    "green4": null,
                                    "green5": null,
                                    "green6": null,
                                    "green7": null,
                                    "green8": null,
                                    "green9": null,
                                    "height1": null,
                                    "height10": null,
                                    "height11": null,
                                    "height12": null,
                                    "height2": null,
                                    "height3": null,
                                    "height4": null,
                                    "height5": null,
                                    "height6": null,
                                    "height7": null,
                                    "height8": null,
                                    "height9": null,
                                    "hide1": null,
                                    "hide10": null,
                                    "hide11": null,
                                    "hide12": null,
                                    "hide2": null,
                                    "hide3": null,
                                    "hide4": null,
                                    "hide5": null,
                                    "hide6": null,
                                    "hide7": null,
                                    "hide8": null,
                                    "hide9": null,
                                    "hideBrightness1": null,
                                    "hideBrightness10": null,
                                    "hideBrightness11": null,
                                    "hideBrightness12": null,
                                    "hideBrightness2": null,
                                    "hideBrightness3": null,
                                    "hideBrightness4": null,
                                    "hideBrightness5": null,
                                    "hideBrightness6": null,
                                    "hideBrightness7": null,
                                    "hideBrightness8": null,
                                    "hideBrightness9": null,
                                    "hideChart1": true,
                                    "hideChart10": true,
                                    "hideChart11": true,
                                    "hideChart12": true,
                                    "hideChart2": true,
                                    "hideChart3": true,
                                    "hideChart4": true,
                                    "hideChart5": true,
                                    "hideChart6": true,
                                    "hideChart7": true,
                                    "hideChart8": true,
                                    "hideChart9": true,
                                    "hue1": null,
                                    "hue10": null,
                                    "hue11": null,
                                    "hue12": null,
                                    "hue2": null,
                                    "hue3": null,
                                    "hue4": null,
                                    "hue5": null,
                                    "hue6": null,
                                    "hue7": null,
                                    "hue8": null,
                                    "hue9": null,
                                    "icon1": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.image}",
                                    "icon10": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_icon}",
                                    "icon11": null,
                                    "icon12": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.image}",
                                    "icon2": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.image}",
                                    "icon3": "../vis-2.0/tanken/blue.png",
                                    "icon4": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_icon}",
                                    "icon5": null,
                                    "icon6": "../vis-2.0/tanken/green.png",
                                    "icon7": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_icon}",
                                    "icon8": null,
                                    "icon9": "../vis-2.0/tanken/red.png",
                                    "iconEnabled1": null,
                                    "iconEnabled10": null,
                                    "iconEnabled11": null,
                                    "iconEnabled12": null,
                                    "iconEnabled2": null,
                                    "iconEnabled3": "../vis-2.0/tanken/blue.png",
                                    "iconEnabled4": null,
                                    "iconEnabled5": null,
                                    "iconEnabled6": "../vis-2.0/tanken/green.png",
                                    "iconEnabled7": null,
                                    "iconEnabled8": null,
                                    "iconEnabled9": "../vis-2.0/tanken/red.png",
                                    "iconEnabledSmall1": null,
                                    "iconEnabledSmall10": null,
                                    "iconEnabledSmall11": null,
                                    "iconEnabledSmall12": null,
                                    "iconEnabledSmall2": null,
                                    "iconEnabledSmall3": null,
                                    "iconEnabledSmall4": null,
                                    "iconEnabledSmall5": null,
                                    "iconEnabledSmall6": null,
                                    "iconEnabledSmall7": null,
                                    "iconEnabledSmall8": null,
                                    "iconEnabledSmall9": null,
                                    "iconSmall1": null,
                                    "iconSmall10": null,
                                    "iconSmall11": null,
                                    "iconSmall12": null,
                                    "iconSmall2": null,
                                    "iconSmall3": null,
                                    "iconSmall4": null,
                                    "iconSmall5": null,
                                    "iconSmall6": null,
                                    "iconSmall7": null,
                                    "iconSmall8": null,
                                    "iconSmall9": null,
                                    "infoActiveColor1": null,
                                    "infoActiveColor10": null,
                                    "infoActiveColor11": null,
                                    "infoActiveColor12": null,
                                    "infoActiveColor2": null,
                                    "infoActiveColor3": null,
                                    "infoActiveColor4": null,
                                    "infoActiveColor5": null,
                                    "infoActiveColor6": null,
                                    "infoActiveColor7": null,
                                    "infoActiveColor8": null,
                                    "infoActiveColor9": null,
                                    "infoActiveIcon1": null,
                                    "infoActiveIcon10": null,
                                    "infoActiveIcon11": null,
                                    "infoActiveIcon12": null,
                                    "infoActiveIcon2": null,
                                    "infoActiveIcon3": null,
                                    "infoActiveIcon4": null,
                                    "infoActiveIcon5": null,
                                    "infoActiveIcon6": null,
                                    "infoActiveIcon7": null,
                                    "infoActiveIcon8": null,
                                    "infoActiveIcon9": null,
                                    "infoActiveImage1": null,
                                    "infoActiveImage10": null,
                                    "infoActiveImage11": null,
                                    "infoActiveImage12": null,
                                    "infoActiveImage2": null,
                                    "infoActiveImage3": null,
                                    "infoActiveImage4": null,
                                    "infoActiveImage5": null,
                                    "infoActiveImage6": null,
                                    "infoActiveImage7": null,
                                    "infoActiveImage8": null,
                                    "infoActiveImage9": null,
                                    "infoActiveText1": null,
                                    "infoActiveText10": null,
                                    "infoActiveText11": null,
                                    "infoActiveText12": null,
                                    "infoActiveText2": null,
                                    "infoActiveText3": null,
                                    "infoActiveText4": null,
                                    "infoActiveText5": null,
                                    "infoActiveText6": null,
                                    "infoActiveText7": null,
                                    "infoActiveText8": null,
                                    "infoActiveText9": null,
                                    "infoInactiveColor1": null,
                                    "infoInactiveColor10": null,
                                    "infoInactiveColor11": null,
                                    "infoInactiveColor12": null,
                                    "infoInactiveColor2": null,
                                    "infoInactiveColor3": null,
                                    "infoInactiveColor4": null,
                                    "infoInactiveColor5": null,
                                    "infoInactiveColor6": null,
                                    "infoInactiveColor7": null,
                                    "infoInactiveColor8": null,
                                    "infoInactiveColor9": null,
                                    "infoInactiveIcon1": null,
                                    "infoInactiveIcon10": null,
                                    "infoInactiveIcon11": null,
                                    "infoInactiveIcon12": null,
                                    "infoInactiveIcon2": null,
                                    "infoInactiveIcon3": null,
                                    "infoInactiveIcon4": null,
                                    "infoInactiveIcon5": null,
                                    "infoInactiveIcon6": null,
                                    "infoInactiveIcon7": null,
                                    "infoInactiveIcon8": null,
                                    "infoInactiveIcon9": null,
                                    "infoInactiveImage1": null,
                                    "infoInactiveImage10": null,
                                    "infoInactiveImage11": null,
                                    "infoInactiveImage12": null,
                                    "infoInactiveImage2": null,
                                    "infoInactiveImage3": null,
                                    "infoInactiveImage4": null,
                                    "infoInactiveImage5": null,
                                    "infoInactiveImage6": null,
                                    "infoInactiveImage7": null,
                                    "infoInactiveImage8": null,
                                    "infoInactiveImage9": null,
                                    "infoInactiveText1": null,
                                    "infoInactiveText10": null,
                                    "infoInactiveText11": null,
                                    "infoInactiveText12": null,
                                    "infoInactiveText2": null,
                                    "infoInactiveText3": null,
                                    "infoInactiveText4": null,
                                    "infoInactiveText5": null,
                                    "infoInactiveText6": null,
                                    "infoInactiveText7": null,
                                    "infoInactiveText8": null,
                                    "infoInactiveText9": null,
                                    "lockColor1": null,
                                    "lockColor10": null,
                                    "lockColor11": null,
                                    "lockColor12": null,
                                    "lockColor2": null,
                                    "lockColor3": null,
                                    "lockColor4": null,
                                    "lockColor5": null,
                                    "lockColor6": null,
                                    "lockColor7": null,
                                    "lockColor8": null,
                                    "lockColor9": null,
                                    "luminance1": null,
                                    "luminance10": null,
                                    "luminance11": null,
                                    "luminance12": null,
                                    "luminance2": null,
                                    "luminance3": null,
                                    "luminance4": null,
                                    "luminance5": null,
                                    "luminance6": null,
                                    "luminance7": null,
                                    "luminance8": null,
                                    "luminance9": null,
                                    "noIcon1": false,
                                    "noIcon10": true,
                                    "noIcon11": true,
                                    "noIcon12": true,
                                    "noIcon2": true,
                                    "noIcon3": null,
                                    "noIcon4": true,
                                    "noIcon5": true,
                                    "noIcon6": null,
                                    "noIcon7": true,
                                    "noIcon8": true,
                                    "noIcon9": null,
                                    "noLockAnimation1": null,
                                    "noLockAnimation10": null,
                                    "noLockAnimation11": null,
                                    "noLockAnimation12": null,
                                    "noLockAnimation2": null,
                                    "noLockAnimation3": null,
                                    "noLockAnimation4": null,
                                    "noLockAnimation5": null,
                                    "noLockAnimation6": null,
                                    "noLockAnimation7": null,
                                    "noLockAnimation8": null,
                                    "noLockAnimation9": null,
                                    "noRgbPalette1": null,
                                    "noRgbPalette10": null,
                                    "noRgbPalette11": null,
                                    "noRgbPalette12": null,
                                    "noRgbPalette2": null,
                                    "noRgbPalette3": null,
                                    "noRgbPalette4": null,
                                    "noRgbPalette5": null,
                                    "noRgbPalette6": null,
                                    "noRgbPalette7": null,
                                    "noRgbPalette8": null,
                                    "noRgbPalette9": null,
                                    "oid-pincode1": null,
                                    "oid-pincode10": null,
                                    "oid-pincode11": null,
                                    "oid-pincode12": null,
                                    "oid-pincode2": null,
                                    "oid-pincode3": null,
                                    "oid-pincode4": null,
                                    "oid-pincode5": null,
                                    "oid-pincode6": null,
                                    "oid-pincode7": null,
                                    "oid-pincode8": null,
                                    "oid-pincode9": null,
                                    "oid1": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.street",
                                    "oid10": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.diesel.trend_24h_proj",
                                    "oid11": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.diesel.trend_24h_proj_price",
                                    "oid12": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.lastChecked",
                                    "oid2": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.place",
                                    "oid3": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.benzin_str",
                                    "oid4": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj",
                                    "oid5": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_price",
                                    "oid6": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.e10_str",
                                    "oid7": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.e10.trend_24h_proj",
                                    "oid8": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.e10.trend_24h_proj_price",
                                    "oid9": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.diesel_str",
                                    "open1": null,
                                    "open10": null,
                                    "open11": null,
                                    "open12": null,
                                    "open2": null,
                                    "open3": null,
                                    "open4": null,
                                    "open5": null,
                                    "open6": null,
                                    "open7": null,
                                    "open8": null,
                                    "open9": null,
                                    "orientation": "horizontal",
                                    "party1": null,
                                    "party10": null,
                                    "party11": null,
                                    "party12": null,
                                    "party2": null,
                                    "party3": null,
                                    "party4": null,
                                    "party5": null,
                                    "party6": null,
                                    "party7": null,
                                    "party8": null,
                                    "party9": null,
                                    "pincode1": null,
                                    "pincode10": null,
                                    "pincode11": null,
                                    "pincode12": null,
                                    "pincode2": null,
                                    "pincode3": null,
                                    "pincode4": null,
                                    "pincode5": null,
                                    "pincode6": null,
                                    "pincode7": null,
                                    "pincode8": null,
                                    "pincode9": null,
                                    "pincodeReturnButton1": "submit",
                                    "pincodeReturnButton10": "submit",
                                    "pincodeReturnButton11": "submit",
                                    "pincodeReturnButton12": "submit",
                                    "pincodeReturnButton2": "submit",
                                    "pincodeReturnButton3": "submit",
                                    "pincodeReturnButton4": "submit",
                                    "pincodeReturnButton5": "submit",
                                    "pincodeReturnButton6": "submit",
                                    "pincodeReturnButton7": "submit",
                                    "pincodeReturnButton8": "submit",
                                    "pincodeReturnButton9": "submit",
                                    "position1": null,
                                    "position10": null,
                                    "position11": null,
                                    "position12": null,
                                    "position2": null,
                                    "position3": null,
                                    "position4": null,
                                    "position5": null,
                                    "position6": null,
                                    "position7": null,
                                    "position8": null,
                                    "position9": null,
                                    "red1": null,
                                    "red10": null,
                                    "red11": null,
                                    "red12": null,
                                    "red2": null,
                                    "red3": null,
                                    "red4": null,
                                    "red5": null,
                                    "red6": null,
                                    "red7": null,
                                    "red8": null,
                                    "red9": null,
                                    "rgbType1": null,
                                    "rgbType10": null,
                                    "rgbType11": null,
                                    "rgbType12": null,
                                    "rgbType2": null,
                                    "rgbType3": null,
                                    "rgbType4": null,
                                    "rgbType5": null,
                                    "rgbType6": null,
                                    "rgbType7": null,
                                    "rgbType8": null,
                                    "rgbType9": null,
                                    "saturation1": null,
                                    "saturation10": null,
                                    "saturation11": null,
                                    "saturation12": null,
                                    "saturation2": null,
                                    "saturation3": null,
                                    "saturation4": null,
                                    "saturation5": null,
                                    "saturation6": null,
                                    "saturation7": null,
                                    "saturation8": null,
                                    "saturation9": null,
                                    "sensor1": null,
                                    "sensor10": null,
                                    "sensor11": null,
                                    "sensor12": null,
                                    "sensor2": null,
                                    "sensor3": null,
                                    "sensor4": null,
                                    "sensor5": null,
                                    "sensor6": null,
                                    "sensor7": null,
                                    "sensor8": null,
                                    "sensor9": null,
                                    "slideInvert1": null,
                                    "slideInvert10": null,
                                    "slideInvert11": null,
                                    "slideInvert12": null,
                                    "slideInvert2": null,
                                    "slideInvert3": null,
                                    "slideInvert4": null,
                                    "slideInvert5": null,
                                    "slideInvert6": null,
                                    "slideInvert7": null,
                                    "slideInvert8": null,
                                    "slideInvert9": null,
                                    "step1": null,
                                    "step10": null,
                                    "step11": null,
                                    "step12": null,
                                    "step2": null,
                                    "step3": null,
                                    "step4": null,
                                    "step5": null,
                                    "step6": null,
                                    "step7": null,
                                    "step8": null,
                                    "step9": null,
                                    "switch1": null,
                                    "switch10": null,
                                    "switch11": null,
                                    "switch12": null,
                                    "switch2": null,
                                    "switch3": null,
                                    "switch4": null,
                                    "switch5": null,
                                    "switch6": null,
                                    "switch7": null,
                                    "switch8": null,
                                    "switch9": null,
                                    "timeout1": 500,
                                    "timeout10": 500,
                                    "timeout11": 500,
                                    "timeout12": 500,
                                    "timeout2": 500,
                                    "timeout3": 500,
                                    "timeout4": 500,
                                    "timeout5": 500,
                                    "timeout6": 500,
                                    "timeout7": 500,
                                    "timeout8": 500,
                                    "timeout9": 500,
                                    "title1": "Straße",
                                    "title10": "Prognose 24h",
                                    "title11": "Preisprognose 24h",
                                    "title12": null,
                                    "title2": "Ort",
                                    "title3": "Super 95",
                                    "title4": "Prognose 24h",
                                    "title5": "Preisprognose 24h",
                                    "title6": "E10",
                                    "title7": "Prognose 24h",
                                    "title8": "Preisprognose 24h",
                                    "title9": "Diesel",
                                    "type": "lines",
                                    "type1": "info",
                                    "type10": "info",
                                    "type11": "info",
                                    "type12": "info",
                                    "type2": "info",
                                    "type3": "info",
                                    "type4": "info",
                                    "type5": "info",
                                    "type6": "info",
                                    "type7": "info",
                                    "type8": "info",
                                    "type9": "info",
                                    "undefined1": null,
                                    "undefined10": null,
                                    "undefined11": null,
                                    "undefined12": null,
                                    "undefined2": null,
                                    "undefined3": null,
                                    "undefined4": null,
                                    "undefined5": null,
                                    "undefined6": null,
                                    "undefined7": null,
                                    "undefined8": null,
                                    "undefined9": null,
                                    "unit1": null,
                                    "unit10": null,
                                    "unit11": "€",
                                    "unit12": null,
                                    "unit2": null,
                                    "unit3": "€",
                                    "unit4": null,
                                    "unit5": "€",
                                    "unit6": "€",
                                    "unit7": null,
                                    "unit8": "€",
                                    "unit9": "€",
                                    "vacuum-battery-oid1": null,
                                    "vacuum-battery-oid10": null,
                                    "vacuum-battery-oid11": null,
                                    "vacuum-battery-oid12": null,
                                    "vacuum-battery-oid2": null,
                                    "vacuum-battery-oid3": null,
                                    "vacuum-battery-oid4": null,
                                    "vacuum-battery-oid5": null,
                                    "vacuum-battery-oid6": null,
                                    "vacuum-battery-oid7": null,
                                    "vacuum-battery-oid8": null,
                                    "vacuum-battery-oid9": null,
                                    "vacuum-cleaning-count-oid1": null,
                                    "vacuum-cleaning-count-oid10": null,
                                    "vacuum-cleaning-count-oid11": null,
                                    "vacuum-cleaning-count-oid12": null,
                                    "vacuum-cleaning-count-oid2": null,
                                    "vacuum-cleaning-count-oid3": null,
                                    "vacuum-cleaning-count-oid4": null,
                                    "vacuum-cleaning-count-oid5": null,
                                    "vacuum-cleaning-count-oid6": null,
                                    "vacuum-cleaning-count-oid7": null,
                                    "vacuum-cleaning-count-oid8": null,
                                    "vacuum-cleaning-count-oid9": null,
                                    "vacuum-fan-speed-oid1": null,
                                    "vacuum-fan-speed-oid10": null,
                                    "vacuum-fan-speed-oid11": null,
                                    "vacuum-fan-speed-oid12": null,
                                    "vacuum-fan-speed-oid2": null,
                                    "vacuum-fan-speed-oid3": null,
                                    "vacuum-fan-speed-oid4": null,
                                    "vacuum-fan-speed-oid5": null,
                                    "vacuum-fan-speed-oid6": null,
                                    "vacuum-fan-speed-oid7": null,
                                    "vacuum-fan-speed-oid8": null,
                                    "vacuum-fan-speed-oid9": null,
                                    "vacuum-filter-left-oid1": null,
                                    "vacuum-filter-left-oid10": null,
                                    "vacuum-filter-left-oid11": null,
                                    "vacuum-filter-left-oid12": null,
                                    "vacuum-filter-left-oid2": null,
                                    "vacuum-filter-left-oid3": null,
                                    "vacuum-filter-left-oid4": null,
                                    "vacuum-filter-left-oid5": null,
                                    "vacuum-filter-left-oid6": null,
                                    "vacuum-filter-left-oid7": null,
                                    "vacuum-filter-left-oid8": null,
                                    "vacuum-filter-left-oid9": null,
                                    "vacuum-home-oid1": null,
                                    "vacuum-home-oid10": null,
                                    "vacuum-home-oid11": null,
                                    "vacuum-home-oid12": null,
                                    "vacuum-home-oid2": null,
                                    "vacuum-home-oid3": null,
                                    "vacuum-home-oid4": null,
                                    "vacuum-home-oid5": null,
                                    "vacuum-home-oid6": null,
                                    "vacuum-home-oid7": null,
                                    "vacuum-home-oid8": null,
                                    "vacuum-home-oid9": null,
                                    "vacuum-is-charging-oid1": null,
                                    "vacuum-is-charging-oid10": null,
                                    "vacuum-is-charging-oid11": null,
                                    "vacuum-is-charging-oid12": null,
                                    "vacuum-is-charging-oid2": null,
                                    "vacuum-is-charging-oid3": null,
                                    "vacuum-is-charging-oid4": null,
                                    "vacuum-is-charging-oid5": null,
                                    "vacuum-is-charging-oid6": null,
                                    "vacuum-is-charging-oid7": null,
                                    "vacuum-is-charging-oid8": null,
                                    "vacuum-is-charging-oid9": null,
                                    "vacuum-main-brush-left-oid1": null,
                                    "vacuum-main-brush-left-oid10": null,
                                    "vacuum-main-brush-left-oid11": null,
                                    "vacuum-main-brush-left-oid12": null,
                                    "vacuum-main-brush-left-oid2": null,
                                    "vacuum-main-brush-left-oid3": null,
                                    "vacuum-main-brush-left-oid4": null,
                                    "vacuum-main-brush-left-oid5": null,
                                    "vacuum-main-brush-left-oid6": null,
                                    "vacuum-main-brush-left-oid7": null,
                                    "vacuum-main-brush-left-oid8": null,
                                    "vacuum-main-brush-left-oid9": null,
                                    "vacuum-map64-oid1": null,
                                    "vacuum-map64-oid10": null,
                                    "vacuum-map64-oid11": null,
                                    "vacuum-map64-oid12": null,
                                    "vacuum-map64-oid2": null,
                                    "vacuum-map64-oid3": null,
                                    "vacuum-map64-oid4": null,
                                    "vacuum-map64-oid5": null,
                                    "vacuum-map64-oid6": null,
                                    "vacuum-map64-oid7": null,
                                    "vacuum-map64-oid8": null,
                                    "vacuum-map64-oid9": null,
                                    "vacuum-own-image1": null,
                                    "vacuum-own-image10": null,
                                    "vacuum-own-image11": null,
                                    "vacuum-own-image12": null,
                                    "vacuum-own-image2": null,
                                    "vacuum-own-image3": null,
                                    "vacuum-own-image4": null,
                                    "vacuum-own-image5": null,
                                    "vacuum-own-image6": null,
                                    "vacuum-own-image7": null,
                                    "vacuum-own-image8": null,
                                    "vacuum-own-image9": null,
                                    "vacuum-pause-oid1": null,
                                    "vacuum-pause-oid10": null,
                                    "vacuum-pause-oid11": null,
                                    "vacuum-pause-oid12": null,
                                    "vacuum-pause-oid2": null,
                                    "vacuum-pause-oid3": null,
                                    "vacuum-pause-oid4": null,
                                    "vacuum-pause-oid5": null,
                                    "vacuum-pause-oid6": null,
                                    "vacuum-pause-oid7": null,
                                    "vacuum-pause-oid8": null,
                                    "vacuum-pause-oid9": null,
                                    "vacuum-sensors-left-oid1": null,
                                    "vacuum-sensors-left-oid10": null,
                                    "vacuum-sensors-left-oid11": null,
                                    "vacuum-sensors-left-oid12": null,
                                    "vacuum-sensors-left-oid2": null,
                                    "vacuum-sensors-left-oid3": null,
                                    "vacuum-sensors-left-oid4": null,
                                    "vacuum-sensors-left-oid5": null,
                                    "vacuum-sensors-left-oid6": null,
                                    "vacuum-sensors-left-oid7": null,
                                    "vacuum-sensors-left-oid8": null,
                                    "vacuum-sensors-left-oid9": null,
                                    "vacuum-side-brush-left-oid1": null,
                                    "vacuum-side-brush-left-oid10": null,
                                    "vacuum-side-brush-left-oid11": null,
                                    "vacuum-side-brush-left-oid12": null,
                                    "vacuum-side-brush-left-oid2": null,
                                    "vacuum-side-brush-left-oid3": null,
                                    "vacuum-side-brush-left-oid4": null,
                                    "vacuum-side-brush-left-oid5": null,
                                    "vacuum-side-brush-left-oid6": null,
                                    "vacuum-side-brush-left-oid7": null,
                                    "vacuum-side-brush-left-oid8": null,
                                    "vacuum-side-brush-left-oid9": null,
                                    "vacuum-start-oid1": null,
                                    "vacuum-start-oid10": null,
                                    "vacuum-start-oid11": null,
                                    "vacuum-start-oid12": null,
                                    "vacuum-start-oid2": null,
                                    "vacuum-start-oid3": null,
                                    "vacuum-start-oid4": null,
                                    "vacuum-start-oid5": null,
                                    "vacuum-start-oid6": null,
                                    "vacuum-start-oid7": null,
                                    "vacuum-start-oid8": null,
                                    "vacuum-start-oid9": null,
                                    "vacuum-status-oid1": null,
                                    "vacuum-status-oid10": null,
                                    "vacuum-status-oid11": null,
                                    "vacuum-status-oid12": null,
                                    "vacuum-status-oid2": null,
                                    "vacuum-status-oid3": null,
                                    "vacuum-status-oid4": null,
                                    "vacuum-status-oid5": null,
                                    "vacuum-status-oid6": null,
                                    "vacuum-status-oid7": null,
                                    "vacuum-status-oid8": null,
                                    "vacuum-status-oid9": null,
                                    "vacuum-use-default-picture1": true,
                                    "vacuum-use-default-picture10": true,
                                    "vacuum-use-default-picture11": true,
                                    "vacuum-use-default-picture12": true,
                                    "vacuum-use-default-picture2": true,
                                    "vacuum-use-default-picture3": true,
                                    "vacuum-use-default-picture4": true,
                                    "vacuum-use-default-picture5": true,
                                    "vacuum-use-default-picture6": true,
                                    "vacuum-use-default-picture7": true,
                                    "vacuum-use-default-picture8": true,
                                    "vacuum-use-default-picture9": true,
                                    "vacuum-use-rooms1": null,
                                    "vacuum-use-rooms10": null,
                                    "vacuum-use-rooms11": null,
                                    "vacuum-use-rooms12": null,
                                    "vacuum-use-rooms2": null,
                                    "vacuum-use-rooms3": null,
                                    "vacuum-use-rooms4": null,
                                    "vacuum-use-rooms5": null,
                                    "vacuum-use-rooms6": null,
                                    "vacuum-use-rooms7": null,
                                    "vacuum-use-rooms8": null,
                                    "vacuum-use-rooms9": null,
                                    "visibility-cond1": "==",
                                    "visibility-cond10": "==",
                                    "visibility-cond11": "==",
                                    "visibility-cond12": "==",
                                    "visibility-cond2": "==",
                                    "visibility-cond3": "==",
                                    "visibility-cond4": "==",
                                    "visibility-cond5": "==",
                                    "visibility-cond6": "==",
                                    "visibility-cond7": "==",
                                    "visibility-cond8": "==",
                                    "visibility-cond9": "==",
                                    "visibility-oid1": null,
                                    "visibility-oid10": null,
                                    "visibility-oid11": null,
                                    "visibility-oid12": null,
                                    "visibility-oid2": null,
                                    "visibility-oid3": null,
                                    "visibility-oid4": null,
                                    "visibility-oid5": null,
                                    "visibility-oid6": null,
                                    "visibility-oid7": null,
                                    "visibility-oid8": null,
                                    "visibility-oid9": null,
                                    "visibility-val1": "1",
                                    "visibility-val10": "1",
                                    "visibility-val11": "1",
                                    "visibility-val12": "1",
                                    "visibility-val2": "1",
                                    "visibility-val3": "1",
                                    "visibility-val4": "1",
                                    "visibility-val5": "1",
                                    "visibility-val6": "1",
                                    "visibility-val7": "1",
                                    "visibility-val8": "1",
                                    "visibility-val9": "1",
                                    "white1": null,
                                    "white10": null,
                                    "white11": null,
                                    "white12": null,
                                    "white2": null,
                                    "white3": null,
                                    "white4": null,
                                    "white5": null,
                                    "white6": null,
                                    "white7": null,
                                    "white8": null,
                                    "white9": null,
                                    "whiteMode1": null,
                                    "whiteMode10": null,
                                    "whiteMode11": null,
                                    "whiteMode12": null,
                                    "whiteMode2": null,
                                    "whiteMode3": null,
                                    "whiteMode4": null,
                                    "whiteMode5": null,
                                    "whiteMode6": null,
                                    "whiteMode7": null,
                                    "whiteMode8": null,
                                    "whiteMode9": null,
                                    "widget1": null,
                                    "widget10": null,
                                    "widget11": null,
                                    "widget12": null,
                                    "widget2": null,
                                    "widget3": null,
                                    "widget4": null,
                                    "widget5": null,
                                    "widget6": null,
                                    "widget7": null,
                                    "widget8": null,
                                    "widget9": null,
                                    "widgetTitle": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.name}",
                                    "working1": null,
                                    "working10": null,
                                    "working11": null,
                                    "working12": null,
                                    "working2": null,
                                    "working3": null,
                                    "working4": null,
                                    "working5": null,
                                    "working6": null,
                                    "working7": null,
                                    "working8": null,
                                    "working9": null,
                                    "oid13": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.lastPriceUpdate",
                                    "type13": "info",
                                    "noIcon13": true,
                                    "icon13": "",
                                    "iconSmall13": null,
                                    "iconEnabled13": null,
                                    "iconEnabledSmall13": null,
                                    "color13": null,
                                    "colorEnabled13": null,
                                    "slideInvert13": null,
                                    "title13": null,
                                    "unit13": null,
                                    "step13": null,
                                    "hideChart13": true,
                                    "chartPeriod13": 60,
                                    "buttonText13": null,
                                    "buttonIcon13": null,
                                    "buttonImage13": null,
                                    "buttonIconActive13": null,
                                    "buttonImageActive13": null,
                                    "infoInactiveText13": null,
                                    "infoActiveText13": null,
                                    "infoInactiveIcon13": null,
                                    "infoActiveIcon13": null,
                                    "infoInactiveImage13": null,
                                    "infoActiveImage13": null,
                                    "infoInactiveColor13": null,
                                    "infoActiveColor13": null,
                                    "widget13": null,
                                    "height13": null,
                                    "position13": null,
                                    "hide13": null,
                                    "actual13": null,
                                    "boost13": null,
                                    "party13": null,
                                    "switch13": null,
                                    "brightness13": null,
                                    "rgbType13": null,
                                    "red13": null,
                                    "green13": null,
                                    "blue13": null,
                                    "white13": null,
                                    "color_temperature13": null,
                                    "ct_min13": null,
                                    "ct_max13": null,
                                    "hue13": null,
                                    "saturation13": null,
                                    "luminance13": null,
                                    "hideBrightness13": null,
                                    "whiteMode13": null,
                                    "noRgbPalette13": null,
                                    "open13": null,
                                    "working13": null,
                                    "sensor13": null,
                                    "pincode13": null,
                                    "oid-pincode13": null,
                                    "doNotConfirm13": null,
                                    "noLockAnimation13": null,
                                    "lockColor13": null,
                                    "pincodeReturnButton13": "submit",
                                    "timeout13": 500,
                                    "vacuum-status-oid13": null,
                                    "vacuum-battery-oid13": null,
                                    "vacuum-is-charging-oid13": null,
                                    "vacuum-fan-speed-oid13": null,
                                    "vacuum-sensors-left-oid13": null,
                                    "vacuum-filter-left-oid13": null,
                                    "vacuum-main-brush-left-oid13": null,
                                    "vacuum-side-brush-left-oid13": null,
                                    "vacuum-cleaning-count-oid13": null,
                                    "vacuum-use-rooms13": null,
                                    "vacuum-map64-oid13": null,
                                    "vacuum-use-default-picture13": true,
                                    "vacuum-own-image13": null,
                                    "vacuum-start-oid13": null,
                                    "vacuum-home-oid13": null,
                                    "vacuum-pause-oid13": null,
                                    "undefined13": null,
                                    "visibility-oid13": null,
                                    "visibility-cond13": "==",
                                    "visibility-val13": "1",
                                    "g_switch-13": true,
                                    "visibility-oid": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.isOpen",
                                    "visibility-cond": "==",
                                    "visibility-val": "false",
                                    "visibility-groups": null,
                                    "visibility-groups-action": "hide",
                                    "g_visibility": true
                                  },
                                  "style": {
                                    "bindings": [],
                                    "left": -6,
                                    "top": 14,
                                    "width": "100%",
                                    "height": "588px",
                                    "position": "relative"
                                  },
                                  "widgetSet": "vis-2-widgets-material",
                                  "_id": "i000001"
                                }
                              ]
                              
                              Ro75R 1 Antwort Letzte Antwort
                              0
                              • D Dragon

                                Hier habe ich mal etwas für die Vis 2 gebastelt.

                                Im Editor einfach die Zahlen durch die Zahlen eurer Tankstelle ersetzen und importieren. Funktioniert hervorragend.

                                [
                                  {
                                    "tpl": "tplMaterial2Switches",
                                    "data": {
                                      "actual1": null,
                                      "actual10": null,
                                      "actual11": null,
                                      "actual12": null,
                                      "actual2": null,
                                      "actual3": null,
                                      "actual4": null,
                                      "actual5": null,
                                      "actual6": null,
                                      "actual7": null,
                                      "actual8": null,
                                      "actual9": null,
                                      "allSwitch": false,
                                      "bindings": [
                                        "widgetTitle",
                                        "icon2",
                                        "icon10",
                                        "infoActiveIcon1",
                                        "icon1"
                                      ],
                                      "blue1": null,
                                      "blue10": null,
                                      "blue11": null,
                                      "blue12": null,
                                      "blue2": null,
                                      "blue3": null,
                                      "blue4": null,
                                      "blue5": null,
                                      "blue6": null,
                                      "blue7": null,
                                      "blue8": null,
                                      "blue9": null,
                                      "boost1": null,
                                      "boost10": null,
                                      "boost11": null,
                                      "boost12": null,
                                      "boost2": null,
                                      "boost3": null,
                                      "boost4": null,
                                      "boost5": null,
                                      "boost6": null,
                                      "boost7": null,
                                      "boost8": null,
                                      "boost9": null,
                                      "brightness1": null,
                                      "brightness10": null,
                                      "brightness11": null,
                                      "brightness12": null,
                                      "brightness2": null,
                                      "brightness3": null,
                                      "brightness4": null,
                                      "brightness5": null,
                                      "brightness6": null,
                                      "brightness7": null,
                                      "brightness8": null,
                                      "brightness9": null,
                                      "buttonIcon1": null,
                                      "buttonIcon10": null,
                                      "buttonIcon11": null,
                                      "buttonIcon12": null,
                                      "buttonIcon2": null,
                                      "buttonIcon3": null,
                                      "buttonIcon4": null,
                                      "buttonIcon5": null,
                                      "buttonIcon6": null,
                                      "buttonIcon7": null,
                                      "buttonIcon8": null,
                                      "buttonIcon9": null,
                                      "buttonIconActive1": null,
                                      "buttonIconActive10": null,
                                      "buttonIconActive11": null,
                                      "buttonIconActive12": null,
                                      "buttonIconActive2": null,
                                      "buttonIconActive3": null,
                                      "buttonIconActive4": null,
                                      "buttonIconActive5": null,
                                      "buttonIconActive6": null,
                                      "buttonIconActive7": null,
                                      "buttonIconActive8": null,
                                      "buttonIconActive9": null,
                                      "buttonImage1": null,
                                      "buttonImage10": null,
                                      "buttonImage11": null,
                                      "buttonImage12": null,
                                      "buttonImage2": null,
                                      "buttonImage3": null,
                                      "buttonImage4": null,
                                      "buttonImage5": null,
                                      "buttonImage6": null,
                                      "buttonImage7": null,
                                      "buttonImage8": null,
                                      "buttonImage9": null,
                                      "buttonImageActive1": null,
                                      "buttonImageActive10": null,
                                      "buttonImageActive11": null,
                                      "buttonImageActive12": null,
                                      "buttonImageActive2": null,
                                      "buttonImageActive3": null,
                                      "buttonImageActive4": null,
                                      "buttonImageActive5": null,
                                      "buttonImageActive6": null,
                                      "buttonImageActive7": null,
                                      "buttonImageActive8": null,
                                      "buttonImageActive9": null,
                                      "buttonText1": null,
                                      "buttonText10": null,
                                      "buttonText11": null,
                                      "buttonText12": null,
                                      "buttonText2": null,
                                      "buttonText3": null,
                                      "buttonText4": null,
                                      "buttonText5": null,
                                      "buttonText6": null,
                                      "buttonText7": null,
                                      "buttonText8": null,
                                      "buttonText9": null,
                                      "buttonsWidth": 120,
                                      "chartPeriod1": 60,
                                      "chartPeriod10": 60,
                                      "chartPeriod11": 60,
                                      "chartPeriod12": 60,
                                      "chartPeriod2": 60,
                                      "chartPeriod3": 10080,
                                      "chartPeriod4": 60,
                                      "chartPeriod5": 60,
                                      "chartPeriod6": 60,
                                      "chartPeriod7": 60,
                                      "chartPeriod8": 60,
                                      "chartPeriod9": 60,
                                      "color1": null,
                                      "color10": null,
                                      "color11": null,
                                      "color12": null,
                                      "color2": null,
                                      "color3": "#ffffff",
                                      "color4": null,
                                      "color5": null,
                                      "color6": null,
                                      "color7": null,
                                      "color8": null,
                                      "color9": "#ffffff",
                                      "colorEnabled1": null,
                                      "colorEnabled10": null,
                                      "colorEnabled11": null,
                                      "colorEnabled12": null,
                                      "colorEnabled2": null,
                                      "colorEnabled3": "#ffffff",
                                      "colorEnabled4": null,
                                      "colorEnabled5": null,
                                      "colorEnabled6": null,
                                      "colorEnabled7": null,
                                      "colorEnabled8": null,
                                      "colorEnabled9": "#ffffff",
                                      "color_temperature1": null,
                                      "color_temperature10": null,
                                      "color_temperature11": null,
                                      "color_temperature12": null,
                                      "color_temperature2": null,
                                      "color_temperature3": null,
                                      "color_temperature4": null,
                                      "color_temperature5": null,
                                      "color_temperature6": null,
                                      "color_temperature7": null,
                                      "color_temperature8": null,
                                      "color_temperature9": null,
                                      "count": 13,
                                      "ct_max1": null,
                                      "ct_max10": null,
                                      "ct_max11": null,
                                      "ct_max12": null,
                                      "ct_max2": null,
                                      "ct_max3": null,
                                      "ct_max4": null,
                                      "ct_max5": null,
                                      "ct_max6": null,
                                      "ct_max7": null,
                                      "ct_max8": null,
                                      "ct_max9": null,
                                      "ct_min1": null,
                                      "ct_min10": null,
                                      "ct_min11": null,
                                      "ct_min12": null,
                                      "ct_min2": null,
                                      "ct_min3": null,
                                      "ct_min4": null,
                                      "ct_min5": null,
                                      "ct_min6": null,
                                      "ct_min7": null,
                                      "ct_min8": null,
                                      "ct_min9": null,
                                      "doNotConfirm1": null,
                                      "doNotConfirm10": null,
                                      "doNotConfirm11": null,
                                      "doNotConfirm12": null,
                                      "doNotConfirm2": null,
                                      "doNotConfirm3": null,
                                      "doNotConfirm4": null,
                                      "doNotConfirm5": null,
                                      "doNotConfirm6": null,
                                      "doNotConfirm7": null,
                                      "doNotConfirm8": null,
                                      "doNotConfirm9": null,
                                      "doNotWantIncludeWidgets": false,
                                      "g_common": true,
                                      "g_switch-1": true,
                                      "g_switch-10": true,
                                      "g_switch-11": true,
                                      "g_switch-12": true,
                                      "g_switch-2": true,
                                      "g_switch-3": true,
                                      "g_switch-4": true,
                                      "g_switch-5": true,
                                      "g_switch-6": true,
                                      "g_switch-7": true,
                                      "g_switch-8": true,
                                      "g_switch-9": true,
                                      "green1": null,
                                      "green10": null,
                                      "green11": null,
                                      "green12": null,
                                      "green2": null,
                                      "green3": null,
                                      "green4": null,
                                      "green5": null,
                                      "green6": null,
                                      "green7": null,
                                      "green8": null,
                                      "green9": null,
                                      "height1": null,
                                      "height10": null,
                                      "height11": null,
                                      "height12": null,
                                      "height2": null,
                                      "height3": null,
                                      "height4": null,
                                      "height5": null,
                                      "height6": null,
                                      "height7": null,
                                      "height8": null,
                                      "height9": null,
                                      "hide1": null,
                                      "hide10": null,
                                      "hide11": null,
                                      "hide12": null,
                                      "hide2": null,
                                      "hide3": null,
                                      "hide4": null,
                                      "hide5": null,
                                      "hide6": null,
                                      "hide7": null,
                                      "hide8": null,
                                      "hide9": null,
                                      "hideBrightness1": null,
                                      "hideBrightness10": null,
                                      "hideBrightness11": null,
                                      "hideBrightness12": null,
                                      "hideBrightness2": null,
                                      "hideBrightness3": null,
                                      "hideBrightness4": null,
                                      "hideBrightness5": null,
                                      "hideBrightness6": null,
                                      "hideBrightness7": null,
                                      "hideBrightness8": null,
                                      "hideBrightness9": null,
                                      "hideChart1": true,
                                      "hideChart10": true,
                                      "hideChart11": true,
                                      "hideChart12": true,
                                      "hideChart2": true,
                                      "hideChart3": true,
                                      "hideChart4": true,
                                      "hideChart5": true,
                                      "hideChart6": true,
                                      "hideChart7": true,
                                      "hideChart8": true,
                                      "hideChart9": true,
                                      "hue1": null,
                                      "hue10": null,
                                      "hue11": null,
                                      "hue12": null,
                                      "hue2": null,
                                      "hue3": null,
                                      "hue4": null,
                                      "hue5": null,
                                      "hue6": null,
                                      "hue7": null,
                                      "hue8": null,
                                      "hue9": null,
                                      "icon1": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.image}",
                                      "icon10": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_icon}",
                                      "icon11": null,
                                      "icon12": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.image}",
                                      "icon2": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.image}",
                                      "icon3": "../vis-2.0/tanken/blue.png",
                                      "icon4": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_icon}",
                                      "icon5": null,
                                      "icon6": "../vis-2.0/tanken/green.png",
                                      "icon7": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_icon}",
                                      "icon8": null,
                                      "icon9": "../vis-2.0/tanken/red.png",
                                      "iconEnabled1": null,
                                      "iconEnabled10": null,
                                      "iconEnabled11": null,
                                      "iconEnabled12": null,
                                      "iconEnabled2": null,
                                      "iconEnabled3": "../vis-2.0/tanken/blue.png",
                                      "iconEnabled4": null,
                                      "iconEnabled5": null,
                                      "iconEnabled6": "../vis-2.0/tanken/green.png",
                                      "iconEnabled7": null,
                                      "iconEnabled8": null,
                                      "iconEnabled9": "../vis-2.0/tanken/red.png",
                                      "iconEnabledSmall1": null,
                                      "iconEnabledSmall10": null,
                                      "iconEnabledSmall11": null,
                                      "iconEnabledSmall12": null,
                                      "iconEnabledSmall2": null,
                                      "iconEnabledSmall3": null,
                                      "iconEnabledSmall4": null,
                                      "iconEnabledSmall5": null,
                                      "iconEnabledSmall6": null,
                                      "iconEnabledSmall7": null,
                                      "iconEnabledSmall8": null,
                                      "iconEnabledSmall9": null,
                                      "iconSmall1": null,
                                      "iconSmall10": null,
                                      "iconSmall11": null,
                                      "iconSmall12": null,
                                      "iconSmall2": null,
                                      "iconSmall3": null,
                                      "iconSmall4": null,
                                      "iconSmall5": null,
                                      "iconSmall6": null,
                                      "iconSmall7": null,
                                      "iconSmall8": null,
                                      "iconSmall9": null,
                                      "infoActiveColor1": null,
                                      "infoActiveColor10": null,
                                      "infoActiveColor11": null,
                                      "infoActiveColor12": null,
                                      "infoActiveColor2": null,
                                      "infoActiveColor3": null,
                                      "infoActiveColor4": null,
                                      "infoActiveColor5": null,
                                      "infoActiveColor6": null,
                                      "infoActiveColor7": null,
                                      "infoActiveColor8": null,
                                      "infoActiveColor9": null,
                                      "infoActiveIcon1": null,
                                      "infoActiveIcon10": null,
                                      "infoActiveIcon11": null,
                                      "infoActiveIcon12": null,
                                      "infoActiveIcon2": null,
                                      "infoActiveIcon3": null,
                                      "infoActiveIcon4": null,
                                      "infoActiveIcon5": null,
                                      "infoActiveIcon6": null,
                                      "infoActiveIcon7": null,
                                      "infoActiveIcon8": null,
                                      "infoActiveIcon9": null,
                                      "infoActiveImage1": null,
                                      "infoActiveImage10": null,
                                      "infoActiveImage11": null,
                                      "infoActiveImage12": null,
                                      "infoActiveImage2": null,
                                      "infoActiveImage3": null,
                                      "infoActiveImage4": null,
                                      "infoActiveImage5": null,
                                      "infoActiveImage6": null,
                                      "infoActiveImage7": null,
                                      "infoActiveImage8": null,
                                      "infoActiveImage9": null,
                                      "infoActiveText1": null,
                                      "infoActiveText10": null,
                                      "infoActiveText11": null,
                                      "infoActiveText12": null,
                                      "infoActiveText2": null,
                                      "infoActiveText3": null,
                                      "infoActiveText4": null,
                                      "infoActiveText5": null,
                                      "infoActiveText6": null,
                                      "infoActiveText7": null,
                                      "infoActiveText8": null,
                                      "infoActiveText9": null,
                                      "infoInactiveColor1": null,
                                      "infoInactiveColor10": null,
                                      "infoInactiveColor11": null,
                                      "infoInactiveColor12": null,
                                      "infoInactiveColor2": null,
                                      "infoInactiveColor3": null,
                                      "infoInactiveColor4": null,
                                      "infoInactiveColor5": null,
                                      "infoInactiveColor6": null,
                                      "infoInactiveColor7": null,
                                      "infoInactiveColor8": null,
                                      "infoInactiveColor9": null,
                                      "infoInactiveIcon1": null,
                                      "infoInactiveIcon10": null,
                                      "infoInactiveIcon11": null,
                                      "infoInactiveIcon12": null,
                                      "infoInactiveIcon2": null,
                                      "infoInactiveIcon3": null,
                                      "infoInactiveIcon4": null,
                                      "infoInactiveIcon5": null,
                                      "infoInactiveIcon6": null,
                                      "infoInactiveIcon7": null,
                                      "infoInactiveIcon8": null,
                                      "infoInactiveIcon9": null,
                                      "infoInactiveImage1": null,
                                      "infoInactiveImage10": null,
                                      "infoInactiveImage11": null,
                                      "infoInactiveImage12": null,
                                      "infoInactiveImage2": null,
                                      "infoInactiveImage3": null,
                                      "infoInactiveImage4": null,
                                      "infoInactiveImage5": null,
                                      "infoInactiveImage6": null,
                                      "infoInactiveImage7": null,
                                      "infoInactiveImage8": null,
                                      "infoInactiveImage9": null,
                                      "infoInactiveText1": null,
                                      "infoInactiveText10": null,
                                      "infoInactiveText11": null,
                                      "infoInactiveText12": null,
                                      "infoInactiveText2": null,
                                      "infoInactiveText3": null,
                                      "infoInactiveText4": null,
                                      "infoInactiveText5": null,
                                      "infoInactiveText6": null,
                                      "infoInactiveText7": null,
                                      "infoInactiveText8": null,
                                      "infoInactiveText9": null,
                                      "lockColor1": null,
                                      "lockColor10": null,
                                      "lockColor11": null,
                                      "lockColor12": null,
                                      "lockColor2": null,
                                      "lockColor3": null,
                                      "lockColor4": null,
                                      "lockColor5": null,
                                      "lockColor6": null,
                                      "lockColor7": null,
                                      "lockColor8": null,
                                      "lockColor9": null,
                                      "luminance1": null,
                                      "luminance10": null,
                                      "luminance11": null,
                                      "luminance12": null,
                                      "luminance2": null,
                                      "luminance3": null,
                                      "luminance4": null,
                                      "luminance5": null,
                                      "luminance6": null,
                                      "luminance7": null,
                                      "luminance8": null,
                                      "luminance9": null,
                                      "noIcon1": false,
                                      "noIcon10": true,
                                      "noIcon11": true,
                                      "noIcon12": true,
                                      "noIcon2": true,
                                      "noIcon3": null,
                                      "noIcon4": true,
                                      "noIcon5": true,
                                      "noIcon6": null,
                                      "noIcon7": true,
                                      "noIcon8": true,
                                      "noIcon9": null,
                                      "noLockAnimation1": null,
                                      "noLockAnimation10": null,
                                      "noLockAnimation11": null,
                                      "noLockAnimation12": null,
                                      "noLockAnimation2": null,
                                      "noLockAnimation3": null,
                                      "noLockAnimation4": null,
                                      "noLockAnimation5": null,
                                      "noLockAnimation6": null,
                                      "noLockAnimation7": null,
                                      "noLockAnimation8": null,
                                      "noLockAnimation9": null,
                                      "noRgbPalette1": null,
                                      "noRgbPalette10": null,
                                      "noRgbPalette11": null,
                                      "noRgbPalette12": null,
                                      "noRgbPalette2": null,
                                      "noRgbPalette3": null,
                                      "noRgbPalette4": null,
                                      "noRgbPalette5": null,
                                      "noRgbPalette6": null,
                                      "noRgbPalette7": null,
                                      "noRgbPalette8": null,
                                      "noRgbPalette9": null,
                                      "oid-pincode1": null,
                                      "oid-pincode10": null,
                                      "oid-pincode11": null,
                                      "oid-pincode12": null,
                                      "oid-pincode2": null,
                                      "oid-pincode3": null,
                                      "oid-pincode4": null,
                                      "oid-pincode5": null,
                                      "oid-pincode6": null,
                                      "oid-pincode7": null,
                                      "oid-pincode8": null,
                                      "oid-pincode9": null,
                                      "oid1": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.street",
                                      "oid10": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.diesel.trend_24h_proj",
                                      "oid11": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.diesel.trend_24h_proj_price",
                                      "oid12": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.lastChecked",
                                      "oid2": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.place",
                                      "oid3": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.benzin_str",
                                      "oid4": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj",
                                      "oid5": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.benzin.trend_24h_proj_price",
                                      "oid6": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.e10_str",
                                      "oid7": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.e10.trend_24h_proj",
                                      "oid8": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.aspects.e10.trend_24h_proj_price",
                                      "oid9": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.diesel_str",
                                      "open1": null,
                                      "open10": null,
                                      "open11": null,
                                      "open12": null,
                                      "open2": null,
                                      "open3": null,
                                      "open4": null,
                                      "open5": null,
                                      "open6": null,
                                      "open7": null,
                                      "open8": null,
                                      "open9": null,
                                      "orientation": "horizontal",
                                      "party1": null,
                                      "party10": null,
                                      "party11": null,
                                      "party12": null,
                                      "party2": null,
                                      "party3": null,
                                      "party4": null,
                                      "party5": null,
                                      "party6": null,
                                      "party7": null,
                                      "party8": null,
                                      "party9": null,
                                      "pincode1": null,
                                      "pincode10": null,
                                      "pincode11": null,
                                      "pincode12": null,
                                      "pincode2": null,
                                      "pincode3": null,
                                      "pincode4": null,
                                      "pincode5": null,
                                      "pincode6": null,
                                      "pincode7": null,
                                      "pincode8": null,
                                      "pincode9": null,
                                      "pincodeReturnButton1": "submit",
                                      "pincodeReturnButton10": "submit",
                                      "pincodeReturnButton11": "submit",
                                      "pincodeReturnButton12": "submit",
                                      "pincodeReturnButton2": "submit",
                                      "pincodeReturnButton3": "submit",
                                      "pincodeReturnButton4": "submit",
                                      "pincodeReturnButton5": "submit",
                                      "pincodeReturnButton6": "submit",
                                      "pincodeReturnButton7": "submit",
                                      "pincodeReturnButton8": "submit",
                                      "pincodeReturnButton9": "submit",
                                      "position1": null,
                                      "position10": null,
                                      "position11": null,
                                      "position12": null,
                                      "position2": null,
                                      "position3": null,
                                      "position4": null,
                                      "position5": null,
                                      "position6": null,
                                      "position7": null,
                                      "position8": null,
                                      "position9": null,
                                      "red1": null,
                                      "red10": null,
                                      "red11": null,
                                      "red12": null,
                                      "red2": null,
                                      "red3": null,
                                      "red4": null,
                                      "red5": null,
                                      "red6": null,
                                      "red7": null,
                                      "red8": null,
                                      "red9": null,
                                      "rgbType1": null,
                                      "rgbType10": null,
                                      "rgbType11": null,
                                      "rgbType12": null,
                                      "rgbType2": null,
                                      "rgbType3": null,
                                      "rgbType4": null,
                                      "rgbType5": null,
                                      "rgbType6": null,
                                      "rgbType7": null,
                                      "rgbType8": null,
                                      "rgbType9": null,
                                      "saturation1": null,
                                      "saturation10": null,
                                      "saturation11": null,
                                      "saturation12": null,
                                      "saturation2": null,
                                      "saturation3": null,
                                      "saturation4": null,
                                      "saturation5": null,
                                      "saturation6": null,
                                      "saturation7": null,
                                      "saturation8": null,
                                      "saturation9": null,
                                      "sensor1": null,
                                      "sensor10": null,
                                      "sensor11": null,
                                      "sensor12": null,
                                      "sensor2": null,
                                      "sensor3": null,
                                      "sensor4": null,
                                      "sensor5": null,
                                      "sensor6": null,
                                      "sensor7": null,
                                      "sensor8": null,
                                      "sensor9": null,
                                      "slideInvert1": null,
                                      "slideInvert10": null,
                                      "slideInvert11": null,
                                      "slideInvert12": null,
                                      "slideInvert2": null,
                                      "slideInvert3": null,
                                      "slideInvert4": null,
                                      "slideInvert5": null,
                                      "slideInvert6": null,
                                      "slideInvert7": null,
                                      "slideInvert8": null,
                                      "slideInvert9": null,
                                      "step1": null,
                                      "step10": null,
                                      "step11": null,
                                      "step12": null,
                                      "step2": null,
                                      "step3": null,
                                      "step4": null,
                                      "step5": null,
                                      "step6": null,
                                      "step7": null,
                                      "step8": null,
                                      "step9": null,
                                      "switch1": null,
                                      "switch10": null,
                                      "switch11": null,
                                      "switch12": null,
                                      "switch2": null,
                                      "switch3": null,
                                      "switch4": null,
                                      "switch5": null,
                                      "switch6": null,
                                      "switch7": null,
                                      "switch8": null,
                                      "switch9": null,
                                      "timeout1": 500,
                                      "timeout10": 500,
                                      "timeout11": 500,
                                      "timeout12": 500,
                                      "timeout2": 500,
                                      "timeout3": 500,
                                      "timeout4": 500,
                                      "timeout5": 500,
                                      "timeout6": 500,
                                      "timeout7": 500,
                                      "timeout8": 500,
                                      "timeout9": 500,
                                      "title1": "Straße",
                                      "title10": "Prognose 24h",
                                      "title11": "Preisprognose 24h",
                                      "title12": null,
                                      "title2": "Ort",
                                      "title3": "Super 95",
                                      "title4": "Prognose 24h",
                                      "title5": "Preisprognose 24h",
                                      "title6": "E10",
                                      "title7": "Prognose 24h",
                                      "title8": "Preisprognose 24h",
                                      "title9": "Diesel",
                                      "type": "lines",
                                      "type1": "info",
                                      "type10": "info",
                                      "type11": "info",
                                      "type12": "info",
                                      "type2": "info",
                                      "type3": "info",
                                      "type4": "info",
                                      "type5": "info",
                                      "type6": "info",
                                      "type7": "info",
                                      "type8": "info",
                                      "type9": "info",
                                      "undefined1": null,
                                      "undefined10": null,
                                      "undefined11": null,
                                      "undefined12": null,
                                      "undefined2": null,
                                      "undefined3": null,
                                      "undefined4": null,
                                      "undefined5": null,
                                      "undefined6": null,
                                      "undefined7": null,
                                      "undefined8": null,
                                      "undefined9": null,
                                      "unit1": null,
                                      "unit10": null,
                                      "unit11": "€",
                                      "unit12": null,
                                      "unit2": null,
                                      "unit3": "€",
                                      "unit4": null,
                                      "unit5": "€",
                                      "unit6": "€",
                                      "unit7": null,
                                      "unit8": "€",
                                      "unit9": "€",
                                      "vacuum-battery-oid1": null,
                                      "vacuum-battery-oid10": null,
                                      "vacuum-battery-oid11": null,
                                      "vacuum-battery-oid12": null,
                                      "vacuum-battery-oid2": null,
                                      "vacuum-battery-oid3": null,
                                      "vacuum-battery-oid4": null,
                                      "vacuum-battery-oid5": null,
                                      "vacuum-battery-oid6": null,
                                      "vacuum-battery-oid7": null,
                                      "vacuum-battery-oid8": null,
                                      "vacuum-battery-oid9": null,
                                      "vacuum-cleaning-count-oid1": null,
                                      "vacuum-cleaning-count-oid10": null,
                                      "vacuum-cleaning-count-oid11": null,
                                      "vacuum-cleaning-count-oid12": null,
                                      "vacuum-cleaning-count-oid2": null,
                                      "vacuum-cleaning-count-oid3": null,
                                      "vacuum-cleaning-count-oid4": null,
                                      "vacuum-cleaning-count-oid5": null,
                                      "vacuum-cleaning-count-oid6": null,
                                      "vacuum-cleaning-count-oid7": null,
                                      "vacuum-cleaning-count-oid8": null,
                                      "vacuum-cleaning-count-oid9": null,
                                      "vacuum-fan-speed-oid1": null,
                                      "vacuum-fan-speed-oid10": null,
                                      "vacuum-fan-speed-oid11": null,
                                      "vacuum-fan-speed-oid12": null,
                                      "vacuum-fan-speed-oid2": null,
                                      "vacuum-fan-speed-oid3": null,
                                      "vacuum-fan-speed-oid4": null,
                                      "vacuum-fan-speed-oid5": null,
                                      "vacuum-fan-speed-oid6": null,
                                      "vacuum-fan-speed-oid7": null,
                                      "vacuum-fan-speed-oid8": null,
                                      "vacuum-fan-speed-oid9": null,
                                      "vacuum-filter-left-oid1": null,
                                      "vacuum-filter-left-oid10": null,
                                      "vacuum-filter-left-oid11": null,
                                      "vacuum-filter-left-oid12": null,
                                      "vacuum-filter-left-oid2": null,
                                      "vacuum-filter-left-oid3": null,
                                      "vacuum-filter-left-oid4": null,
                                      "vacuum-filter-left-oid5": null,
                                      "vacuum-filter-left-oid6": null,
                                      "vacuum-filter-left-oid7": null,
                                      "vacuum-filter-left-oid8": null,
                                      "vacuum-filter-left-oid9": null,
                                      "vacuum-home-oid1": null,
                                      "vacuum-home-oid10": null,
                                      "vacuum-home-oid11": null,
                                      "vacuum-home-oid12": null,
                                      "vacuum-home-oid2": null,
                                      "vacuum-home-oid3": null,
                                      "vacuum-home-oid4": null,
                                      "vacuum-home-oid5": null,
                                      "vacuum-home-oid6": null,
                                      "vacuum-home-oid7": null,
                                      "vacuum-home-oid8": null,
                                      "vacuum-home-oid9": null,
                                      "vacuum-is-charging-oid1": null,
                                      "vacuum-is-charging-oid10": null,
                                      "vacuum-is-charging-oid11": null,
                                      "vacuum-is-charging-oid12": null,
                                      "vacuum-is-charging-oid2": null,
                                      "vacuum-is-charging-oid3": null,
                                      "vacuum-is-charging-oid4": null,
                                      "vacuum-is-charging-oid5": null,
                                      "vacuum-is-charging-oid6": null,
                                      "vacuum-is-charging-oid7": null,
                                      "vacuum-is-charging-oid8": null,
                                      "vacuum-is-charging-oid9": null,
                                      "vacuum-main-brush-left-oid1": null,
                                      "vacuum-main-brush-left-oid10": null,
                                      "vacuum-main-brush-left-oid11": null,
                                      "vacuum-main-brush-left-oid12": null,
                                      "vacuum-main-brush-left-oid2": null,
                                      "vacuum-main-brush-left-oid3": null,
                                      "vacuum-main-brush-left-oid4": null,
                                      "vacuum-main-brush-left-oid5": null,
                                      "vacuum-main-brush-left-oid6": null,
                                      "vacuum-main-brush-left-oid7": null,
                                      "vacuum-main-brush-left-oid8": null,
                                      "vacuum-main-brush-left-oid9": null,
                                      "vacuum-map64-oid1": null,
                                      "vacuum-map64-oid10": null,
                                      "vacuum-map64-oid11": null,
                                      "vacuum-map64-oid12": null,
                                      "vacuum-map64-oid2": null,
                                      "vacuum-map64-oid3": null,
                                      "vacuum-map64-oid4": null,
                                      "vacuum-map64-oid5": null,
                                      "vacuum-map64-oid6": null,
                                      "vacuum-map64-oid7": null,
                                      "vacuum-map64-oid8": null,
                                      "vacuum-map64-oid9": null,
                                      "vacuum-own-image1": null,
                                      "vacuum-own-image10": null,
                                      "vacuum-own-image11": null,
                                      "vacuum-own-image12": null,
                                      "vacuum-own-image2": null,
                                      "vacuum-own-image3": null,
                                      "vacuum-own-image4": null,
                                      "vacuum-own-image5": null,
                                      "vacuum-own-image6": null,
                                      "vacuum-own-image7": null,
                                      "vacuum-own-image8": null,
                                      "vacuum-own-image9": null,
                                      "vacuum-pause-oid1": null,
                                      "vacuum-pause-oid10": null,
                                      "vacuum-pause-oid11": null,
                                      "vacuum-pause-oid12": null,
                                      "vacuum-pause-oid2": null,
                                      "vacuum-pause-oid3": null,
                                      "vacuum-pause-oid4": null,
                                      "vacuum-pause-oid5": null,
                                      "vacuum-pause-oid6": null,
                                      "vacuum-pause-oid7": null,
                                      "vacuum-pause-oid8": null,
                                      "vacuum-pause-oid9": null,
                                      "vacuum-sensors-left-oid1": null,
                                      "vacuum-sensors-left-oid10": null,
                                      "vacuum-sensors-left-oid11": null,
                                      "vacuum-sensors-left-oid12": null,
                                      "vacuum-sensors-left-oid2": null,
                                      "vacuum-sensors-left-oid3": null,
                                      "vacuum-sensors-left-oid4": null,
                                      "vacuum-sensors-left-oid5": null,
                                      "vacuum-sensors-left-oid6": null,
                                      "vacuum-sensors-left-oid7": null,
                                      "vacuum-sensors-left-oid8": null,
                                      "vacuum-sensors-left-oid9": null,
                                      "vacuum-side-brush-left-oid1": null,
                                      "vacuum-side-brush-left-oid10": null,
                                      "vacuum-side-brush-left-oid11": null,
                                      "vacuum-side-brush-left-oid12": null,
                                      "vacuum-side-brush-left-oid2": null,
                                      "vacuum-side-brush-left-oid3": null,
                                      "vacuum-side-brush-left-oid4": null,
                                      "vacuum-side-brush-left-oid5": null,
                                      "vacuum-side-brush-left-oid6": null,
                                      "vacuum-side-brush-left-oid7": null,
                                      "vacuum-side-brush-left-oid8": null,
                                      "vacuum-side-brush-left-oid9": null,
                                      "vacuum-start-oid1": null,
                                      "vacuum-start-oid10": null,
                                      "vacuum-start-oid11": null,
                                      "vacuum-start-oid12": null,
                                      "vacuum-start-oid2": null,
                                      "vacuum-start-oid3": null,
                                      "vacuum-start-oid4": null,
                                      "vacuum-start-oid5": null,
                                      "vacuum-start-oid6": null,
                                      "vacuum-start-oid7": null,
                                      "vacuum-start-oid8": null,
                                      "vacuum-start-oid9": null,
                                      "vacuum-status-oid1": null,
                                      "vacuum-status-oid10": null,
                                      "vacuum-status-oid11": null,
                                      "vacuum-status-oid12": null,
                                      "vacuum-status-oid2": null,
                                      "vacuum-status-oid3": null,
                                      "vacuum-status-oid4": null,
                                      "vacuum-status-oid5": null,
                                      "vacuum-status-oid6": null,
                                      "vacuum-status-oid7": null,
                                      "vacuum-status-oid8": null,
                                      "vacuum-status-oid9": null,
                                      "vacuum-use-default-picture1": true,
                                      "vacuum-use-default-picture10": true,
                                      "vacuum-use-default-picture11": true,
                                      "vacuum-use-default-picture12": true,
                                      "vacuum-use-default-picture2": true,
                                      "vacuum-use-default-picture3": true,
                                      "vacuum-use-default-picture4": true,
                                      "vacuum-use-default-picture5": true,
                                      "vacuum-use-default-picture6": true,
                                      "vacuum-use-default-picture7": true,
                                      "vacuum-use-default-picture8": true,
                                      "vacuum-use-default-picture9": true,
                                      "vacuum-use-rooms1": null,
                                      "vacuum-use-rooms10": null,
                                      "vacuum-use-rooms11": null,
                                      "vacuum-use-rooms12": null,
                                      "vacuum-use-rooms2": null,
                                      "vacuum-use-rooms3": null,
                                      "vacuum-use-rooms4": null,
                                      "vacuum-use-rooms5": null,
                                      "vacuum-use-rooms6": null,
                                      "vacuum-use-rooms7": null,
                                      "vacuum-use-rooms8": null,
                                      "vacuum-use-rooms9": null,
                                      "visibility-cond1": "==",
                                      "visibility-cond10": "==",
                                      "visibility-cond11": "==",
                                      "visibility-cond12": "==",
                                      "visibility-cond2": "==",
                                      "visibility-cond3": "==",
                                      "visibility-cond4": "==",
                                      "visibility-cond5": "==",
                                      "visibility-cond6": "==",
                                      "visibility-cond7": "==",
                                      "visibility-cond8": "==",
                                      "visibility-cond9": "==",
                                      "visibility-oid1": null,
                                      "visibility-oid10": null,
                                      "visibility-oid11": null,
                                      "visibility-oid12": null,
                                      "visibility-oid2": null,
                                      "visibility-oid3": null,
                                      "visibility-oid4": null,
                                      "visibility-oid5": null,
                                      "visibility-oid6": null,
                                      "visibility-oid7": null,
                                      "visibility-oid8": null,
                                      "visibility-oid9": null,
                                      "visibility-val1": "1",
                                      "visibility-val10": "1",
                                      "visibility-val11": "1",
                                      "visibility-val12": "1",
                                      "visibility-val2": "1",
                                      "visibility-val3": "1",
                                      "visibility-val4": "1",
                                      "visibility-val5": "1",
                                      "visibility-val6": "1",
                                      "visibility-val7": "1",
                                      "visibility-val8": "1",
                                      "visibility-val9": "1",
                                      "white1": null,
                                      "white10": null,
                                      "white11": null,
                                      "white12": null,
                                      "white2": null,
                                      "white3": null,
                                      "white4": null,
                                      "white5": null,
                                      "white6": null,
                                      "white7": null,
                                      "white8": null,
                                      "white9": null,
                                      "whiteMode1": null,
                                      "whiteMode10": null,
                                      "whiteMode11": null,
                                      "whiteMode12": null,
                                      "whiteMode2": null,
                                      "whiteMode3": null,
                                      "whiteMode4": null,
                                      "whiteMode5": null,
                                      "whiteMode6": null,
                                      "whiteMode7": null,
                                      "whiteMode8": null,
                                      "whiteMode9": null,
                                      "widget1": null,
                                      "widget10": null,
                                      "widget11": null,
                                      "widget12": null,
                                      "widget2": null,
                                      "widget3": null,
                                      "widget4": null,
                                      "widget5": null,
                                      "widget6": null,
                                      "widget7": null,
                                      "widget8": null,
                                      "widget9": null,
                                      "widgetTitle": "{0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.name}",
                                      "working1": null,
                                      "working10": null,
                                      "working11": null,
                                      "working12": null,
                                      "working2": null,
                                      "working3": null,
                                      "working4": null,
                                      "working5": null,
                                      "working6": null,
                                      "working7": null,
                                      "working8": null,
                                      "working9": null,
                                      "oid13": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.lastPriceUpdate",
                                      "type13": "info",
                                      "noIcon13": true,
                                      "icon13": "",
                                      "iconSmall13": null,
                                      "iconEnabled13": null,
                                      "iconEnabledSmall13": null,
                                      "color13": null,
                                      "colorEnabled13": null,
                                      "slideInvert13": null,
                                      "title13": null,
                                      "unit13": null,
                                      "step13": null,
                                      "hideChart13": true,
                                      "chartPeriod13": 60,
                                      "buttonText13": null,
                                      "buttonIcon13": null,
                                      "buttonImage13": null,
                                      "buttonIconActive13": null,
                                      "buttonImageActive13": null,
                                      "infoInactiveText13": null,
                                      "infoActiveText13": null,
                                      "infoInactiveIcon13": null,
                                      "infoActiveIcon13": null,
                                      "infoInactiveImage13": null,
                                      "infoActiveImage13": null,
                                      "infoInactiveColor13": null,
                                      "infoActiveColor13": null,
                                      "widget13": null,
                                      "height13": null,
                                      "position13": null,
                                      "hide13": null,
                                      "actual13": null,
                                      "boost13": null,
                                      "party13": null,
                                      "switch13": null,
                                      "brightness13": null,
                                      "rgbType13": null,
                                      "red13": null,
                                      "green13": null,
                                      "blue13": null,
                                      "white13": null,
                                      "color_temperature13": null,
                                      "ct_min13": null,
                                      "ct_max13": null,
                                      "hue13": null,
                                      "saturation13": null,
                                      "luminance13": null,
                                      "hideBrightness13": null,
                                      "whiteMode13": null,
                                      "noRgbPalette13": null,
                                      "open13": null,
                                      "working13": null,
                                      "sensor13": null,
                                      "pincode13": null,
                                      "oid-pincode13": null,
                                      "doNotConfirm13": null,
                                      "noLockAnimation13": null,
                                      "lockColor13": null,
                                      "pincodeReturnButton13": "submit",
                                      "timeout13": 500,
                                      "vacuum-status-oid13": null,
                                      "vacuum-battery-oid13": null,
                                      "vacuum-is-charging-oid13": null,
                                      "vacuum-fan-speed-oid13": null,
                                      "vacuum-sensors-left-oid13": null,
                                      "vacuum-filter-left-oid13": null,
                                      "vacuum-main-brush-left-oid13": null,
                                      "vacuum-side-brush-left-oid13": null,
                                      "vacuum-cleaning-count-oid13": null,
                                      "vacuum-use-rooms13": null,
                                      "vacuum-map64-oid13": null,
                                      "vacuum-use-default-picture13": true,
                                      "vacuum-own-image13": null,
                                      "vacuum-start-oid13": null,
                                      "vacuum-home-oid13": null,
                                      "vacuum-pause-oid13": null,
                                      "undefined13": null,
                                      "visibility-oid13": null,
                                      "visibility-cond13": "==",
                                      "visibility-val13": "1",
                                      "g_switch-13": true,
                                      "visibility-oid": "0_userdata.0.tankerkoenig.aa7ec0ed-f087-48e5-95c1-bcb47affa5cf.isOpen",
                                      "visibility-cond": "==",
                                      "visibility-val": "false",
                                      "visibility-groups": null,
                                      "visibility-groups-action": "hide",
                                      "g_visibility": true
                                    },
                                    "style": {
                                      "bindings": [],
                                      "left": -6,
                                      "top": 14,
                                      "width": "100%",
                                      "height": "588px",
                                      "position": "relative"
                                    },
                                    "widgetSet": "vis-2-widgets-material",
                                    "_id": "i000001"
                                  }
                                ]
                                
                                Ro75R Offline
                                Ro75R Offline
                                Ro75
                                schrieb am zuletzt editiert von
                                #15

                                @Dragon kannst du uns auch bildlich was zeigen? Also, für alle die jetzt (noch) keine VIS2 einsetzen?

                                Ro75.

                                SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                                1 Antwort Letzte Antwort
                                0
                                • D Offline
                                  D Offline
                                  Dragon
                                  schrieb am zuletzt editiert von
                                  #16

                                  {C37661C6-8452-4AFD-9C36-4ECC2A1149D9}.png

                                  1 Antwort Letzte Antwort
                                  1
                                  • D Offline
                                    D Offline
                                    Dragon
                                    schrieb am zuletzt editiert von
                                    #17

                                    {4C046D23-462B-44FB-9FFE-8AAFF5244165}.png

                                    [
                                      {
                                        "tpl": "tplMaterial2Switches",
                                        "data": {
                                          "actual1": null,
                                          "actual2": null,
                                          "actual3": null,
                                          "actual4": null,
                                          "actual5": null,
                                          "actual6": null,
                                          "allSwitch": false,
                                          "bindings": [
                                            "icon10",
                                            "infoActiveIcon1",
                                            "oid2"
                                          ],
                                          "blue1": null,
                                          "blue2": null,
                                          "blue3": null,
                                          "blue4": null,
                                          "blue5": null,
                                          "blue6": null,
                                          "boost1": null,
                                          "boost2": null,
                                          "boost3": null,
                                          "boost4": null,
                                          "boost5": null,
                                          "boost6": null,
                                          "brightness1": null,
                                          "brightness2": null,
                                          "brightness3": null,
                                          "brightness4": null,
                                          "brightness5": null,
                                          "brightness6": null,
                                          "buttonIcon1": null,
                                          "buttonIcon2": null,
                                          "buttonIcon3": null,
                                          "buttonIcon4": null,
                                          "buttonIcon5": null,
                                          "buttonIcon6": null,
                                          "buttonIconActive1": null,
                                          "buttonIconActive2": null,
                                          "buttonIconActive3": null,
                                          "buttonIconActive4": null,
                                          "buttonIconActive5": null,
                                          "buttonIconActive6": null,
                                          "buttonImage1": null,
                                          "buttonImage2": null,
                                          "buttonImage3": null,
                                          "buttonImage4": null,
                                          "buttonImage5": null,
                                          "buttonImage6": null,
                                          "buttonImageActive1": null,
                                          "buttonImageActive2": null,
                                          "buttonImageActive3": null,
                                          "buttonImageActive4": null,
                                          "buttonImageActive5": null,
                                          "buttonImageActive6": null,
                                          "buttonText1": null,
                                          "buttonText2": null,
                                          "buttonText3": null,
                                          "buttonText4": null,
                                          "buttonText5": null,
                                          "buttonText6": null,
                                          "buttonsWidth": 120,
                                          "chartPeriod1": 60,
                                          "chartPeriod2": 60,
                                          "chartPeriod3": 60,
                                          "chartPeriod4": 60,
                                          "chartPeriod5": 60,
                                          "chartPeriod6": 60,
                                          "color1": null,
                                          "color2": null,
                                          "color3": null,
                                          "color4": null,
                                          "color5": null,
                                          "color6": null,
                                          "colorEnabled1": null,
                                          "colorEnabled2": null,
                                          "colorEnabled3": null,
                                          "colorEnabled4": null,
                                          "colorEnabled5": null,
                                          "colorEnabled6": null,
                                          "color_temperature1": null,
                                          "color_temperature2": null,
                                          "color_temperature3": null,
                                          "color_temperature4": null,
                                          "color_temperature5": null,
                                          "color_temperature6": null,
                                          "count": 12,
                                          "ct_max1": null,
                                          "ct_max2": null,
                                          "ct_max3": null,
                                          "ct_max4": null,
                                          "ct_max5": null,
                                          "ct_max6": null,
                                          "ct_min1": null,
                                          "ct_min2": null,
                                          "ct_min3": null,
                                          "ct_min4": null,
                                          "ct_min5": null,
                                          "ct_min6": null,
                                          "doNotConfirm1": null,
                                          "doNotConfirm2": null,
                                          "doNotConfirm3": null,
                                          "doNotConfirm4": null,
                                          "doNotConfirm5": null,
                                          "doNotConfirm6": null,
                                          "doNotWantIncludeWidgets": false,
                                          "g_common": true,
                                          "g_switch-1": true,
                                          "g_switch-2": true,
                                          "g_switch-3": true,
                                          "g_switch-4": true,
                                          "g_switch-5": true,
                                          "g_switch-6": true,
                                          "green1": null,
                                          "green2": null,
                                          "green3": null,
                                          "green4": null,
                                          "green5": null,
                                          "green6": null,
                                          "height1": null,
                                          "height2": null,
                                          "height3": null,
                                          "height4": null,
                                          "height5": null,
                                          "height6": null,
                                          "hide1": null,
                                          "hide2": null,
                                          "hide3": null,
                                          "hide4": null,
                                          "hide5": null,
                                          "hide6": null,
                                          "hideBrightness1": null,
                                          "hideBrightness2": null,
                                          "hideBrightness3": null,
                                          "hideBrightness4": null,
                                          "hideBrightness5": null,
                                          "hideBrightness6": null,
                                          "hideChart1": true,
                                          "hideChart2": true,
                                          "hideChart3": true,
                                          "hideChart4": true,
                                          "hideChart5": true,
                                          "hideChart6": true,
                                          "hue1": null,
                                          "hue2": null,
                                          "hue3": null,
                                          "hue4": null,
                                          "hue5": null,
                                          "hue6": null,
                                          "icon1": "../vis-2.0/tanken/blue.png",
                                          "icon2": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "icon3": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "icon4": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "icon5": "../vis-2.0/tanken/red.png",
                                          "icon6": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "iconEnabled1": "../vis-2.0/tanken/blue.png",
                                          "iconEnabled2": null,
                                          "iconEnabled3": null,
                                          "iconEnabled4": null,
                                          "iconEnabled5": "../vis-2.0/tanken/red.png",
                                          "iconEnabled6": null,
                                          "iconEnabledSmall1": null,
                                          "iconEnabledSmall2": null,
                                          "iconEnabledSmall3": null,
                                          "iconEnabledSmall4": null,
                                          "iconEnabledSmall5": null,
                                          "iconEnabledSmall6": null,
                                          "iconSmall1": null,
                                          "iconSmall2": null,
                                          "iconSmall3": null,
                                          "iconSmall4": null,
                                          "iconSmall5": null,
                                          "iconSmall6": null,
                                          "infoActiveColor1": null,
                                          "infoActiveColor2": null,
                                          "infoActiveColor3": null,
                                          "infoActiveColor4": null,
                                          "infoActiveColor5": null,
                                          "infoActiveColor6": null,
                                          "infoActiveIcon1": null,
                                          "infoActiveIcon2": null,
                                          "infoActiveIcon3": null,
                                          "infoActiveIcon4": null,
                                          "infoActiveIcon5": null,
                                          "infoActiveIcon6": null,
                                          "infoActiveImage1": null,
                                          "infoActiveImage2": null,
                                          "infoActiveImage3": null,
                                          "infoActiveImage4": null,
                                          "infoActiveImage5": null,
                                          "infoActiveImage6": null,
                                          "infoActiveText1": null,
                                          "infoActiveText2": null,
                                          "infoActiveText3": null,
                                          "infoActiveText4": null,
                                          "infoActiveText5": null,
                                          "infoActiveText6": null,
                                          "infoInactiveColor1": null,
                                          "infoInactiveColor2": null,
                                          "infoInactiveColor3": null,
                                          "infoInactiveColor4": null,
                                          "infoInactiveColor5": null,
                                          "infoInactiveColor6": null,
                                          "infoInactiveIcon1": null,
                                          "infoInactiveIcon2": null,
                                          "infoInactiveIcon3": null,
                                          "infoInactiveIcon4": null,
                                          "infoInactiveIcon5": null,
                                          "infoInactiveIcon6": null,
                                          "infoInactiveImage1": null,
                                          "infoInactiveImage2": null,
                                          "infoInactiveImage3": null,
                                          "infoInactiveImage4": null,
                                          "infoInactiveImage5": null,
                                          "infoInactiveImage6": null,
                                          "infoInactiveText1": null,
                                          "infoInactiveText2": null,
                                          "infoInactiveText3": null,
                                          "infoInactiveText4": null,
                                          "infoInactiveText5": null,
                                          "infoInactiveText6": null,
                                          "lockColor1": null,
                                          "lockColor2": null,
                                          "lockColor3": null,
                                          "lockColor4": null,
                                          "lockColor5": null,
                                          "lockColor6": null,
                                          "luminance1": null,
                                          "luminance2": null,
                                          "luminance3": null,
                                          "luminance4": null,
                                          "luminance5": null,
                                          "luminance6": null,
                                          "noIcon1": false,
                                          "noIcon2": true,
                                          "noIcon3": true,
                                          "noIcon4": true,
                                          "noIcon5": false,
                                          "noIcon6": true,
                                          "noLockAnimation1": null,
                                          "noLockAnimation2": null,
                                          "noLockAnimation3": null,
                                          "noLockAnimation4": null,
                                          "noLockAnimation5": null,
                                          "noLockAnimation6": null,
                                          "noRgbPalette1": null,
                                          "noRgbPalette2": null,
                                          "noRgbPalette3": null,
                                          "noRgbPalette4": null,
                                          "noRgbPalette5": null,
                                          "noRgbPalette6": null,
                                          "oid-pincode1": null,
                                          "oid-pincode2": null,
                                          "oid-pincode3": null,
                                          "oid-pincode4": null,
                                          "oid-pincode5": null,
                                          "oid-pincode6": null,
                                          "oid1": "0_userdata.0.tankerkoenig.cheapest.benzin_station_name",
                                          "oid2": "0_userdata.0.tankerkoenig.cheapest.benzin_price_str",
                                          "oid3": "0_userdata.0.tankerkoenig.difference.benzin",
                                          "oid4": "0_userdata.0.tankerkoenig.average.benzin_str",
                                          "oid5": "0_userdata.0.tankerkoenig.cheapest.diesel_station_name",
                                          "oid6": "0_userdata.0.tankerkoenig.cheapest.diesel_price_str",
                                          "open1": null,
                                          "open2": null,
                                          "open3": null,
                                          "open4": null,
                                          "open5": null,
                                          "open6": null,
                                          "orientation": "horizontal",
                                          "party1": null,
                                          "party2": null,
                                          "party3": null,
                                          "party4": null,
                                          "party5": null,
                                          "party6": null,
                                          "pincode1": null,
                                          "pincode2": null,
                                          "pincode3": null,
                                          "pincode4": null,
                                          "pincode5": null,
                                          "pincode6": null,
                                          "pincodeReturnButton1": "submit",
                                          "pincodeReturnButton2": "submit",
                                          "pincodeReturnButton3": "submit",
                                          "pincodeReturnButton4": "submit",
                                          "pincodeReturnButton5": "submit",
                                          "pincodeReturnButton6": "submit",
                                          "position1": null,
                                          "position2": null,
                                          "position3": null,
                                          "position4": null,
                                          "position5": null,
                                          "position6": null,
                                          "red1": null,
                                          "red2": null,
                                          "red3": null,
                                          "red4": null,
                                          "red5": null,
                                          "red6": null,
                                          "rgbType1": null,
                                          "rgbType2": null,
                                          "rgbType3": null,
                                          "rgbType4": null,
                                          "rgbType5": null,
                                          "rgbType6": null,
                                          "saturation1": null,
                                          "saturation2": null,
                                          "saturation3": null,
                                          "saturation4": null,
                                          "saturation5": null,
                                          "saturation6": null,
                                          "sensor1": null,
                                          "sensor2": null,
                                          "sensor3": null,
                                          "sensor4": null,
                                          "sensor5": null,
                                          "sensor6": null,
                                          "slideInvert1": null,
                                          "slideInvert2": null,
                                          "slideInvert3": null,
                                          "slideInvert4": null,
                                          "slideInvert5": null,
                                          "slideInvert6": null,
                                          "step1": null,
                                          "step2": null,
                                          "step3": null,
                                          "step4": null,
                                          "step5": null,
                                          "step6": null,
                                          "switch1": null,
                                          "switch2": null,
                                          "switch3": null,
                                          "switch4": null,
                                          "switch5": null,
                                          "switch6": null,
                                          "timeout1": 500,
                                          "timeout2": 500,
                                          "timeout3": 500,
                                          "timeout4": 500,
                                          "timeout5": 500,
                                          "timeout6": 500,
                                          "title1": " ",
                                          "title2": "Super",
                                          "title3": "Differenz",
                                          "title4": "Durchschnitt",
                                          "title5": " ",
                                          "title6": "Diesel",
                                          "type": "lines",
                                          "type1": "info",
                                          "type2": "info",
                                          "type3": "info",
                                          "type4": "info",
                                          "type5": "info",
                                          "type6": "info",
                                          "undefined1": null,
                                          "undefined2": null,
                                          "undefined3": null,
                                          "undefined4": null,
                                          "undefined5": null,
                                          "undefined6": null,
                                          "unit1": null,
                                          "unit2": "€",
                                          "unit3": "€",
                                          "unit4": "€",
                                          "unit5": null,
                                          "unit6": "€",
                                          "vacuum-battery-oid1": null,
                                          "vacuum-battery-oid2": null,
                                          "vacuum-battery-oid3": null,
                                          "vacuum-battery-oid4": null,
                                          "vacuum-battery-oid5": null,
                                          "vacuum-battery-oid6": null,
                                          "vacuum-cleaning-count-oid1": null,
                                          "vacuum-cleaning-count-oid2": null,
                                          "vacuum-cleaning-count-oid3": null,
                                          "vacuum-cleaning-count-oid4": null,
                                          "vacuum-cleaning-count-oid5": null,
                                          "vacuum-cleaning-count-oid6": null,
                                          "vacuum-fan-speed-oid1": null,
                                          "vacuum-fan-speed-oid2": null,
                                          "vacuum-fan-speed-oid3": null,
                                          "vacuum-fan-speed-oid4": null,
                                          "vacuum-fan-speed-oid5": null,
                                          "vacuum-fan-speed-oid6": null,
                                          "vacuum-filter-left-oid1": null,
                                          "vacuum-filter-left-oid2": null,
                                          "vacuum-filter-left-oid3": null,
                                          "vacuum-filter-left-oid4": null,
                                          "vacuum-filter-left-oid5": null,
                                          "vacuum-filter-left-oid6": null,
                                          "vacuum-home-oid1": null,
                                          "vacuum-home-oid2": null,
                                          "vacuum-home-oid3": null,
                                          "vacuum-home-oid4": null,
                                          "vacuum-home-oid5": null,
                                          "vacuum-home-oid6": null,
                                          "vacuum-is-charging-oid1": null,
                                          "vacuum-is-charging-oid2": null,
                                          "vacuum-is-charging-oid3": null,
                                          "vacuum-is-charging-oid4": null,
                                          "vacuum-is-charging-oid5": null,
                                          "vacuum-is-charging-oid6": null,
                                          "vacuum-main-brush-left-oid1": null,
                                          "vacuum-main-brush-left-oid2": null,
                                          "vacuum-main-brush-left-oid3": null,
                                          "vacuum-main-brush-left-oid4": null,
                                          "vacuum-main-brush-left-oid5": null,
                                          "vacuum-main-brush-left-oid6": null,
                                          "vacuum-map64-oid1": null,
                                          "vacuum-map64-oid2": null,
                                          "vacuum-map64-oid3": null,
                                          "vacuum-map64-oid4": null,
                                          "vacuum-map64-oid5": null,
                                          "vacuum-map64-oid6": null,
                                          "vacuum-own-image1": null,
                                          "vacuum-own-image2": null,
                                          "vacuum-own-image3": null,
                                          "vacuum-own-image4": null,
                                          "vacuum-own-image5": null,
                                          "vacuum-own-image6": null,
                                          "vacuum-pause-oid1": null,
                                          "vacuum-pause-oid2": null,
                                          "vacuum-pause-oid3": null,
                                          "vacuum-pause-oid4": null,
                                          "vacuum-pause-oid5": null,
                                          "vacuum-pause-oid6": null,
                                          "vacuum-sensors-left-oid1": null,
                                          "vacuum-sensors-left-oid2": null,
                                          "vacuum-sensors-left-oid3": null,
                                          "vacuum-sensors-left-oid4": null,
                                          "vacuum-sensors-left-oid5": null,
                                          "vacuum-sensors-left-oid6": null,
                                          "vacuum-side-brush-left-oid1": null,
                                          "vacuum-side-brush-left-oid2": null,
                                          "vacuum-side-brush-left-oid3": null,
                                          "vacuum-side-brush-left-oid4": null,
                                          "vacuum-side-brush-left-oid5": null,
                                          "vacuum-side-brush-left-oid6": null,
                                          "vacuum-start-oid1": null,
                                          "vacuum-start-oid2": null,
                                          "vacuum-start-oid3": null,
                                          "vacuum-start-oid4": null,
                                          "vacuum-start-oid5": null,
                                          "vacuum-start-oid6": null,
                                          "vacuum-status-oid1": null,
                                          "vacuum-status-oid2": null,
                                          "vacuum-status-oid3": null,
                                          "vacuum-status-oid4": null,
                                          "vacuum-status-oid5": null,
                                          "vacuum-status-oid6": null,
                                          "vacuum-use-default-picture1": true,
                                          "vacuum-use-default-picture2": true,
                                          "vacuum-use-default-picture3": true,
                                          "vacuum-use-default-picture4": true,
                                          "vacuum-use-default-picture5": true,
                                          "vacuum-use-default-picture6": true,
                                          "vacuum-use-rooms1": null,
                                          "vacuum-use-rooms2": null,
                                          "vacuum-use-rooms3": null,
                                          "vacuum-use-rooms4": null,
                                          "vacuum-use-rooms5": null,
                                          "vacuum-use-rooms6": null,
                                          "visibility-cond1": "==",
                                          "visibility-cond2": "==",
                                          "visibility-cond3": "==",
                                          "visibility-cond4": "==",
                                          "visibility-cond5": "==",
                                          "visibility-cond6": "==",
                                          "visibility-oid1": null,
                                          "visibility-oid2": null,
                                          "visibility-oid3": null,
                                          "visibility-oid4": null,
                                          "visibility-oid5": null,
                                          "visibility-oid6": null,
                                          "visibility-val1": "1",
                                          "visibility-val2": "1",
                                          "visibility-val3": "1",
                                          "visibility-val4": "1",
                                          "visibility-val5": "1",
                                          "visibility-val6": "1",
                                          "white1": null,
                                          "white2": null,
                                          "white3": null,
                                          "white4": null,
                                          "white5": null,
                                          "white6": null,
                                          "whiteMode1": null,
                                          "whiteMode2": null,
                                          "whiteMode3": null,
                                          "whiteMode4": null,
                                          "whiteMode5": null,
                                          "whiteMode6": null,
                                          "widget1": null,
                                          "widget2": null,
                                          "widget3": null,
                                          "widget4": null,
                                          "widget5": null,
                                          "widget6": null,
                                          "widgetTitle": "Günstigster Preis",
                                          "working1": null,
                                          "working2": null,
                                          "working3": null,
                                          "working4": null,
                                          "working5": null,
                                          "working6": null,
                                          "oid7": "0_userdata.0.tankerkoenig.difference.diesel",
                                          "type7": "info",
                                          "noIcon7": true,
                                          "icon7": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "iconSmall7": null,
                                          "iconEnabled7": null,
                                          "iconEnabledSmall7": null,
                                          "color7": null,
                                          "colorEnabled7": null,
                                          "slideInvert7": null,
                                          "title7": "Differenz",
                                          "unit7": "€",
                                          "step7": null,
                                          "hideChart7": true,
                                          "chartPeriod7": 60,
                                          "buttonText7": null,
                                          "buttonIcon7": null,
                                          "buttonImage7": null,
                                          "buttonIconActive7": null,
                                          "buttonImageActive7": null,
                                          "infoInactiveText7": null,
                                          "infoActiveText7": null,
                                          "infoInactiveIcon7": null,
                                          "infoActiveIcon7": null,
                                          "infoInactiveImage7": null,
                                          "infoActiveImage7": null,
                                          "infoInactiveColor7": null,
                                          "infoActiveColor7": null,
                                          "widget7": null,
                                          "height7": null,
                                          "position7": null,
                                          "hide7": null,
                                          "actual7": null,
                                          "boost7": null,
                                          "party7": null,
                                          "switch7": null,
                                          "brightness7": null,
                                          "rgbType7": null,
                                          "red7": null,
                                          "green7": null,
                                          "blue7": null,
                                          "white7": null,
                                          "color_temperature7": null,
                                          "ct_min7": null,
                                          "ct_max7": null,
                                          "hue7": null,
                                          "saturation7": null,
                                          "luminance7": null,
                                          "hideBrightness7": null,
                                          "whiteMode7": null,
                                          "noRgbPalette7": null,
                                          "open7": null,
                                          "working7": null,
                                          "sensor7": null,
                                          "pincode7": null,
                                          "oid-pincode7": null,
                                          "doNotConfirm7": null,
                                          "noLockAnimation7": null,
                                          "lockColor7": null,
                                          "pincodeReturnButton7": "submit",
                                          "timeout7": 500,
                                          "vacuum-status-oid7": null,
                                          "vacuum-battery-oid7": null,
                                          "vacuum-is-charging-oid7": null,
                                          "vacuum-fan-speed-oid7": null,
                                          "vacuum-sensors-left-oid7": null,
                                          "vacuum-filter-left-oid7": null,
                                          "vacuum-main-brush-left-oid7": null,
                                          "vacuum-side-brush-left-oid7": null,
                                          "vacuum-cleaning-count-oid7": null,
                                          "vacuum-use-rooms7": null,
                                          "vacuum-map64-oid7": null,
                                          "vacuum-use-default-picture7": true,
                                          "vacuum-own-image7": null,
                                          "vacuum-start-oid7": null,
                                          "vacuum-home-oid7": null,
                                          "vacuum-pause-oid7": null,
                                          "undefined7": null,
                                          "visibility-oid7": null,
                                          "visibility-cond7": "==",
                                          "visibility-val7": "1",
                                          "g_switch-7": true,
                                          "oid8": "0_userdata.0.tankerkoenig.average.diesel_str",
                                          "type8": "info",
                                          "noIcon8": true,
                                          "icon8": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "iconSmall8": null,
                                          "iconEnabled8": null,
                                          "iconEnabledSmall8": null,
                                          "color8": null,
                                          "colorEnabled8": null,
                                          "slideInvert8": null,
                                          "title8": "Durchschnitt",
                                          "unit8": "€",
                                          "step8": null,
                                          "hideChart8": true,
                                          "chartPeriod8": 60,
                                          "buttonText8": null,
                                          "buttonIcon8": null,
                                          "buttonImage8": null,
                                          "buttonIconActive8": null,
                                          "buttonImageActive8": null,
                                          "infoInactiveText8": null,
                                          "infoActiveText8": null,
                                          "infoInactiveIcon8": null,
                                          "infoActiveIcon8": null,
                                          "infoInactiveImage8": null,
                                          "infoActiveImage8": null,
                                          "infoInactiveColor8": null,
                                          "infoActiveColor8": null,
                                          "widget8": null,
                                          "height8": null,
                                          "position8": null,
                                          "hide8": null,
                                          "actual8": null,
                                          "boost8": null,
                                          "party8": null,
                                          "switch8": null,
                                          "brightness8": null,
                                          "rgbType8": null,
                                          "red8": null,
                                          "green8": null,
                                          "blue8": null,
                                          "white8": null,
                                          "color_temperature8": null,
                                          "ct_min8": null,
                                          "ct_max8": null,
                                          "hue8": null,
                                          "saturation8": null,
                                          "luminance8": null,
                                          "hideBrightness8": null,
                                          "whiteMode8": null,
                                          "noRgbPalette8": null,
                                          "open8": null,
                                          "working8": null,
                                          "sensor8": null,
                                          "pincode8": null,
                                          "oid-pincode8": null,
                                          "doNotConfirm8": null,
                                          "noLockAnimation8": null,
                                          "lockColor8": null,
                                          "pincodeReturnButton8": "submit",
                                          "timeout8": 500,
                                          "vacuum-status-oid8": null,
                                          "vacuum-battery-oid8": null,
                                          "vacuum-is-charging-oid8": null,
                                          "vacuum-fan-speed-oid8": null,
                                          "vacuum-sensors-left-oid8": null,
                                          "vacuum-filter-left-oid8": null,
                                          "vacuum-main-brush-left-oid8": null,
                                          "vacuum-side-brush-left-oid8": null,
                                          "vacuum-cleaning-count-oid8": null,
                                          "vacuum-use-rooms8": null,
                                          "vacuum-map64-oid8": null,
                                          "vacuum-use-default-picture8": true,
                                          "vacuum-own-image8": null,
                                          "vacuum-start-oid8": null,
                                          "vacuum-home-oid8": null,
                                          "vacuum-pause-oid8": null,
                                          "undefined8": null,
                                          "visibility-oid8": null,
                                          "visibility-cond8": "==",
                                          "visibility-val8": "1",
                                          "g_switch-8": true,
                                          "oid9": "0_userdata.0.tankerkoenig.cheapest.e10_station_name",
                                          "type9": "info",
                                          "noIcon9": false,
                                          "icon9": "../vis-2.0/tanken/green.png",
                                          "iconSmall9": null,
                                          "iconEnabled9": "../vis-2.0/tanken/green.png",
                                          "iconEnabledSmall9": null,
                                          "color9": null,
                                          "colorEnabled9": null,
                                          "slideInvert9": null,
                                          "title9": " ",
                                          "unit9": null,
                                          "step9": null,
                                          "hideChart9": true,
                                          "chartPeriod9": 60,
                                          "buttonText9": null,
                                          "buttonIcon9": null,
                                          "buttonImage9": null,
                                          "buttonIconActive9": null,
                                          "buttonImageActive9": null,
                                          "infoInactiveText9": null,
                                          "infoActiveText9": null,
                                          "infoInactiveIcon9": null,
                                          "infoActiveIcon9": null,
                                          "infoInactiveImage9": null,
                                          "infoActiveImage9": null,
                                          "infoInactiveColor9": null,
                                          "infoActiveColor9": null,
                                          "widget9": null,
                                          "height9": null,
                                          "position9": null,
                                          "hide9": null,
                                          "actual9": null,
                                          "boost9": null,
                                          "party9": null,
                                          "switch9": null,
                                          "brightness9": null,
                                          "rgbType9": null,
                                          "red9": null,
                                          "green9": null,
                                          "blue9": null,
                                          "white9": null,
                                          "color_temperature9": null,
                                          "ct_min9": null,
                                          "ct_max9": null,
                                          "hue9": null,
                                          "saturation9": null,
                                          "luminance9": null,
                                          "hideBrightness9": null,
                                          "whiteMode9": null,
                                          "noRgbPalette9": null,
                                          "open9": null,
                                          "working9": null,
                                          "sensor9": null,
                                          "pincode9": null,
                                          "oid-pincode9": null,
                                          "doNotConfirm9": null,
                                          "noLockAnimation9": null,
                                          "lockColor9": null,
                                          "pincodeReturnButton9": "submit",
                                          "timeout9": 500,
                                          "vacuum-status-oid9": null,
                                          "vacuum-battery-oid9": null,
                                          "vacuum-is-charging-oid9": null,
                                          "vacuum-fan-speed-oid9": null,
                                          "vacuum-sensors-left-oid9": null,
                                          "vacuum-filter-left-oid9": null,
                                          "vacuum-main-brush-left-oid9": null,
                                          "vacuum-side-brush-left-oid9": null,
                                          "vacuum-cleaning-count-oid9": null,
                                          "vacuum-use-rooms9": null,
                                          "vacuum-map64-oid9": null,
                                          "vacuum-use-default-picture9": true,
                                          "vacuum-own-image9": null,
                                          "vacuum-start-oid9": null,
                                          "vacuum-home-oid9": null,
                                          "vacuum-pause-oid9": null,
                                          "undefined9": null,
                                          "visibility-oid9": null,
                                          "visibility-cond9": "==",
                                          "visibility-val9": "1",
                                          "g_switch-9": true,
                                          "oid10": "0_userdata.0.tankerkoenig.cheapest.e10_price_str",
                                          "type10": "info",
                                          "noIcon10": true,
                                          "icon10": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "iconSmall10": null,
                                          "iconEnabled10": null,
                                          "iconEnabledSmall10": null,
                                          "color10": null,
                                          "colorEnabled10": null,
                                          "slideInvert10": null,
                                          "title10": "E10",
                                          "unit10": "€",
                                          "step10": null,
                                          "hideChart10": true,
                                          "chartPeriod10": 60,
                                          "buttonText10": null,
                                          "buttonIcon10": null,
                                          "buttonImage10": null,
                                          "buttonIconActive10": null,
                                          "buttonImageActive10": null,
                                          "infoInactiveText10": null,
                                          "infoActiveText10": null,
                                          "infoInactiveIcon10": null,
                                          "infoActiveIcon10": null,
                                          "infoInactiveImage10": null,
                                          "infoActiveImage10": null,
                                          "infoInactiveColor10": null,
                                          "infoActiveColor10": null,
                                          "widget10": null,
                                          "height10": null,
                                          "position10": null,
                                          "hide10": null,
                                          "actual10": null,
                                          "boost10": null,
                                          "party10": null,
                                          "switch10": null,
                                          "brightness10": null,
                                          "rgbType10": null,
                                          "red10": null,
                                          "green10": null,
                                          "blue10": null,
                                          "white10": null,
                                          "color_temperature10": null,
                                          "ct_min10": null,
                                          "ct_max10": null,
                                          "hue10": null,
                                          "saturation10": null,
                                          "luminance10": null,
                                          "hideBrightness10": null,
                                          "whiteMode10": null,
                                          "noRgbPalette10": null,
                                          "open10": null,
                                          "working10": null,
                                          "sensor10": null,
                                          "pincode10": null,
                                          "oid-pincode10": null,
                                          "doNotConfirm10": null,
                                          "noLockAnimation10": null,
                                          "lockColor10": null,
                                          "pincodeReturnButton10": "submit",
                                          "timeout10": 500,
                                          "vacuum-status-oid10": null,
                                          "vacuum-battery-oid10": null,
                                          "vacuum-is-charging-oid10": null,
                                          "vacuum-fan-speed-oid10": null,
                                          "vacuum-sensors-left-oid10": null,
                                          "vacuum-filter-left-oid10": null,
                                          "vacuum-main-brush-left-oid10": null,
                                          "vacuum-side-brush-left-oid10": null,
                                          "vacuum-cleaning-count-oid10": null,
                                          "vacuum-use-rooms10": null,
                                          "vacuum-map64-oid10": null,
                                          "vacuum-use-default-picture10": true,
                                          "vacuum-own-image10": null,
                                          "vacuum-start-oid10": null,
                                          "vacuum-home-oid10": null,
                                          "vacuum-pause-oid10": null,
                                          "undefined10": null,
                                          "visibility-oid10": null,
                                          "visibility-cond10": "==",
                                          "visibility-val10": "1",
                                          "g_switch-10": true,
                                          "oid11": "0_userdata.0.tankerkoenig.difference.e10",
                                          "type11": "info",
                                          "noIcon11": true,
                                          "icon11": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "iconSmall11": null,
                                          "iconEnabled11": null,
                                          "iconEnabledSmall11": null,
                                          "color11": null,
                                          "colorEnabled11": null,
                                          "slideInvert11": null,
                                          "title11": "Differenz",
                                          "unit11": "€",
                                          "step11": null,
                                          "hideChart11": true,
                                          "chartPeriod11": 60,
                                          "buttonText11": null,
                                          "buttonIcon11": null,
                                          "buttonImage11": null,
                                          "buttonIconActive11": null,
                                          "buttonImageActive11": null,
                                          "infoInactiveText11": null,
                                          "infoActiveText11": null,
                                          "infoInactiveIcon11": null,
                                          "infoActiveIcon11": null,
                                          "infoInactiveImage11": null,
                                          "infoActiveImage11": null,
                                          "infoInactiveColor11": null,
                                          "infoActiveColor11": null,
                                          "widget11": null,
                                          "height11": null,
                                          "position11": null,
                                          "hide11": null,
                                          "actual11": null,
                                          "boost11": null,
                                          "party11": null,
                                          "switch11": null,
                                          "brightness11": null,
                                          "rgbType11": null,
                                          "red11": null,
                                          "green11": null,
                                          "blue11": null,
                                          "white11": null,
                                          "color_temperature11": null,
                                          "ct_min11": null,
                                          "ct_max11": null,
                                          "hue11": null,
                                          "saturation11": null,
                                          "luminance11": null,
                                          "hideBrightness11": null,
                                          "whiteMode11": null,
                                          "noRgbPalette11": null,
                                          "open11": null,
                                          "working11": null,
                                          "sensor11": null,
                                          "pincode11": null,
                                          "oid-pincode11": null,
                                          "doNotConfirm11": null,
                                          "noLockAnimation11": null,
                                          "lockColor11": null,
                                          "pincodeReturnButton11": "submit",
                                          "timeout11": 500,
                                          "vacuum-status-oid11": null,
                                          "vacuum-battery-oid11": null,
                                          "vacuum-is-charging-oid11": null,
                                          "vacuum-fan-speed-oid11": null,
                                          "vacuum-sensors-left-oid11": null,
                                          "vacuum-filter-left-oid11": null,
                                          "vacuum-main-brush-left-oid11": null,
                                          "vacuum-side-brush-left-oid11": null,
                                          "vacuum-cleaning-count-oid11": null,
                                          "vacuum-use-rooms11": null,
                                          "vacuum-map64-oid11": null,
                                          "vacuum-use-default-picture11": true,
                                          "vacuum-own-image11": null,
                                          "vacuum-start-oid11": null,
                                          "vacuum-home-oid11": null,
                                          "vacuum-pause-oid11": null,
                                          "undefined11": null,
                                          "visibility-oid11": null,
                                          "visibility-cond11": "==",
                                          "visibility-val11": "1",
                                          "g_switch-11": true,
                                          "oid12": "0_userdata.0.tankerkoenig.average.e10_str",
                                          "type12": "info",
                                          "noIcon12": true,
                                          "icon12": "{0_userdata.0.tankerkoenig.bfbd3c8e-78af-486e-94f0-5b99f37dfe76.image}",
                                          "iconSmall12": null,
                                          "iconEnabled12": null,
                                          "iconEnabledSmall12": null,
                                          "color12": null,
                                          "colorEnabled12": null,
                                          "slideInvert12": null,
                                          "title12": "Durchschnitt",
                                          "unit12": "€",
                                          "step12": null,
                                          "hideChart12": true,
                                          "chartPeriod12": 60,
                                          "buttonText12": null,
                                          "buttonIcon12": null,
                                          "buttonImage12": null,
                                          "buttonIconActive12": null,
                                          "buttonImageActive12": null,
                                          "infoInactiveText12": null,
                                          "infoActiveText12": null,
                                          "infoInactiveIcon12": null,
                                          "infoActiveIcon12": null,
                                          "infoInactiveImage12": null,
                                          "infoActiveImage12": null,
                                          "infoInactiveColor12": null,
                                          "infoActiveColor12": null,
                                          "widget12": null,
                                          "height12": null,
                                          "position12": null,
                                          "hide12": null,
                                          "actual12": null,
                                          "boost12": null,
                                          "party12": null,
                                          "switch12": null,
                                          "brightness12": null,
                                          "rgbType12": null,
                                          "red12": null,
                                          "green12": null,
                                          "blue12": null,
                                          "white12": null,
                                          "color_temperature12": null,
                                          "ct_min12": null,
                                          "ct_max12": null,
                                          "hue12": null,
                                          "saturation12": null,
                                          "luminance12": null,
                                          "hideBrightness12": null,
                                          "whiteMode12": null,
                                          "noRgbPalette12": null,
                                          "open12": null,
                                          "working12": null,
                                          "sensor12": null,
                                          "pincode12": null,
                                          "oid-pincode12": null,
                                          "doNotConfirm12": null,
                                          "noLockAnimation12": null,
                                          "lockColor12": null,
                                          "pincodeReturnButton12": "submit",
                                          "timeout12": 500,
                                          "vacuum-status-oid12": null,
                                          "vacuum-battery-oid12": null,
                                          "vacuum-is-charging-oid12": null,
                                          "vacuum-fan-speed-oid12": null,
                                          "vacuum-sensors-left-oid12": null,
                                          "vacuum-filter-left-oid12": null,
                                          "vacuum-main-brush-left-oid12": null,
                                          "vacuum-side-brush-left-oid12": null,
                                          "vacuum-cleaning-count-oid12": null,
                                          "vacuum-use-rooms12": null,
                                          "vacuum-map64-oid12": null,
                                          "vacuum-use-default-picture12": true,
                                          "vacuum-own-image12": null,
                                          "vacuum-start-oid12": null,
                                          "vacuum-home-oid12": null,
                                          "vacuum-pause-oid12": null,
                                          "undefined12": null,
                                          "visibility-oid12": null,
                                          "visibility-cond12": "==",
                                          "visibility-val12": "1",
                                          "g_switch-12": true
                                        },
                                        "style": {
                                          "bindings": [],
                                          "left": -6,
                                          "top": 14,
                                          "width": "100%",
                                          "height": "588px",
                                          "position": "relative"
                                        },
                                        "widgetSet": "vis-2-widgets-material",
                                        "_id": "i000001"
                                      }
                                    ]
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      Dragon
                                      schrieb am zuletzt editiert von
                                      #18

                                      günstigster Diesel/Benzin/E10, damit startet die Seite

                                      1 Antwort Letzte Antwort
                                      0
                                      • D Offline
                                        D Offline
                                        Dragon
                                        schrieb am zuletzt editiert von Dragon
                                        #19

                                        @ro75
                                        Als erste mal ein herzliches Dankeschön für dieses super Skript.
                                        Könntest du evtl die Empfehlungen aus der Json in boolsche Datenpunkte integrieren. Sodass man es nutzen kann. Die Tabelle mit dem JSON passt nicht auf meine Visaulisierung.
                                        Die Entfernung zu mir, wär auch toll wenn es in einem Datenpunkt stehen könnte.

                                        Ro75R 1 Antwort Letzte Antwort
                                        0
                                        • D Offline
                                          D Offline
                                          Dragon
                                          schrieb am zuletzt editiert von
                                          #20
                                          [
                                            {
                                              "tpl": "tplMaterial2Switches",
                                              "data": {
                                                "actual1": null,
                                                "actual10": null,
                                                "actual11": null,
                                                "actual12": null,
                                                "actual2": null,
                                                "actual3": null,
                                                "actual4": null,
                                                "actual5": null,
                                                "actual6": null,
                                                "actual7": null,
                                                "actual8": null,
                                                "actual9": null,
                                                "allSwitch": false,
                                                "bindings": [
                                                  "widgetTitle",
                                                  "icon2",
                                                  "icon10",
                                                  "infoActiveIcon1",
                                                  "icon1",
                                                  "buttonImage9",
                                                  "buttonImage3",
                                                  "buttonImageActive3",
                                                  "buttonImage6",
                                                  "buttonImageActive6",
                                                  "buttonImageActive9"
                                                ],
                                                "blue1": null,
                                                "blue10": null,
                                                "blue11": null,
                                                "blue12": null,
                                                "blue2": null,
                                                "blue3": null,
                                                "blue4": null,
                                                "blue5": null,
                                                "blue6": null,
                                                "blue7": null,
                                                "blue8": null,
                                                "blue9": null,
                                                "boost1": null,
                                                "boost10": null,
                                                "boost11": null,
                                                "boost12": null,
                                                "boost2": null,
                                                "boost3": null,
                                                "boost4": null,
                                                "boost5": null,
                                                "boost6": null,
                                                "boost7": null,
                                                "boost8": null,
                                                "boost9": null,
                                                "brightness1": null,
                                                "brightness10": null,
                                                "brightness11": null,
                                                "brightness12": null,
                                                "brightness2": null,
                                                "brightness3": null,
                                                "brightness4": null,
                                                "brightness5": null,
                                                "brightness6": null,
                                                "brightness7": null,
                                                "brightness8": null,
                                                "brightness9": null,
                                                "buttonIcon1": null,
                                                "buttonIcon10": null,
                                                "buttonIcon11": null,
                                                "buttonIcon12": null,
                                                "buttonIcon2": null,
                                                "buttonIcon3": null,
                                                "buttonIcon4": null,
                                                "buttonIcon5": null,
                                                "buttonIcon6": "",
                                                "buttonIcon7": null,
                                                "buttonIcon8": null,
                                                "buttonIcon9": null,
                                                "buttonIconActive1": null,
                                                "buttonIconActive10": null,
                                                "buttonIconActive11": null,
                                                "buttonIconActive12": null,
                                                "buttonIconActive2": null,
                                                "buttonIconActive3": "",
                                                "buttonIconActive4": null,
                                                "buttonIconActive5": null,
                                                "buttonIconActive6": "",
                                                "buttonIconActive7": null,
                                                "buttonIconActive8": null,
                                                "buttonIconActive9": "",
                                                "buttonImage1": null,
                                                "buttonImage10": null,
                                                "buttonImage11": null,
                                                "buttonImage12": null,
                                                "buttonImage2": null,
                                                "buttonImage3": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj_icon}",
                                                "buttonImage4": null,
                                                "buttonImage5": null,
                                                "buttonImage6": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.e10.trend_24h_proj_icon}",
                                                "buttonImage7": null,
                                                "buttonImage8": null,
                                                "buttonImage9": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.diesel.trend_24h_proj_icon}",
                                                "buttonImageActive1": null,
                                                "buttonImageActive10": null,
                                                "buttonImageActive11": null,
                                                "buttonImageActive12": null,
                                                "buttonImageActive2": null,
                                                "buttonImageActive3": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj_icon}",
                                                "buttonImageActive4": null,
                                                "buttonImageActive5": null,
                                                "buttonImageActive6": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.e10.trend_24h_proj_icon}",
                                                "buttonImageActive7": null,
                                                "buttonImageActive8": null,
                                                "buttonImageActive9": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.diesel.trend_24h_proj_icon}",
                                                "buttonText1": null,
                                                "buttonText10": null,
                                                "buttonText11": null,
                                                "buttonText12": null,
                                                "buttonText2": null,
                                                "buttonText3": null,
                                                "buttonText4": null,
                                                "buttonText5": null,
                                                "buttonText6": null,
                                                "buttonText7": null,
                                                "buttonText8": null,
                                                "buttonText9": null,
                                                "buttonsWidth": 120,
                                                "chartPeriod1": 60,
                                                "chartPeriod10": 60,
                                                "chartPeriod11": 60,
                                                "chartPeriod12": 60,
                                                "chartPeriod2": 10080,
                                                "chartPeriod3": 60,
                                                "chartPeriod4": 60,
                                                "chartPeriod5": 60,
                                                "chartPeriod6": 60,
                                                "chartPeriod7": 60,
                                                "chartPeriod8": 60,
                                                "chartPeriod9": 60,
                                                "color1": null,
                                                "color10": null,
                                                "color11": null,
                                                "color12": null,
                                                "color2": "#ffffff",
                                                "color3": null,
                                                "color4": null,
                                                "color5": null,
                                                "color6": null,
                                                "color7": null,
                                                "color8": "#ffffff",
                                                "color9": null,
                                                "colorEnabled1": null,
                                                "colorEnabled10": null,
                                                "colorEnabled11": null,
                                                "colorEnabled12": null,
                                                "colorEnabled2": "#ffffff",
                                                "colorEnabled3": null,
                                                "colorEnabled4": null,
                                                "colorEnabled5": null,
                                                "colorEnabled6": null,
                                                "colorEnabled7": null,
                                                "colorEnabled8": "#ffffff",
                                                "colorEnabled9": null,
                                                "color_temperature1": null,
                                                "color_temperature10": null,
                                                "color_temperature11": null,
                                                "color_temperature12": null,
                                                "color_temperature2": null,
                                                "color_temperature3": null,
                                                "color_temperature4": null,
                                                "color_temperature5": null,
                                                "color_temperature6": null,
                                                "color_temperature7": null,
                                                "color_temperature8": null,
                                                "color_temperature9": null,
                                                "count": 12,
                                                "ct_max1": null,
                                                "ct_max10": null,
                                                "ct_max11": null,
                                                "ct_max12": null,
                                                "ct_max2": null,
                                                "ct_max3": null,
                                                "ct_max4": null,
                                                "ct_max5": null,
                                                "ct_max6": null,
                                                "ct_max7": null,
                                                "ct_max8": null,
                                                "ct_max9": null,
                                                "ct_min1": null,
                                                "ct_min10": null,
                                                "ct_min11": null,
                                                "ct_min12": null,
                                                "ct_min2": null,
                                                "ct_min3": null,
                                                "ct_min4": null,
                                                "ct_min5": null,
                                                "ct_min6": null,
                                                "ct_min7": null,
                                                "ct_min8": null,
                                                "ct_min9": null,
                                                "doNotConfirm1": null,
                                                "doNotConfirm10": null,
                                                "doNotConfirm11": null,
                                                "doNotConfirm12": null,
                                                "doNotConfirm2": null,
                                                "doNotConfirm3": null,
                                                "doNotConfirm4": null,
                                                "doNotConfirm5": null,
                                                "doNotConfirm6": null,
                                                "doNotConfirm7": null,
                                                "doNotConfirm8": null,
                                                "doNotConfirm9": null,
                                                "doNotWantIncludeWidgets": false,
                                                "g_common": true,
                                                "g_switch-1": true,
                                                "g_switch-10": true,
                                                "g_switch-11": true,
                                                "g_switch-12": true,
                                                "g_switch-2": true,
                                                "g_switch-3": true,
                                                "g_switch-4": true,
                                                "g_switch-5": true,
                                                "g_switch-6": true,
                                                "g_switch-7": true,
                                                "g_switch-8": true,
                                                "g_switch-9": true,
                                                "green1": null,
                                                "green10": null,
                                                "green11": null,
                                                "green12": null,
                                                "green2": null,
                                                "green3": null,
                                                "green4": null,
                                                "green5": null,
                                                "green6": null,
                                                "green7": null,
                                                "green8": null,
                                                "green9": null,
                                                "height1": null,
                                                "height10": null,
                                                "height11": null,
                                                "height12": null,
                                                "height2": null,
                                                "height3": null,
                                                "height4": null,
                                                "height5": null,
                                                "height6": null,
                                                "height7": null,
                                                "height8": null,
                                                "height9": null,
                                                "hide1": null,
                                                "hide10": null,
                                                "hide11": null,
                                                "hide12": null,
                                                "hide2": null,
                                                "hide3": null,
                                                "hide4": null,
                                                "hide5": null,
                                                "hide6": null,
                                                "hide7": null,
                                                "hide8": null,
                                                "hide9": null,
                                                "hideBrightness1": null,
                                                "hideBrightness10": null,
                                                "hideBrightness11": null,
                                                "hideBrightness12": null,
                                                "hideBrightness2": null,
                                                "hideBrightness3": null,
                                                "hideBrightness4": null,
                                                "hideBrightness5": null,
                                                "hideBrightness6": null,
                                                "hideBrightness7": null,
                                                "hideBrightness8": null,
                                                "hideBrightness9": null,
                                                "hideChart1": true,
                                                "hideChart10": true,
                                                "hideChart11": true,
                                                "hideChart12": true,
                                                "hideChart2": true,
                                                "hideChart3": true,
                                                "hideChart4": true,
                                                "hideChart5": true,
                                                "hideChart6": true,
                                                "hideChart7": true,
                                                "hideChart8": true,
                                                "hideChart9": true,
                                                "hue1": null,
                                                "hue10": null,
                                                "hue11": null,
                                                "hue12": null,
                                                "hue2": null,
                                                "hue3": null,
                                                "hue4": null,
                                                "hue5": null,
                                                "hue6": null,
                                                "hue7": null,
                                                "hue8": null,
                                                "hue9": null,
                                                "icon1": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.image}",
                                                "icon10": null,
                                                "icon11": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.image}",
                                                "icon12": "",
                                                "icon2": "../vis-2.0/tanken/blue.png",
                                                "icon3": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj_icon}",
                                                "icon4": null,
                                                "icon5": "../vis-2.0/tanken/green.png",
                                                "icon6": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj_icon}",
                                                "icon7": null,
                                                "icon8": "../vis-2.0/tanken/red.png",
                                                "icon9": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj_icon}",
                                                "iconEnabled1": null,
                                                "iconEnabled10": null,
                                                "iconEnabled11": null,
                                                "iconEnabled12": null,
                                                "iconEnabled2": "../vis-2.0/tanken/blue.png",
                                                "iconEnabled3": null,
                                                "iconEnabled4": null,
                                                "iconEnabled5": "../vis-2.0/tanken/green.png",
                                                "iconEnabled6": null,
                                                "iconEnabled7": null,
                                                "iconEnabled8": "../vis-2.0/tanken/red.png",
                                                "iconEnabled9": null,
                                                "iconEnabledSmall1": null,
                                                "iconEnabledSmall10": null,
                                                "iconEnabledSmall11": null,
                                                "iconEnabledSmall12": null,
                                                "iconEnabledSmall2": null,
                                                "iconEnabledSmall3": null,
                                                "iconEnabledSmall4": null,
                                                "iconEnabledSmall5": null,
                                                "iconEnabledSmall6": null,
                                                "iconEnabledSmall7": null,
                                                "iconEnabledSmall8": null,
                                                "iconEnabledSmall9": null,
                                                "iconSmall1": null,
                                                "iconSmall10": null,
                                                "iconSmall11": null,
                                                "iconSmall12": null,
                                                "iconSmall2": null,
                                                "iconSmall3": null,
                                                "iconSmall4": null,
                                                "iconSmall5": null,
                                                "iconSmall6": null,
                                                "iconSmall7": null,
                                                "iconSmall8": null,
                                                "iconSmall9": null,
                                                "infoActiveColor1": null,
                                                "infoActiveColor10": null,
                                                "infoActiveColor11": null,
                                                "infoActiveColor12": null,
                                                "infoActiveColor2": null,
                                                "infoActiveColor3": null,
                                                "infoActiveColor4": null,
                                                "infoActiveColor5": null,
                                                "infoActiveColor6": null,
                                                "infoActiveColor7": null,
                                                "infoActiveColor8": null,
                                                "infoActiveColor9": null,
                                                "infoActiveIcon1": null,
                                                "infoActiveIcon10": null,
                                                "infoActiveIcon11": null,
                                                "infoActiveIcon12": null,
                                                "infoActiveIcon2": null,
                                                "infoActiveIcon3": null,
                                                "infoActiveIcon4": null,
                                                "infoActiveIcon5": null,
                                                "infoActiveIcon6": null,
                                                "infoActiveIcon7": null,
                                                "infoActiveIcon8": null,
                                                "infoActiveIcon9": null,
                                                "infoActiveImage1": null,
                                                "infoActiveImage10": null,
                                                "infoActiveImage11": null,
                                                "infoActiveImage12": null,
                                                "infoActiveImage2": null,
                                                "infoActiveImage3": null,
                                                "infoActiveImage4": null,
                                                "infoActiveImage5": null,
                                                "infoActiveImage6": null,
                                                "infoActiveImage7": null,
                                                "infoActiveImage8": null,
                                                "infoActiveImage9": null,
                                                "infoActiveText1": null,
                                                "infoActiveText10": null,
                                                "infoActiveText11": null,
                                                "infoActiveText12": null,
                                                "infoActiveText2": null,
                                                "infoActiveText3": null,
                                                "infoActiveText4": null,
                                                "infoActiveText5": null,
                                                "infoActiveText6": null,
                                                "infoActiveText7": null,
                                                "infoActiveText8": null,
                                                "infoActiveText9": null,
                                                "infoInactiveColor1": null,
                                                "infoInactiveColor10": null,
                                                "infoInactiveColor11": null,
                                                "infoInactiveColor12": null,
                                                "infoInactiveColor2": null,
                                                "infoInactiveColor3": null,
                                                "infoInactiveColor4": null,
                                                "infoInactiveColor5": null,
                                                "infoInactiveColor6": null,
                                                "infoInactiveColor7": null,
                                                "infoInactiveColor8": null,
                                                "infoInactiveColor9": null,
                                                "infoInactiveIcon1": null,
                                                "infoInactiveIcon10": null,
                                                "infoInactiveIcon11": null,
                                                "infoInactiveIcon12": null,
                                                "infoInactiveIcon2": null,
                                                "infoInactiveIcon3": null,
                                                "infoInactiveIcon4": null,
                                                "infoInactiveIcon5": null,
                                                "infoInactiveIcon6": null,
                                                "infoInactiveIcon7": null,
                                                "infoInactiveIcon8": null,
                                                "infoInactiveIcon9": null,
                                                "infoInactiveImage1": null,
                                                "infoInactiveImage10": null,
                                                "infoInactiveImage11": null,
                                                "infoInactiveImage12": null,
                                                "infoInactiveImage2": null,
                                                "infoInactiveImage3": null,
                                                "infoInactiveImage4": null,
                                                "infoInactiveImage5": null,
                                                "infoInactiveImage6": null,
                                                "infoInactiveImage7": null,
                                                "infoInactiveImage8": null,
                                                "infoInactiveImage9": null,
                                                "infoInactiveText1": null,
                                                "infoInactiveText10": null,
                                                "infoInactiveText11": null,
                                                "infoInactiveText12": null,
                                                "infoInactiveText2": null,
                                                "infoInactiveText3": null,
                                                "infoInactiveText4": null,
                                                "infoInactiveText5": null,
                                                "infoInactiveText6": null,
                                                "infoInactiveText7": null,
                                                "infoInactiveText8": null,
                                                "infoInactiveText9": null,
                                                "lockColor1": null,
                                                "lockColor10": null,
                                                "lockColor11": null,
                                                "lockColor12": null,
                                                "lockColor2": null,
                                                "lockColor3": null,
                                                "lockColor4": null,
                                                "lockColor5": null,
                                                "lockColor6": null,
                                                "lockColor7": null,
                                                "lockColor8": null,
                                                "lockColor9": null,
                                                "luminance1": null,
                                                "luminance10": null,
                                                "luminance11": null,
                                                "luminance12": null,
                                                "luminance2": null,
                                                "luminance3": null,
                                                "luminance4": null,
                                                "luminance5": null,
                                                "luminance6": null,
                                                "luminance7": null,
                                                "luminance8": null,
                                                "luminance9": null,
                                                "noIcon1": false,
                                                "noIcon10": true,
                                                "noIcon11": true,
                                                "noIcon12": true,
                                                "noIcon2": null,
                                                "noIcon3": true,
                                                "noIcon4": true,
                                                "noIcon5": null,
                                                "noIcon6": true,
                                                "noIcon7": true,
                                                "noIcon8": null,
                                                "noIcon9": true,
                                                "noLockAnimation1": null,
                                                "noLockAnimation10": null,
                                                "noLockAnimation11": null,
                                                "noLockAnimation12": null,
                                                "noLockAnimation2": null,
                                                "noLockAnimation3": null,
                                                "noLockAnimation4": null,
                                                "noLockAnimation5": null,
                                                "noLockAnimation6": null,
                                                "noLockAnimation7": null,
                                                "noLockAnimation8": null,
                                                "noLockAnimation9": null,
                                                "noRgbPalette1": null,
                                                "noRgbPalette10": null,
                                                "noRgbPalette11": null,
                                                "noRgbPalette12": null,
                                                "noRgbPalette2": null,
                                                "noRgbPalette3": null,
                                                "noRgbPalette4": null,
                                                "noRgbPalette5": null,
                                                "noRgbPalette6": null,
                                                "noRgbPalette7": null,
                                                "noRgbPalette8": null,
                                                "noRgbPalette9": null,
                                                "oid-pincode1": null,
                                                "oid-pincode10": null,
                                                "oid-pincode11": null,
                                                "oid-pincode12": null,
                                                "oid-pincode2": null,
                                                "oid-pincode3": null,
                                                "oid-pincode4": null,
                                                "oid-pincode5": null,
                                                "oid-pincode6": null,
                                                "oid-pincode7": null,
                                                "oid-pincode8": null,
                                                "oid-pincode9": null,
                                                "oid1": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.street",
                                                "oid10": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.diesel.trend_24h_proj_price",
                                                "oid11": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.lastChecked",
                                                "oid12": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.lastPriceUpdate",
                                                "oid2": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.benzin_str",
                                                "oid3": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj",
                                                "oid4": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.benzin.trend_24h_proj_price",
                                                "oid5": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.e10_str",
                                                "oid6": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.e10.trend_24h_proj",
                                                "oid7": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.e10.trend_24h_proj_price",
                                                "oid8": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.diesel_str",
                                                "oid9": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.aspects.diesel.trend_24h_proj",
                                                "open1": null,
                                                "open10": null,
                                                "open11": null,
                                                "open12": null,
                                                "open2": null,
                                                "open3": null,
                                                "open4": null,
                                                "open5": null,
                                                "open6": null,
                                                "open7": null,
                                                "open8": null,
                                                "open9": null,
                                                "orientation": "horizontal",
                                                "party1": null,
                                                "party10": null,
                                                "party11": null,
                                                "party12": null,
                                                "party2": null,
                                                "party3": null,
                                                "party4": null,
                                                "party5": null,
                                                "party6": null,
                                                "party7": null,
                                                "party8": null,
                                                "party9": null,
                                                "pincode1": null,
                                                "pincode10": null,
                                                "pincode11": null,
                                                "pincode12": null,
                                                "pincode2": null,
                                                "pincode3": null,
                                                "pincode4": null,
                                                "pincode5": null,
                                                "pincode6": null,
                                                "pincode7": null,
                                                "pincode8": null,
                                                "pincode9": null,
                                                "pincodeReturnButton1": "submit",
                                                "pincodeReturnButton10": "submit",
                                                "pincodeReturnButton11": "submit",
                                                "pincodeReturnButton12": "submit",
                                                "pincodeReturnButton2": "submit",
                                                "pincodeReturnButton3": "submit",
                                                "pincodeReturnButton4": "submit",
                                                "pincodeReturnButton5": "submit",
                                                "pincodeReturnButton6": "submit",
                                                "pincodeReturnButton7": "submit",
                                                "pincodeReturnButton8": "submit",
                                                "pincodeReturnButton9": "submit",
                                                "position1": null,
                                                "position10": null,
                                                "position11": null,
                                                "position12": null,
                                                "position2": null,
                                                "position3": null,
                                                "position4": null,
                                                "position5": null,
                                                "position6": null,
                                                "position7": null,
                                                "position8": null,
                                                "position9": null,
                                                "red1": null,
                                                "red10": null,
                                                "red11": null,
                                                "red12": null,
                                                "red2": null,
                                                "red3": null,
                                                "red4": null,
                                                "red5": null,
                                                "red6": null,
                                                "red7": null,
                                                "red8": null,
                                                "red9": null,
                                                "rgbType1": null,
                                                "rgbType10": null,
                                                "rgbType11": null,
                                                "rgbType12": null,
                                                "rgbType2": null,
                                                "rgbType3": null,
                                                "rgbType4": null,
                                                "rgbType5": null,
                                                "rgbType6": null,
                                                "rgbType7": null,
                                                "rgbType8": null,
                                                "rgbType9": null,
                                                "saturation1": null,
                                                "saturation10": null,
                                                "saturation11": null,
                                                "saturation12": null,
                                                "saturation2": null,
                                                "saturation3": null,
                                                "saturation4": null,
                                                "saturation5": null,
                                                "saturation6": null,
                                                "saturation7": null,
                                                "saturation8": null,
                                                "saturation9": null,
                                                "sensor1": null,
                                                "sensor10": null,
                                                "sensor11": null,
                                                "sensor12": null,
                                                "sensor2": null,
                                                "sensor3": null,
                                                "sensor4": null,
                                                "sensor5": null,
                                                "sensor6": null,
                                                "sensor7": null,
                                                "sensor8": null,
                                                "sensor9": null,
                                                "slideInvert1": null,
                                                "slideInvert10": null,
                                                "slideInvert11": null,
                                                "slideInvert12": null,
                                                "slideInvert2": null,
                                                "slideInvert3": null,
                                                "slideInvert4": null,
                                                "slideInvert5": null,
                                                "slideInvert6": null,
                                                "slideInvert7": null,
                                                "slideInvert8": null,
                                                "slideInvert9": null,
                                                "step1": null,
                                                "step10": null,
                                                "step11": null,
                                                "step12": null,
                                                "step2": null,
                                                "step3": null,
                                                "step4": null,
                                                "step5": null,
                                                "step6": null,
                                                "step7": null,
                                                "step8": null,
                                                "step9": null,
                                                "switch1": null,
                                                "switch10": null,
                                                "switch11": null,
                                                "switch12": null,
                                                "switch2": null,
                                                "switch3": null,
                                                "switch4": null,
                                                "switch5": null,
                                                "switch6": null,
                                                "switch7": null,
                                                "switch8": null,
                                                "switch9": null,
                                                "timeout1": 500,
                                                "timeout10": 500,
                                                "timeout11": 500,
                                                "timeout12": 500,
                                                "timeout2": 500,
                                                "timeout3": 500,
                                                "timeout4": 500,
                                                "timeout5": 500,
                                                "timeout6": 500,
                                                "timeout7": 500,
                                                "timeout8": 500,
                                                "timeout9": 500,
                                                "title1": "Straße",
                                                "title10": "Preisprognose 24h",
                                                "title11": null,
                                                "title12": null,
                                                "title2": "Super 95",
                                                "title3": "Prognose 24h",
                                                "title4": "Preisprognose 24h",
                                                "title5": "E10",
                                                "title6": "Prognose 24h",
                                                "title7": "Preisprognose 24h",
                                                "title8": "Diesel",
                                                "title9": "Prognose 24h",
                                                "type": "lines",
                                                "type1": "info",
                                                "type10": "info",
                                                "type11": "info",
                                                "type12": "info",
                                                "type2": "info",
                                                "type3": "button",
                                                "type4": "info",
                                                "type5": "info",
                                                "type6": "button",
                                                "type7": "info",
                                                "type8": "info",
                                                "type9": "button",
                                                "undefined1": null,
                                                "undefined10": null,
                                                "undefined11": null,
                                                "undefined12": null,
                                                "undefined2": null,
                                                "undefined3": null,
                                                "undefined4": null,
                                                "undefined5": null,
                                                "undefined6": null,
                                                "undefined7": null,
                                                "undefined8": null,
                                                "undefined9": null,
                                                "unit1": null,
                                                "unit10": "€",
                                                "unit11": null,
                                                "unit12": null,
                                                "unit2": "€",
                                                "unit3": null,
                                                "unit4": "€",
                                                "unit5": "€",
                                                "unit6": null,
                                                "unit7": "€",
                                                "unit8": "€",
                                                "unit9": null,
                                                "vacuum-battery-oid1": null,
                                                "vacuum-battery-oid10": null,
                                                "vacuum-battery-oid11": null,
                                                "vacuum-battery-oid12": null,
                                                "vacuum-battery-oid2": null,
                                                "vacuum-battery-oid3": null,
                                                "vacuum-battery-oid4": null,
                                                "vacuum-battery-oid5": null,
                                                "vacuum-battery-oid6": null,
                                                "vacuum-battery-oid7": null,
                                                "vacuum-battery-oid8": null,
                                                "vacuum-battery-oid9": null,
                                                "vacuum-cleaning-count-oid1": null,
                                                "vacuum-cleaning-count-oid10": null,
                                                "vacuum-cleaning-count-oid11": null,
                                                "vacuum-cleaning-count-oid12": null,
                                                "vacuum-cleaning-count-oid2": null,
                                                "vacuum-cleaning-count-oid3": null,
                                                "vacuum-cleaning-count-oid4": null,
                                                "vacuum-cleaning-count-oid5": null,
                                                "vacuum-cleaning-count-oid6": null,
                                                "vacuum-cleaning-count-oid7": null,
                                                "vacuum-cleaning-count-oid8": null,
                                                "vacuum-cleaning-count-oid9": null,
                                                "vacuum-fan-speed-oid1": null,
                                                "vacuum-fan-speed-oid10": null,
                                                "vacuum-fan-speed-oid11": null,
                                                "vacuum-fan-speed-oid12": null,
                                                "vacuum-fan-speed-oid2": null,
                                                "vacuum-fan-speed-oid3": null,
                                                "vacuum-fan-speed-oid4": null,
                                                "vacuum-fan-speed-oid5": null,
                                                "vacuum-fan-speed-oid6": null,
                                                "vacuum-fan-speed-oid7": null,
                                                "vacuum-fan-speed-oid8": null,
                                                "vacuum-fan-speed-oid9": null,
                                                "vacuum-filter-left-oid1": null,
                                                "vacuum-filter-left-oid10": null,
                                                "vacuum-filter-left-oid11": null,
                                                "vacuum-filter-left-oid12": null,
                                                "vacuum-filter-left-oid2": null,
                                                "vacuum-filter-left-oid3": null,
                                                "vacuum-filter-left-oid4": null,
                                                "vacuum-filter-left-oid5": null,
                                                "vacuum-filter-left-oid6": null,
                                                "vacuum-filter-left-oid7": null,
                                                "vacuum-filter-left-oid8": null,
                                                "vacuum-filter-left-oid9": null,
                                                "vacuum-home-oid1": null,
                                                "vacuum-home-oid10": null,
                                                "vacuum-home-oid11": null,
                                                "vacuum-home-oid12": null,
                                                "vacuum-home-oid2": null,
                                                "vacuum-home-oid3": null,
                                                "vacuum-home-oid4": null,
                                                "vacuum-home-oid5": null,
                                                "vacuum-home-oid6": null,
                                                "vacuum-home-oid7": null,
                                                "vacuum-home-oid8": null,
                                                "vacuum-home-oid9": null,
                                                "vacuum-is-charging-oid1": null,
                                                "vacuum-is-charging-oid10": null,
                                                "vacuum-is-charging-oid11": null,
                                                "vacuum-is-charging-oid12": null,
                                                "vacuum-is-charging-oid2": null,
                                                "vacuum-is-charging-oid3": null,
                                                "vacuum-is-charging-oid4": null,
                                                "vacuum-is-charging-oid5": null,
                                                "vacuum-is-charging-oid6": null,
                                                "vacuum-is-charging-oid7": null,
                                                "vacuum-is-charging-oid8": null,
                                                "vacuum-is-charging-oid9": null,
                                                "vacuum-main-brush-left-oid1": null,
                                                "vacuum-main-brush-left-oid10": null,
                                                "vacuum-main-brush-left-oid11": null,
                                                "vacuum-main-brush-left-oid12": null,
                                                "vacuum-main-brush-left-oid2": null,
                                                "vacuum-main-brush-left-oid3": null,
                                                "vacuum-main-brush-left-oid4": null,
                                                "vacuum-main-brush-left-oid5": null,
                                                "vacuum-main-brush-left-oid6": null,
                                                "vacuum-main-brush-left-oid7": null,
                                                "vacuum-main-brush-left-oid8": null,
                                                "vacuum-main-brush-left-oid9": null,
                                                "vacuum-map64-oid1": null,
                                                "vacuum-map64-oid10": null,
                                                "vacuum-map64-oid11": null,
                                                "vacuum-map64-oid12": null,
                                                "vacuum-map64-oid2": null,
                                                "vacuum-map64-oid3": null,
                                                "vacuum-map64-oid4": null,
                                                "vacuum-map64-oid5": null,
                                                "vacuum-map64-oid6": null,
                                                "vacuum-map64-oid7": null,
                                                "vacuum-map64-oid8": null,
                                                "vacuum-map64-oid9": null,
                                                "vacuum-own-image1": null,
                                                "vacuum-own-image10": null,
                                                "vacuum-own-image11": null,
                                                "vacuum-own-image12": null,
                                                "vacuum-own-image2": null,
                                                "vacuum-own-image3": null,
                                                "vacuum-own-image4": null,
                                                "vacuum-own-image5": null,
                                                "vacuum-own-image6": null,
                                                "vacuum-own-image7": null,
                                                "vacuum-own-image8": null,
                                                "vacuum-own-image9": null,
                                                "vacuum-pause-oid1": null,
                                                "vacuum-pause-oid10": null,
                                                "vacuum-pause-oid11": null,
                                                "vacuum-pause-oid12": null,
                                                "vacuum-pause-oid2": null,
                                                "vacuum-pause-oid3": null,
                                                "vacuum-pause-oid4": null,
                                                "vacuum-pause-oid5": null,
                                                "vacuum-pause-oid6": null,
                                                "vacuum-pause-oid7": null,
                                                "vacuum-pause-oid8": null,
                                                "vacuum-pause-oid9": null,
                                                "vacuum-sensors-left-oid1": null,
                                                "vacuum-sensors-left-oid10": null,
                                                "vacuum-sensors-left-oid11": null,
                                                "vacuum-sensors-left-oid12": null,
                                                "vacuum-sensors-left-oid2": null,
                                                "vacuum-sensors-left-oid3": null,
                                                "vacuum-sensors-left-oid4": null,
                                                "vacuum-sensors-left-oid5": null,
                                                "vacuum-sensors-left-oid6": null,
                                                "vacuum-sensors-left-oid7": null,
                                                "vacuum-sensors-left-oid8": null,
                                                "vacuum-sensors-left-oid9": null,
                                                "vacuum-side-brush-left-oid1": null,
                                                "vacuum-side-brush-left-oid10": null,
                                                "vacuum-side-brush-left-oid11": null,
                                                "vacuum-side-brush-left-oid12": null,
                                                "vacuum-side-brush-left-oid2": null,
                                                "vacuum-side-brush-left-oid3": null,
                                                "vacuum-side-brush-left-oid4": null,
                                                "vacuum-side-brush-left-oid5": null,
                                                "vacuum-side-brush-left-oid6": null,
                                                "vacuum-side-brush-left-oid7": null,
                                                "vacuum-side-brush-left-oid8": null,
                                                "vacuum-side-brush-left-oid9": null,
                                                "vacuum-start-oid1": null,
                                                "vacuum-start-oid10": null,
                                                "vacuum-start-oid11": null,
                                                "vacuum-start-oid12": null,
                                                "vacuum-start-oid2": null,
                                                "vacuum-start-oid3": null,
                                                "vacuum-start-oid4": null,
                                                "vacuum-start-oid5": null,
                                                "vacuum-start-oid6": null,
                                                "vacuum-start-oid7": null,
                                                "vacuum-start-oid8": null,
                                                "vacuum-start-oid9": null,
                                                "vacuum-status-oid1": null,
                                                "vacuum-status-oid10": null,
                                                "vacuum-status-oid11": null,
                                                "vacuum-status-oid12": null,
                                                "vacuum-status-oid2": null,
                                                "vacuum-status-oid3": null,
                                                "vacuum-status-oid4": null,
                                                "vacuum-status-oid5": null,
                                                "vacuum-status-oid6": null,
                                                "vacuum-status-oid7": null,
                                                "vacuum-status-oid8": null,
                                                "vacuum-status-oid9": null,
                                                "vacuum-use-default-picture1": true,
                                                "vacuum-use-default-picture10": true,
                                                "vacuum-use-default-picture11": true,
                                                "vacuum-use-default-picture12": true,
                                                "vacuum-use-default-picture2": true,
                                                "vacuum-use-default-picture3": true,
                                                "vacuum-use-default-picture4": true,
                                                "vacuum-use-default-picture5": true,
                                                "vacuum-use-default-picture6": true,
                                                "vacuum-use-default-picture7": true,
                                                "vacuum-use-default-picture8": true,
                                                "vacuum-use-default-picture9": true,
                                                "vacuum-use-rooms1": null,
                                                "vacuum-use-rooms10": null,
                                                "vacuum-use-rooms11": null,
                                                "vacuum-use-rooms12": null,
                                                "vacuum-use-rooms2": null,
                                                "vacuum-use-rooms3": null,
                                                "vacuum-use-rooms4": null,
                                                "vacuum-use-rooms5": null,
                                                "vacuum-use-rooms6": null,
                                                "vacuum-use-rooms7": null,
                                                "vacuum-use-rooms8": null,
                                                "vacuum-use-rooms9": null,
                                                "visibility-cond1": "==",
                                                "visibility-cond10": "==",
                                                "visibility-cond11": "==",
                                                "visibility-cond12": "==",
                                                "visibility-cond2": "==",
                                                "visibility-cond3": "==",
                                                "visibility-cond4": "==",
                                                "visibility-cond5": "==",
                                                "visibility-cond6": "==",
                                                "visibility-cond7": "==",
                                                "visibility-cond8": "==",
                                                "visibility-cond9": "==",
                                                "visibility-oid1": null,
                                                "visibility-oid10": null,
                                                "visibility-oid11": null,
                                                "visibility-oid12": null,
                                                "visibility-oid2": null,
                                                "visibility-oid3": null,
                                                "visibility-oid4": null,
                                                "visibility-oid5": null,
                                                "visibility-oid6": null,
                                                "visibility-oid7": null,
                                                "visibility-oid8": null,
                                                "visibility-oid9": null,
                                                "visibility-val1": "1",
                                                "visibility-val10": "1",
                                                "visibility-val11": "1",
                                                "visibility-val12": "1",
                                                "visibility-val2": "1",
                                                "visibility-val3": "1",
                                                "visibility-val4": "1",
                                                "visibility-val5": "1",
                                                "visibility-val6": "1",
                                                "visibility-val7": "1",
                                                "visibility-val8": "1",
                                                "visibility-val9": "1",
                                                "white1": null,
                                                "white10": null,
                                                "white11": null,
                                                "white12": null,
                                                "white2": null,
                                                "white3": null,
                                                "white4": null,
                                                "white5": null,
                                                "white6": null,
                                                "white7": null,
                                                "white8": null,
                                                "white9": null,
                                                "whiteMode1": null,
                                                "whiteMode10": null,
                                                "whiteMode11": null,
                                                "whiteMode12": null,
                                                "whiteMode2": null,
                                                "whiteMode3": null,
                                                "whiteMode4": null,
                                                "whiteMode5": null,
                                                "whiteMode6": null,
                                                "whiteMode7": null,
                                                "whiteMode8": null,
                                                "whiteMode9": null,
                                                "widget1": null,
                                                "widget10": null,
                                                "widget11": null,
                                                "widget12": null,
                                                "widget2": null,
                                                "widget3": null,
                                                "widget4": null,
                                                "widget5": null,
                                                "widget6": null,
                                                "widget7": null,
                                                "widget8": null,
                                                "widget9": null,
                                                "widgetTitle": "{0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.name}",
                                                "working1": null,
                                                "working10": null,
                                                "working11": null,
                                                "working12": null,
                                                "working2": null,
                                                "working3": null,
                                                "working4": null,
                                                "working5": null,
                                                "working6": null,
                                                "working7": null,
                                                "working8": null,
                                                "working9": null,
                                                "visibility-oid": "0_userdata.0.tankerkoenig.005056ba-7cb6-1ed2-bceb-865970388d30.isOpen",
                                                "visibility-cond": "==",
                                                "visibility-val": "true",
                                                "visibility-groups": null,
                                                "visibility-groups-action": "hide",
                                                "g_visibility": true
                                              },
                                              "style": {
                                                "bindings": [],
                                                "left": -6,
                                                "top": 14,
                                                "width": "100%",
                                                "height": "588px",
                                                "position": "relative"
                                              },
                                              "widgetSet": "vis-2-widgets-material",
                                              "_id": "i000001"
                                            }
                                          ]
                                          

                                          0e5fe157-7296-49d2-95bc-9b78fc27acfc-{07001583-6163-4F5E-B5D0-7DDCBA13564B}.png

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          642

                                          Online

                                          32.6k

                                          Benutzer

                                          82.0k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe