Fernsehprogramm DOIF (aktuell und primetime | non blocking | minimaler traffic)

Begonnen von mumpitzstuff, 12 Juni 2020, 21:47:48

Vorheriges Thema - Nächstes Thema

cwagner

Zitat von: mumpitzstuff am 14 Juni 2020, 21:15:02
PS: Im ersten Beitrag habe ich das DOIF noch mal geändert, so das man Time::Piece nicht mehr braucht. Man kann es aber manuell in der Funktion xmltv2epoch einschalten, wenn man es möchte.

Mit dieser geänderten Version funktioniert es bei mir jetzt ohne andere Module auszuknocken: Ich erhalte zumindest die erste Tabelle gefüllt (Prime-Time ist (noch?) leer).

Allerdings erhalte ich immer beim Update der Reedings für die erste Tabelle einen Fehler der Oberfläche, wie im Screenshot abgebildet. Es ist nicht spezifisch für den Raum, aber es kommt immer ein paar Mal während der update-Verarbeitung.

System ist auf Update-Stand von gestern.

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

cwagner

Zitat von: Damian am 15 Juni 2020, 10:11:37
Als ich noch OWX-Module einsetzte war pro 1820-Device eine "Sendepause" von ca. einer Sekunde (mit apptime nachweisbar). ... du kannst mit apptime sehen, wie viel Zeit sich ein Modul mit seiner Abarbeitung lässt, dann hast du schnell den Schuldigen, dann kannst du ihn vorübergehend abschalten und schauen, ob es immer noch zu Abbrüchen bei blocking call kommt.
Vielen Dank @Damian für den wertvollen Hinweis; dem werde ich auf jeden Fall nachgehen. Möglicherweise komme ich mit dem TV-Programm während der Verarbeitung tatsächlich an die "Toleranzgrenze" des Systems auf einem PI3.
Die vom Autor gemachte Änderung (andere Bibliothek für das Zeiten-Rechnen) hat aber auch schon zu einer erheblichen Verbesserung geführt.

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

Zitat von: cwagner am 15 Juni 2020, 10:23:58
Mit dieser geänderten Version funktioniert es bei mir jetzt ohne andere Module auszuknocken: Ich erhalte zumindest die erste Tabelle gefüllt (Prime-Time ist (noch?) leer).

Allerdings erhalte ich immer beim Update der Reedings für die erste Tabelle einen Fehler der Oberfläche, wie im Screenshot abgebildet. Es ist nicht spezifisch für den Raum, aber es kommt immer ein paar Mal während der update-Verarbeitung.

System ist auf Update-Stand von gestern.

Herzliche Grüße

Christian

Die Meldung kommt, wenn man im generierten HTML-Code einfache Anführungszeichen angibt: ' - es müssen immer die doppelten sein: ", sonst kann es der Javascript-Prozess nicht sauber auswerten.

Edit: ich habe die Aussage gerade korrigiert, es war andersrum.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mumpitzstuff

Okay das mit dem Fehler muss ich mir ansehen. In meinem FHEM habe ich das glaube ich ausgeschaltet, deshalb ist mir das nicht aufgefallen.

Invers

Wollte ich auch ausschalten, aber ich finde nicht, wie es geht.
Habe die gleiche Fehlermeldung.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

mumpitzstuff

Ich glaube ich habs gefunden. Ein ganz blöder Bug.

Schau mal bitte in das Attribut uiTable und such die folgende Zeile:

$TD{30}{1..6} = "border-top-style:solid;border-bottom-style:solid;border-color:#CCCCCC;border-top-width:1px;border-bottom-width:1px;'";

das muss man ersetzen durch:

$TD{30}{0..6} = "style='border-top-style:solid;border-bottom-style:solid;border-color:#CCCCCC;border-top-width:1px;border-bottom-width:1px;'";

Den ersten Beitrag passe ich gleich entsprechend an.

mumpitzstuff

wenn es immer noch kommt bitte melden, dann ist da noch was anderes.

mumpitzstuff

