Kurz:
falls das FHEMWEB Attribut plotEmbed auf 2 gesetzt wird (und plotFork entweder nicht gesetzt wird, oder auf 1 steht), dann werden die SVGs ab sofort parallel berechnet.
Lang:
- frueher konnten Browser SVGs nur per <embed> Tag darstellen. Das hat den Vorteil, das (mit gesetzten plotFork) der FHEM-Server die SVGs parallel berechnen kann, und den Nachteil dass die Manipulation (z.Bsp. verschieben) per JavaScript langsam ist/flackert. Um diese Methode zu waehlen setzt man plotEmbed 1
- mit plotEmbed 0 (Voreinstellung) werden die SVGs "inplace" (also ohne <embed> Tag) gerendert. Nachteil: Bei vielen/grossen SVGs dauert das lange, weil ein Prozessor die ganze Seite (== alle SVGs auf der Seite) erst berechnen muss.
- ich habe vor ca einem Jahr versucht plotEmbed=0 zu parallelisieren: mit plotFork=1 und plotEmbed=0 wird die Berechnung der SVG per BlockingCall parallel gemacht. Leider hat das ein Problem: Falls die Berechnung laenger als etwa 90sek dauert, sendet Chrome (warum auch immer) die Anfrage nochmal. Da das "Haupt-FHEM" mit plotFork=1 nicht blockiert ist, wird die Berechnung erneut angestossen, und das Ergebnis verwirrt sowohl FHEMWEB, wie auch Chrome. Details siehe
hier.
- mit plotEmbed=2 sollte das Problem geloest sein. Das "Haupt-FHEM" erstellt die Seite ohne die SVGs, und der Browser bestellt jetzt ueber JavaScript die SVGs einzeln nach, was parallelisiert werden kann.
Ich habe vor plotEmbed=2 als Voreinstellung einzufuehren, wenn keine Probleme auftauchen.