Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

SmartVISU, Fhem - Status.activelist

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    SmartVISU, Fhem - Status.activelist

    Hallo zusammen,

    ich würde gerne in meiner SmartVISU Visualisierung eine Historie der letzten Messdaten anzeigen und wollte das testhalber einmal mit einer Liste der Fensterdaten ausprobieren.

    Als Widget käme entweder das status.log oder das status.activelist in Frage.

    Da die Übergabe als JSON recht flexibel aussah, hab ich mir mal eine kleine Testumgebung aufgebaut, welche leider noch nicht wirklich läuft.

    Meine Konfiguration sieht aktuell so aus:

    - FHEM
    Es wurde ein Objekt angelegt "testItem" mit einem "state und einem reading.
    Das zu übergebene JSON habe ich aus der SmartVISU Hilfe herausgenommen.

    - Fronthem
    Mittels Fronthem läuft die Übergabe der Daten.
    Diese habe ich bereits als Item als auch als Log definiert.

    - SmartVISU
    {{ status.activelist('', 'WZ_FensterHistory.list', 'headline', 'date', 'message', 'flag') }}


    Folgende Bemerkungen:
    - Stelle ich in der Fronthem beim Modus "Log" ein und übergebe kein JSON sondern reiner Text, so wird dieser in der Kachel dargestellt. Wird das JSON übergeben, scheint ein Fehler aufzutreten, der sich als roter Balken äußert.
    - Bei Übergabe als "Item" im fronthem kommt der Fehler "TypeError: can't access property "indexOf", messages.icon is undefined" und es wird ebenfalls nichts angezeigt.

    Hat jemand solch eine Kombination in Verwendung und vielleicht einen Tipp wie der Datenfluss hier gedacht wäre?

    Danke und schöne Grüße
    Angehängte Dateien

    #2
    Moin blitz94,

    die Fehlermeldung in der Konsole wird geschmissen, wenn das Datenformat ungültig ist (kein JSON). Ich habe das zum Anlass genommen, das Widget so zu erweitern, dass eine Fehlermeldung in der Liste angezeigt wird. Die Version ist jetzt im develop branch.

    Du kannst im Treiber (./driver/io_fhem.js) in Zeile 29 den Loglevel auf 2 stellen. Dann werden Dir in der Konsole die empfangenen Daten angezeigt. Vielleicht kannst Du daran erkennen, wie Du die Daten bereitstellen musst, damit sie korrekt als JSON übertragen werden.

    Mit meinen nicht vorhandenen Pearl-Kenntnissen kann ich Dich nicht wirklich unterstützen. Aber schau mal in die fronthemUtils.pm Dort wird in der Funktion Log_GetList($) der JSON-String für Logs zusammengesetzt:
    Code:
            $list .= '{"message":"'. $device . " - " . $reading . '","time":"' . $timestring . '","level":"' . $level . '"}' . ($i == keys(%{$defs{$name}{READINGS}}) ? "" : ",") if ($key ne "state");
    Da die Eigenschaft "message" dort existiert, bekommst Du diese wohl im Widget angezeigt. "time" und "level" könntest Du statt "date" und "flag" verwenden.

    Gruß
    Wolfram

    Kommentar

    Lädt...
    X