Im WEB Device kann man das Attribut confirmJSError auf 0 setzen, dann verschwinden die Fehler auch.

PS: Wenn prime noch nicht gefüllt ist, dann einfach noch etwas warten. Das wird jede Nacht um 0:30 Uhr gemacht, sollte also Morgen dann sichtbar sein.

Invers

Vielen Dank, habs getauscht. Mal gucken.
Java Fehlermeldungen abschalten hatte ich gesucht, aber nicht gefunden. Auch da danke für den Tipp.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Damian

Ich würde erst mal nach den Ursachen suchen, bevor ich die Meldungen abschalte. All meine uiTable-Funktionen, die HTML-Code generieren, produzieren keine Fehlermeldung. Das sollte immer das Ziel sein, sonst funktioniert etwas nicht richtig. Wie schon gesagt: Auf keinen Fall einfache Anführungszeichen im HTML-Code verwenden.

Bsp.:
statt:

$TD{30}{0..6} = "style='border-top-style:solid;border-bottom-style:solid;border-color:#CCCCCC;border-top-width:1px;border-bottom-width:1px;'";


$TD{30}{0..6} = 'style="border-top-style:solid;border-bottom-style:solid;border-color:#CCCCCC;border-top-width:1px;border-bottom-width:1px;"';

definieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Invers

Ich denke, mit der Korrektur ist der Fehler beseitigt. Keine Meldungen bisher. Dnke nochmals.


EDIT
Zu früh gejubelt. Fehlermeldung ist wieder da.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Damian

Zitat von: Invers am 15 Juni 2020, 13:13:35
Ich denke, mit der Korrektur ist der Fehler beseitigt. Keine Meldungen bisher. Dnke nochmals.


EDIT
Zu früh gejubelt. Fehlermeldung ist wieder da.

Bei $TD, $TC dürfte es nicht das eigentliche Problem sein, es war nur ein Beispiel. Das Problem ist dann gegeben, wenn eine eigene Perlfunktion den HTML-Code generiert - das dürften in der gesamten DOIF-Definiton hier einige Perlfunktionen sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mumpitzstuff

Dann kommt das Problem aus dieser Zeile:

return "<a href=\"#!\" onclick=\"FW_okDialog('".$desc."')\">".$title."</a>";;\

Mir ist aber unklar, wie ich das Problem hier umgehen soll. Ich brauche hier eine Verschachtelung und diese ist nur mit " nicht realisierbar. onClick selbst muss mit " umgeben sein und der String der der Funktion FW_okDialog übergeben wird muss ebenfalls mit irgendwas umgeben sein. " kann ich an der Stelle nicht verwenden, also bleibt nur '. Im Moment habe ich keine Ahnung was ich da machen könnte.

mumpitzstuff

Kannst du bitte mal versuchen, im Attribut uiTable die oben genannte Zeile durch diese zu ersetzen?

return "<a href=\"#!\" onclick=\"FW_okDialog('".$desc."')\">".$title."</a>";

Ich habe zwar den Fehler einmal sehen können, nachdem ich die Javascript Fehler aktiviert hatte, jetzt tauchen sie bei mir aber gar nicht mehr auf und ich kann nicht prüfen, ob sie immer noch vorhanden sind oder nicht.

Frank_Huber

Zitat von: mumpitzstuff am 15 Juni 2020, 16:42:54
Kannst du bitte mal versuchen, im Attribut uiTable die oben genannte Zeile durch diese zu ersetzen?

return "<a href=\"#!\" onclick=\"FW_okDialog('".$desc."')\">".$title."</a>";

Ich habe zwar den Fehler einmal sehen können, nachdem ich die Javascript Fehler aktiviert hatte, jetzt tauchen sie bei mir aber gar nicht mehr auf und ich kann nicht prüfen, ob sie immer noch vorhanden sind oder nicht.

Fehler ist damit weg.

Eine Frage aus dem Thread ist noch offen:
Welche Icons hast Du gezogen?
Die von AVM müssen ja so wie es aussieht alle umbenannt werden.