Hallo Thorsten,
auch von mir ersteinmal ein großes Dankeschön! Ich beobachtete die letzten Monate FUIP im Forum und habe mich entschlossen meine jetzige FTUI-Oberfläche nun mit FUIP nachzubauen, da ich FTUI an sich gut finde, aber mir beim Arbeiten im Texteditor oft der Überblick verloren geht und ich lieber kleine HTML-Blöcke in einer "standardisierten" UI-Klickibunti-Welt hin- und herschiebe. Also nochmal danke dafür und bitte dranbleiben ;)
So, nun aber zum Eigentlichen. Konkret habe ich meinen Abfallkalender wie hier https://forum.fhem.de/index.php/topic,105368.msg994719.html#msg994719 nachgebaut.
Zuerst habe ich versucht in einer Zelle für jede Mülltonne ein eigenes HTML-View anzulegen und dort auch den HTML-Code einzufügen. Das scheiterte jedoch, da ab der 3. HTML-View die Zelle nicht mehr richtig abgespeichert werden konnte. siehe Bilder im Anhang.
Nachdem ich dann den Browser refreshed und ich wieder in die Zellen-Konfig zurückgegangen bin, sieht man auch (Bild 3), dass der Code ziemlich "zerhäckselt" wurde.
Nun die Frage: ist die Menge der HTML-Views (bzw. des gesamten freien HTML-Codes) innerhalb einer Zelle begrenzt?
Nachdem ich kapiert hatte, dass im oben genannte Thread ein View-Template verwendet wurde, konnte ich den Kalender schlussendlich auch erfolgreich gestalten, trotzdem blieb die Frage warum es die Probleme mit den mehreren HTML-Views in der Zelle gab bzw. gibt!?
VG
Daniel
PS: ich hoffe es ist halbwegs verständlich was ich meine ;)
Hi,
ich habe gerade mal versucht, eine Zelle mit vier der HTML-Views mit Mülltonne (ohne View Template) anzulegen. Das war kein Problem, obwohl sogar noch zwei weitere HTML-Views mit drin waren. Also insgesamt 6.
Meines Wissens nach gibt es da keine praxisrelevante Obergrenze.
Allerdings gab es bereits ähnliche Probleme, wenn z.B. die Seiten durch eine Nginx-Installation geschickt wurden. (Siehe https://forum.fhem.de/index.php/topic,105626.0.html) Ich kann mir vorstellen, dass Du ein ähnliches Problem hast. Möglicherweise ist das auch nicht nur auf Nginx beschränkt, sondern tritt auch bei anderen Webservern oder auch Virtualisierungslösungen auf.
Kann das bei Dir zutreffen?
Gruß,
Thorsten
Hi,
nginx oder ähnliches habe ich nicht am Laufen. Das kann es eigentlich nicht sein.
Ich habe es jetzt mal mit nur einem HTML-View und einem längeren Code probiert, da ist das gleiche Problem.
Ich habe diesen Code verwendet:
<div data-type="circlemenu">
<ul>
<li>
<div data-type="switch"
data-device="FanStageCurrent"
data-states='["00","01","10","11","20","21","30","31"]'
data-background-colors='["blue","yellow","blue","yellow","blue","yellow","blue","yellow"]'
data-icons='["fa-power-off","fa-power-off","oa-vent_ventilation_level_1","oa-vent_ventilation_level_1","oa-vent_ventilation_level_2","oa-vent_ventilation_level_2","oa-vent_ventilation_level_3","oa-vent_ventilation_level_3"]'
class="readonly"></div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-get-on="2"
data-get-off="((?!2).)*"
data-set-on="2"
data-set-off="2"
data-icon="oa-vent_ventilation_level_2">
</div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-get-on="3"
data-get-off="((?!3).)*"
data-set-on="3"
data-set-off="3"
data-icon="oa-vent_ventilation_level_3">
</div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-icon="fa-power-off"
data-get-on="0"
data-get-off="((?!0).)*"
data-set-on="0"
data-set-off="0">
</div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-get-on="1"
data-get-off="((?!1).)*"
data-set-on="1"
data-set-off="1"
data-icon="oa-vent_ventilation_level_1">
</div>
</li>
</ul>
</div>
Nach dem Fehler sieht der Code im View so aus:
"div data-type="circlemenu">
<ul>
<li>
<div data-type="switch"
data-device="FanStageCurrent"
data-states='["00","01","10","11","20","21","30","31"]'
data-background-colors='["blue","yellow","blue","yellow","blue","yellow","blue","yellow"]'
data-icons='["fa-power-off","fa-power-off","oa-vent_ventilation_level_1","oa-vent_ventilation_level_1","oa-vent_ventilation_level_2","oa-vent_ventilation_level_2","oa-vent_ventilation_level_3","oa-vent_ventilation_level_3"]'
class="readonly"></div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-get-on="2"
data-get-off="((?!2).)*"
data-set-on="2"
data-set-off="2"
data-icon="oa-vent_ventilation_level_2">
</div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-get-on="3"
data-get-off="((?!3).)*"
data-set-on="3"
data-set-off="3"
data-icon="oa-vent_ventilation_level_3">
</div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
data-icon="fa-power-off"
data-get-on="0"
data-get-off="((?!0).)*"
data-set-on="0"
data-set-off="0">
</div>
</li>
<li>
<div data-type="switch" data-device="Fan.Unscheduled"
Fhem selbst bringt auch keinen Fehler im Log. Hatte Verbose auf 5 fürs FUIP-Device. Keine Log-Einträge. Komisch
VG
Daniel
Ich kenne FUIP nicht, aber muss man nicht ein "<" ganz am Anfang haben?
Zitat von: amenomade am 26 November 2019, 23:44:16
Ich kenne FUIP nicht, aber muss man nicht ein "<" ganz am Anfang haben?
Hi, ja stimmt. War aber nur ein Paste Fehler. Im FUIP war das "<" da.
Habs grad im Post oben geändert...
Grüße
Hi,
also ich habe selbst HTML-Views mit mehr Coding und das war bisher nie problematisch. Offensichtlich wird da aber bei Dir was abgeschnitten.
Könntest Du tatsächlich mal ein paar Informationen über Deine Umgebung liefern? D.h. welches Betriebssystem (Frontend und Backend), welcher Browser, alles dazwischen (Nginx wohl nicht, aber vielleicht irgendwas anderes wie VPN, Proxy etc.?).
Außerdem hätte ich gerne ein "list" Deines FUIP-Device.
Gruß,
Thorsten
Hi,
also hier mal das List:
Internals:
FUUID 5dd3ce78-f33f-fd8b-f525-5780748c1e364b21
FVERSION 42_FUIP.pm:0.009900/2019-11-16
NAME FUIP
NR 430
STATE FUIP
TYPE FUIP
autosave none
editOnly 0
lockIPs 192.168.41.46:0
colors:
editonly rgba(255,255,255,.1)
foreground rgba(177,177,177,1)
header #262626
symbol-active #337AB7
symbol-foreground #2A2A2A
symbol-inactive #505050
fhem:
directory ./www/tablet
friendlyname FUIP
infix fuip/
pages:
viewtemplates:
Attributes:
DbLogExclude .*
baseHeight 40
baseWidth 40
cellMargin 2
gridlines hide
layout gridster
locked 1
room Labor
snapTo quarterGrid
styleSchema blue
Ansonsten läuft Raspbian auf einem Raspi 2 (Debian 9.11). Eine grobe Device-Übersichtsteht in meine Signatur.
Ich verwende Firefox 70.0.1 (64-Bit) auf Win10.
Ansonsten keine weiteren Proxys, VPN etc.
VG
Hi,
ich habe das jetzt auch mal mit Firefox 70.0.1 (64-Bit) auf Win7 ausprobiert. (Ich bin zu blöd für Win10, glaube ich.) Ich habe sogar Dein circlemenu-Beispiel reinkopiert. Das ging absolut ohne Probleme.
Irgendwas scheint da bei Dir die Länge der URL zu beschränken, aber ich komme nicht drauf, was das sein könnte. Hast Du eine Idee?
Könntest Du es mal mit Chrome ausprobieren? ...oder hast Du noch einen anderen Rechner?
Ich werde wahrscheinlich demnächst das ganze von HTTP GET auf HTTP POST umstellen. Theoretisch müsste das Problem dann verschwinden. Allerdings stimmt da bei Dir irgendwas nicht und ich würde gerne erst einmal wissen, wo da das Problem wirklich liegt.
Gruß,
Thorsten
Hallo Thorsten,
mittlerweile konnte ich das Problem identifizieren. Es lag weder an FUIP, FHEM oder dem Raspi...
Kurz und knapp: Es war mein AntiVirus Programm. Wir verwenden Sophos Endpoint Protection. Die enthaltene "WebControl" scheint den Browsertraffic zu scannen, vielleicht sogar durch einen "versteckten" Proxy oder so. Genau weiß ichs nicht. Es liegt aber definitiv am Sophos! Schalte ich die WebControl aus, ist alles gut!
An was man so alles denken muss :o
Dann ist diese Problem gelöst.
Danke für Deine Mühe...
VG
Daniel
Hi,
hat das Teil nicht schon einmal Probleme gemacht?
Im Prinzip hat es ja fast Recht. Wenn ein GET-Request mit einer riesigen URL reinkommt, dann ist das oft etwas seltsam. ...aber das dann einfach zu blockieren bzw. abzuschneiden ist auch nicht so der Hit.
Aber jetzt wissen wir zumindest, was los ist. Ich werde trotzdem demnächst wahrscheinlich was umstellen, so dass auch das keine Probleme mehr machen dürfte.
Gruß,
Thorsten
nö, sonst macht es keine Probleme (eben so weit ich das beurteilen kann). Normalerweise sagt es auch bescheid, wenn es etwas blockiert bzw. verdächtig ist.
Ok, dann markiere ich den Thread als gelöst...
VG
Hi,
ich habe jetzt von GET auf POST umgestellt. Wenn Du willst, dann kannst Du ja mal ausprobieren ob es jetzt auch mit der "Endpoint Protection" geht.
Gruß,
Thorsten
Hallo Thorsten,
ich habe es eben getestet und es funktioniert nun problemlos auch bei aktivierter "Endpoint Protection".
Danke!