Widget Evenmonitor funktioniert nicht..??

Begonnen von Tobias, 27 Januar 2017, 07:27:29

Vorheriges Thema - Nächstes Thema

Tobias

Hi,
ich habe mal das Widget Eventmonitor wie in der Doku beschrieben eingebunden. Leider aber wird NIX ausgegeben, das Gridster Element bleibt leer :(
        <header>Eventmonitor</header>
        <div data-type="eventmonitor">
        </div>
      </li>


Es müssen events ankommen weil an andere Stelle in ftui passiert was...

Was habe ich falsch gemacht? Gleiches Verhalten in FTUI v2.4 und v2.5
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

setstate

Muss ich mir anschauen, wodurch das in Mitleidenschaft gezogen wurde.

n4rrOx

Ist auch bei der neuesten FTUI Version so.

Tobias

Hi setstate,
ich habe keine ahnung warum der eventmonitor bei dir funktioniert, aber nun sehe ich ja durch n4rrox, das es nicht nur bei mir alleine ist...
Ich nutze kein Websocket, sondern Ajax als longpoll, ev. hilft das?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

setstate


n4rrOx

Zitat von: Tobias am 16 März 2017, 07:33:54
Hi setstate,
ich habe keine ahnung warum der eventmonitor bei dir funktioniert, aber nun sehe ich ja durch n4rrox, das es nicht nur bei mir alleine ist...
Ich nutze kein Websocket, sondern Ajax als longpoll, ev. hilft das?

Ich hingegen Websocket ;-)

setstate

btw: Das Eventmonitor-Widget zeigt nur die Events, wofür auch Abos existieren. D.h. es müssen andere Widgets auf der Seite sein, die Readings abonniert haben haben.

Tobias

Hi setstate, auf derselben Seite habe ich 2 Charts die natürlich auch Daten anzeigen, der Event Monitor ist trotzdem leer :(

Gesendet von meinem Leap mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

setstate

Wie oft sendet den ein logdevice Updates? Da muss man schon viele, viele Minuten davor sitzen bleiben ...

Bruchbude

#9
moin mädels,
nachdem eventmonitor bei mir auch nicht lief habe ich da was zusammengebastelt.
nutzt die volle kachelbreite/höhe um die liste der events anzuzeigen
(https://www2.pic-upload.de/thumb/35746355/eventmonitor.png)

/* FTUI Plugin
* Copyright (c) 2018 Bruchbude
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
*/

"use strict";

var Modul_eventmonitor = function () {

function init_attr(elem) {
elem.initData('max-items', 50);
elem.initData('nodetail', 'nodetail');
elem.initData('header', 'Event Monitor');
elem.initData('colorheader', 'white');
elem.initData('colorlist', 'gray');
elem.initData('device-filter', '.*');
elem.initData('reading-filter', '.*');
}

function init_ui(elem) {
elem.html("");
elem.css({ 'cursor': 'default' });
elem.append("<div class='big eventTitle "+ elem.data('colorheader')+ "'>" + elem.data('header') + "</div>");
var monitor = $('<div>', { class: 'eventMon big' }).appendTo(elem);
if ($(this).data('nodetail')!='1')
monitor.first().prepend("<div class='event'>" + (ftui.doLongPoll) ? "longpoll is on" : "longpoll is off" + "</div>");
}

function update(dev, par) {
me.elements.each(function (index) {
if (dev.match(new RegExp('^' + $(this).data('device-filter') + '$')) && par.match(new RegExp('^' + $(this).data('reading-filter') + '$'))) {
var now = new Date();
var monitor = $(this).find('.eventMon');
var height = monitor.parent().parent().height() - $(this).find('.eventTitle').height() - 10-5; // 15 px for top+bottom margin
monitor.css({ 'overflow-x':'hidden', 'overflow-y':'auto', 'text-align': 'left', 'height':height+'px' });
if (monitor.children().length >= $(this).data('max-items'))
monitor.find('.eventList:last').remove();
if ($(this).data('nodetail')=='1')
    monitor.first().prepend("<div class='eventList tiny "+ $(this).data('colorlist')+ "'>" + now.toLocaleTimeString() +" " + dev + "</div>")
else
    monitor.first().prepend("<div class='eventList tiny "+ $(this).data('colorlist')+ "'>" + [now.toLocaleDateString(), now.toLocaleTimeString(), dev, par, ftui.getDeviceParameter(dev, par).val].join(' ') + "</div>")
}
});
}

// public
// inherit members from base class
var me = $.extend(new Modul_widget(), {
//override members
widgetname: 'eventmonitor',
init_attr: init_attr,
init_ui: init_ui,
update: update,
});

return me;
};


parameter beispiele:
nodetail="1" es werden nur uhrzeit und das device angezeigt
header="Überschrift"
colorheader="white" schriftfarbe der überschrift: weiß (achtung: hier gehen nur keine farbwerte sondern nur farben welche in einer class definiert sind)
colorlist="gray" wie oben nur für die reading-einträge
device-filter=".*" regex filter fürs device
reading-filter=".*" regex filter für die readings

MichaelT

Hallo Bruchbude,

deine Änderungen funktionieren.

Zur Info für  die Leute wo es nicht geht. Ich hatte den EventMonitor in einem swiper. Keine Anzeige, erst als ich das Widget in die oberste gridster-Liste eingehangen hab, ging es.

Gruß
Michael

Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.