Websocket überladen?

Begonnen von dr4g0n, 29 April 2019, 20:35:16

Vorheriges Thema - Nächstes Thema

dr4g0n

Hallo zusammen,

ich habe eine recht große FTUI installation mit vielen werten etc.

Zur Kommunikation nutze ich den Websocket (was auch bedingt funktioniert), da einige Widgets geupdatet werden und andere nicht reagieren.
Wenn ich mir mit den Chrome-Dev-Tools die Websocket messages angucke, dann fällt mir folgendes auf:

MQTT2_tvschrank,MQTT2_buerotv, STATE data_adc6akkuv data_adc633v

Mitten in der Message hört die Komma-Trennung auf und es sind nur Leerzeichen, zudem steht dann dort "State".

Aufgefallen ist es mir, da ich z.b. einen Button mit "Licht aus" benutze der als data-set-on / data-set-off den z.b. "off; set HUE1 off; set HUE2 off" nutzt (funktioniert auch). Nur leider wird dann der einzelne Butten der mit HUE1 verknüpft ist, nicht aktualisiert.

Wenn ich z.B. auf einer leeren Seite zwei mal den Button anzeige und auf einen klicke, dann wird der andere kurze Zeit später auch geschaltet.

<div data-type="switch" data-device="MQTT2_lichterkette" data-get-on="!off" data-get-off="off" data-set-off="off" data-set-on="on" data-icon="fa-lightbulb-o" data-background-icon="fa-square"></div>
<div data-type="switch" data-device="MQTT2_lichterkette" data-get-on="!off" data-get-off="off" data-set-off="off" data-set-on="on" data-icon="fa-lightbulb-o" data-background-icon="fa-square"></div>


In der großen Version mit allen Addons etc funktioniert es nicht mehr, ich sehe im Websocket zwar die Messages aber die Buttons reagieren nicht. Erst nach einem Reload (F5) wird der neue Status angezeigt.
Andere Werte wie z.b. Temperaturen (Label) werden konstant aktualisiert.

Der Websocket request ws://...... umfast 2040 Zeichen und enthält 135 Valus die nach dem 36 Wert (Geräte)  und danach mit einem Leerzeichen (ca 100 Readings), statt mit Komma getrennt sind.

Hat jemand eine Idee?


dr4g0n

Okay ich habe ein kleines Update.
Das Problem tritt nur in Verbindung mit dem Pagebutton auf. Es funktioniert einwandfrei wenn ich alle Widgets auf einer Seite einfüge und diese dann trigger.

somansch

Ich kann das Problem bestätigen! Sehe ebenfalls die Leerzeichen:fhem-tablet-ui.js:2091 websockets URL=ws://192.168.5.11:8083/fhem/?XHR=1&inform=type=status;filter=DarkSky,netatmo_xxx_xx_xx_xx_xx_xx,alle_Rollos.hoch,alle_Rollos.runter,AV_Receiver,spiegelNews,HUEGroup0,alle_Rollos,netatmo_xxx_xx_xx_xx_xx_xx,netatmo_xxx_xx_xx_xx_xx_xx,wz_TempSensor,Bad_TempSensor,Bad.Lueften,Buero_TempSensor,Buero.Lueften,sz_TempSensor,SZ.Lueften,WZ.Lueften,Temp_Abstellraum_Sensor,Wetter_Pro,DWD,netatmo_forecast,Fritzboxanrufeliste,Geburtstagskalender,myAbfall,Bad_FensterSensor,Buero_FensterSensor,sz_FensterSensor,wz_FensterSensor,Wohnungstuer_Sensor,Fritz_Box,Handy_xxxxx,Handy_Andreas,CUL1,mySIGNALduino,HUEBridge,Internet_status,Spritpreis,Update.Counter, STATE volumeStraight tickerToast currentTitle any_on presence guststrength temperature apparentTemperature active co2 TRIGGERTIME_FMT fc0_date fc0_tempMax fc0_tempMin fc1_date fc1_tempMax fc1_tempMin fc2_date fc2_tempMax fc2_tempMin fc0_weekday fc0_Tx fc0_Tn fc1_weekday fc1_Tx fc1_Tn fc2_weekday fc2_Tx fc2_Tn fc1_day_of_week fc1_high_c fc1_low_c fc2_day_of_week fc2_high_c fc2_low_c fc3_day_of_week fc3_high_c fc3_low_c fc0_day fc0_temp_max fc0_temp_min fc1_day fc1_temp_max fc1_temp_min fc2_day fc2_temp_max fc2_temp_min 1-number 1-name t_001_bdate t_001_summary next_date next_text Activity state tam1_newMsg t_001_daysleft ftui_next updatestate statGuststrengthTendency statTemperatureTendency statCo2Tendency windangle fc0_weatherDayIcon fc1_weatherDayIcon fc2_weatherDayIcon fc0_13_ww fc0_13_SunUp fc1_13_ww fc1_13_SunUp fc2_13_ww fc2_13_SunUp fc1_iconAPI fc2_iconAPI fc3_iconAPI fc0_symbol_day fc1_symbol_day fc2_symbol_day a_count FTUI;since=1556834294967;fmt=JSON&timestamp=1556834295015

Ich brauche jedoch die Pagebuttons für die Navigation. Hast du bereits Alternativen ausprobiert?

Viele Grüße
Andreas

dr4g0n

Ich habe die Lösung gefunden. :)

Erstmal alle Seiten deaktiviert und dann geguckt ob es funktioniert, danach Seite für Seite hinzu gefügt und immer wieder ausprobiert.
Dann auf den "kaputten" Seiten, alles geprüft und einige "Fehler" festgestellt (Bsp. fehlende/zuviele </div> etc).
Ich habe auch das Gefühl, dass es mit dem einem oder anderem Kommentiertem Text Probleme gab. 
Zudem solltest du die Menü-Seite prüfen (Page-Divs, fehlerhafte/unvollständige Menüpunkte etc.)

Nachdem ich alles beseitigt habe, funktioniert alles wieder Problemlos :)

somansch

Wie hast du verifiziert, dass der Fehler weg ist? An Hand der websockets URL (ohne Leerzeichen)?

Zitat von: dr4g0n am 03 Mai 2019, 00:15:13
Ich habe auch das Gefühl, dass es mit dem einem oder anderem Kommentiertem Text Probleme gab. 
Zudem solltest du die Menü-Seite prüfen (Page-Divs, fehlerhafte/unvollständige Menüpunkte etc.)

Hast du hierzu ein paar mehr Infos?

Danke vorab
Andreas

dr4g0n

Naja ich gehe mal davon aus, dass die Leerzeichen normal sind.
Zuerst kommen mit Komma getrennt die Devices und folgend die Readings (mit Leerzeichen statt Komma).

Verifiziert habe ich das ganze, indem ich Geräte über FHEM geschaltet hab und die States direkt in FTUI übernommen wurden.