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 abgefangen und stattdessen 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 Perl-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
    Zuletzt geändert von wvhn; Heute, 00:12.

    Kommentar


      #3
      Vielen Dank für die ausführliche Antwort und die Überarbeitung.

      Ich habe hier gleich einige Versuche durchgeführt, muss aber gestehen, dass ich noch nicht weitergekommen bin.

      Verifizieren konnte ich das nicht, aber es scheint mir als würde FHEM mein JSON nicht 1:1 weiterliefern. Sollte ich es noch herbekommen, würde ich den Weg hier zusammenschreiben...

      LG
      Angehängte Dateien

      Kommentar


        #4
        Hast Du den Loglevel im Treiber mal hochgesetzt und siehst Du die übertragenen Daten in der Konsole? Der smartVISU Cache muss dazu ausgeschaltet sein, da sonst die Konsolenausgabe unterdrückt wird.
        Interessant sind die Daten hinter
        Code:
        [fhem] socket.onmessage: data = ...
        Poste die doch bitte mal hier - möglichst als Code-Block, bitte nicht als Screenshot.

        Wenn man das mit den Log-Ausgaben von fhem / fronthem vergleicht, wird man sehr wahrscheinlich sehen, wo die Formatierung auf der Strecke bleibt.

        Gruß
        Wolfram
        Zuletzt geändert von wvhn; Heute, 00:14.

        Kommentar

        Lädt...
        X