suche funktion zur erweiterung des informchannels einer detailseite

Begonnen von frank, 17 Juni 2020, 10:04:24

Vorheriges Thema - Nächstes Thema

frank

moin,

ich suche eine funktion/api, um den informchannel eines devices (detailseite) um zusätzliche events eines 2. devices zu erweitern.

gibt es dazu eventuell beispiele oder tipps?

hintergrund sind homematic geräte, die in fhem häufig aus mehreren devices bestehen. ein hauptdevice, das infos über die reale kommunikation mit dem gerät bereitstellt, plus weitere channeldevices.

mein plan ist nun, auf jeder detailseite der channeldevices eine "anzeige" zu installieren, die den kommunikationsstatus wieder gibt, der aber nur im hauptdevice existiert.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Beta-User

Vermutlich nur eine Teillösung, aber hier habe ich mal was bzgl. devStateIcon vorgestellt: https://forum.fhem.de/index.php/topic,97430.msg906576.html#msg906576 (es gibt leicht aktualisierten Code hier).
Müßte alternativ auch mit einem userReading funktionieren, sofern irgendein Reading des 1. Devices aktualisiert wird?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Was mir einfaellt/Alternativen:

- readingsGroup konfigurieren.

- ein Modul implementieren, das auf Events aller betroffenen Devices hoert (wie structure), und diese als eigene Events wiederholt. Falls noetig, ueber $hash->{FW_detailFn} eigenen HTML-Code einschleusen. Womoeglich kan man das auch mit structure erreichen.

- eigenes JavaScript einbinden (per FHEMWEB JavaScripts Attribut), was per $(document).ready() in Aktion tritt, und ueber eine neue Inform-Verbindung vom FHEM-Server ueber alle Einzelgeraete sich benachrichtigt, und die Daten auf der Seite darstellt.

frank

hallo Beta-User,

mit fhem "boardmitteln" wäre meine idee nur um zu setzen, wenn ich die benötigten readings von allen hauptdevices jeweils in alle channeldevices über zb notifys "clone".

diese eventuell enorme zusatzlast sollte natürlich vermieden werden. zumal diese zusatzlast jeden tag über 24 std erzeugt werden würde, obwohl es in manchen channels vielleicht einmal bei neuinstallation für 10 minuten benötigt werden würde.

ganz schlechte idee, fällt also aus.

ich möchte ja ein hilfsmittel zur verfügung stellen, das die kommunikation "nur" visualisieren soll, und nicht durch zusätzliche systemlast eventuell noch erschwert.

bisher fehlt ja ein richtiges "feedback", wenn man zb eine message an ein batterie device sendet, welches erst aufwachen muss, um die kommunikation zu starten.
das verleitet scheinbar viele, auf alles zu klicken, was verfügbar ist. gestern erst habe ich wieder ein list mit 60 pending cmds gesehen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

Zitat von: rudolfkoenig am 17 Juni 2020, 12:23:03
- eigenes JavaScript einbinden (per FHEMWEB JavaScripts Attribut), was per $(document).ready() in Aktion tritt, und ueber eine neue Inform-Verbindung vom FHEM-Server ueber alle Einzelgeraete sich benachrichtigt, und die Daten auf der Seite darstellt.

so stelle ich mir das auch vor.
ein hm.js file gibt es auch schon, das bereits ein paar tools zur verfügung stellt. https://forum.fhem.de/index.php/topic,106959.0.html

mir fehlt nun zb ein beispiel, wie ich das am besten dem backend mitteile.

ich habe auch schon etwas in fhemweb.js gestöbert und FW_longpoll() gefunden. mir fehlt aber noch der durchblick, wie ich ansetzen kann.

ein paar zusätzliche tipps wären hilfreich.

am besten wäre natürlich eine erweiterung des informchannels nur um einzelne readings eines 2. devices.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Beta-User

Hi frank,

daher hatte ich ja angemerkt, dass das bestenfalls eine Teillösung ist - für die WT/RT's macht das auch nur dewegen (halbwegs) Sinn, weil ich nur die desired-Temp-Kanäle zur Steuerung nutze, das ist "nur" eine Verdoppelung der Abfrage diverser Readings von woanders her.

Was die Systemlast angeht, bin ich mir unsicher, gehe aber davon aus, dass devStateIcon nur ausgeführt wird, wenn es aktuell mind. einen Abnehmer dafür gibt, also das Gerät irgendwo auch angezeigt wird (?).

Ansonst ist das mit den Sub-Kanälen ein Thema, das nicht nur CUL_HM betrifft, auch wenn es da bei unbedarften Nutzern besonders "intensiv" zu beobachten ist. Das "Kommunikations-Visualisierungs-Thema" trifft man so ähnlich auch bei anderen Modulen an, ohne dass "assocatedWith" da sehr viel weiter hilft:
- ZWave - da habe ich einige 2-kanalige Aktoren, für die dann im Ergebnis 3 Devices gebildet werden; besonders beim Jalousie-Aktor ist das "unschön", weil der Lamellen-Befehl eigentlich nichts wirklich getrenntes ist - auch da habe ich das mit devStateIcon-Code zumindest optisch wieder so zusammengeflickt, dass man damit in FHEMWEB was anfangen kann... (Funktionalität macht sowieso überwiegend ASC) ;
- HUEDevice macht aus einer innr SP120 (Zwischenstecker mit Strommessfunktion) auch gleich drei Devices, ähnliches gilt für praktisch alle (Multi-) Sensoren;
(- MQTT2_DEVICE; da ist aber die "Konstruktion" des Moduls aufgrund des Protokoll-Designs sehr offen, so dass man da nicht Modulintern wirklich weiterkommen könnte)
Von daher wäre eine nicht auf hm.js beschränkte (generische) Lösung sicher auch für andere interessant.

Ansonsten geht das, was Rudi hier anregt, vermutlich eher in die Richtung, die du benötigst.

Wie dem auch sei: Viel Erfolg!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Im "neuen" Javascript:
- FW_widgets Eintrag hinzufuegen mit einer updateLine oder updateDev Funktion.
- body attribut longpollfilter anpassen/aendern (ist ein devspec), und FW_longpoll nochmal aufrufen.
(ungetestet).

frank

Zitat von: Beta-User am 17 Juni 2020, 12:57:08
Von daher wäre eine nicht auf hm.js beschränkte (generische) Lösung sicher auch für andere interessant.
da stimme ich dir zu.

übrigens:
du solltest vielleicht in deiner geposteten 99_...pm auf das neue reading commState ergänzen/umstellen. wer weiss wie lange "CMDS_done" & co noch in state zu finden sind.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

Zitat von: rudolfkoenig am 17 Juni 2020, 13:05:41
Im "neuen" Javascript:
- FW_widgets Eintrag hinzufuegen mit einer updateLine oder updateDev Funktion.
- body attribut longpollfilter anpassen/aendern (ist ein devspec), und FW_longpoll nochmal aufrufen.
(ungetestet).

danke.
dann versuche ich mich da mal durch zu "wurschteln".
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Beta-User

Zitat von: frank am 17 Juni 2020, 13:45:39
übrigens:
du solltest vielleicht in deiner geposteten 99_...pm auf das neue reading commState ergänzen/umstellen. wer weiss wie lange "CMDS_done" & co noch in state zu finden sind.
Danke für die Info, kommt auf meine ToDo :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

frank

Zitat von: rudolfkoenig am 17 Juni 2020, 13:05:41
Im "neuen" Javascript:
- FW_widgets Eintrag hinzufuegen mit einer updateLine oder updateDev Funktion.
- body attribut longpollfilter anpassen/aendern (ist ein devspec), und FW_longpoll nochmal aufrufen.
(ungetestet).

grundsätzlich habe ich meine vorstellungen so umsetzen können.

allerdings gibt es beim erneuern des informchannels probleme, wenn "attr webdevice longpoll websocket" gesetzt ist.
fhemweb zeigt teilweise die fehlermeldung: "fhemweb.js line 1054: TypeError: FW_pollConn is undefined".
(in der aktuellen fhemweb.js ist es zeile 1059)

diese probleme sind zudem wohl browser und/oder os spezifisch:

android 9/chrome => ok.
android 9/firefox => fehlermeldung, nach bestätigung ok.
winxp/chrome => kurzzeitig "connection lost...", dann ok.
winxp/firefox => fehlermeldung, nach bestätigung ok.

bei longpoll=1 gibt es anscheinend null probleme.


console nach refresh der detailseite (winxp/firefox):
10:37:49.712 FW_queryValue:{ReadingsVal("Thermostat.OZ_Climate","burstXmit","")}  fhemweb.js:502:5
10:37:49.876 FW_queryValue:{AttrVal("Thermostat.OZ_Climate","room","")}  fhemweb.js:502:5
jsonlist2 Thermostat.OZ_Climate  hm.js:24:17
10:37:50.252 Loading script /fhem/pgm2/station-clock.js  fhemweb.js:502:5
10:37:52.558 Inform-channel opened (websocket) with filter Thermostat.OZ_Climate  fhemweb.js:502:5
10:37:54.554 Inform-channel opened (websocket) with filter Thermostat.OZ,Thermostat.OZ_Climate  fhemweb.js:502:5
jsonlist2 Thermostat.OZ  hm.js:112:17
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=Thermostat.OZ_Climate;since=1592728633;fmt=JSON&fw_id=14808&timestamp=1592728671736 aufbauen.  fhemweb.js:1208:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=Thermostat.OZ_Climate;since=1592728633;fmt=JSON&fw_id=14808&timestamp=1592728671736 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1208:18
10:38:21.494 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=Thermostat.OZ,Thermostat.OZ_Climate;since=1592728633;fmt=JSON&fw_id=14808&timestamp=1592728674552 aufbauen.  fhemweb.js:1208:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=Thermostat.OZ,Thermostat.OZ_Climate;since=1592728633;fmt=JSON&fw_id=14808&timestamp=1592728674552 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1208:18
10:38:22.310 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
TypeError: FW_pollConn is undefined[Weitere Informationen]  fhemweb.js:1054:7
10:38:26.412 ERRMSG:<  fhemweb.js:502:5
10:38:26.534 Inform-channel opened (websocket) with filter Thermostat.OZ,Thermostat.OZ_Climate  fhemweb.js:502:5
10:38:27.104 Rcvd: ["Thermostat.OZ","Tsoll:6.5°C, Tist:21.1°C, Hist:65%, Mode:central, Bat:ok, Ventil:actuator","<div id=\u0022Thermostat.OZ\u0022  tit...(325)  fhemweb.js:502:5
10:38:27.298 ERRMSG:<  fhemweb.js:502:5
10:45:37.752 Rcvd: ["Thermostat.OZ","Tsoll:6.5°C, Tist:21.2°C, Hist:65%, Mode:central, Bat:ok, Ventil:actuator","<div id=\u0022Thermostat.OZ\u0022  tit...(325)  fhemweb.js:502:5




muss ich den aufruf von FW_longpoll() eventuell besser "vorbereiten", um kompatibel mit websocket zu werden?
oder kann fhemweb.js das besser handeln?


meine ready funktion:
$(document).ready(function() {
// get csrf token
var body = document.querySelector('body');
if(body != null) {csrf = body.getAttribute('fwcsrf');}
// get the device name
var seldiv = document.querySelector('div.makeSelect');
if(seldiv != null) {
var device = seldiv.getAttribute('dev');
// use jsonlist2 to get all device data
var cmd = 'jsonlist2 ' + device;
if(hm_debug) {console.log(cmd);}
var url = HM_makeCommand(cmd);
$.getJSON(url,function(data) {
var object = data.Results[0];
// we add the actions for CUL_HM only
if(object != null && object.Internals.TYPE == 'CUL_HM') {
if(object.Internals.DEF.length == 8) {
var devspec = object.Internals.device +','+ object.Internals.NAME;
body.setAttribute('longpollfilter',devspec);
FW_longpoll();
}
HM_createRegisterTable(object);
}
});
}
});
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

Ich vermute ein race-condition.
Ich habe eine zusaetzliche Pruefung in fhemweb.js, Zeile 1059 eingebaut, kannst Du es bitte testen?

frank

die prüfung verhindert jetzt zwar die fehlermeldung im firefox, dafür kommt aber keine verbindung mehr zustande (connection lost...), wenn ich versuche den informchannel zu ändern.

es macht mir den eindruck, als möchte ff den zuerst etablierten informchannel zunächst "sauber" beendet wissen.

14:15:43.640 FW_queryValue:{ReadingsVal("DimPBU01_chn01","pct","")}  fhemweb.js:502:5
14:15:43.662 FW_queryValue:{AttrVal("DimPBU01_chn01","room","")}  fhemweb.js:502:5
jsonlist2 DimPBU01_chn01  hm.js:25:17
14:15:43.740 Loading script /fhem/pgm2/station-clock.js  fhemweb.js:502:5
14:15:43.844 Inform-channel opened (websocket) with filter DimPBU01_chn01  fhemweb.js:502:5
14:15:44.806 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
jsonlist2 DimPBU01  hm.js:118:17
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01_chn01;since=1592828122;fmt=JSON&fw_id=37971&timestamp=1592828143840 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01_chn01;since=1592828122;fmt=JSON&fw_id=37971&timestamp=1592828143840 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:15:45.144 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828122;fmt=JSON&fw_id=37971&timestamp=1592828144804 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828122;fmt=JSON&fw_id=37971&timestamp=1592828144804 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:15:45.422 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
14:15:50.048 ERRMSG:<  fhemweb.js:502:5
14:15:50.150 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
14:15:50.326 ERRMSG:<  fhemweb.js:502:5
14:15:50.402 Rcvd:   fhemweb.js:502:5
14:15:50.428 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
14:15:50.470 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828150426 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828150426 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:15:50.476 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
14:15:55.376 ERRMSG:<  fhemweb.js:502:5
14:15:55.382 ERRMSG:<  fhemweb.js:502:5
14:15:55.478 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
14:15:55.504 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828155476 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828155476 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:15:55.508 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828155502 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828155502 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:15:55.512 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
14:16:00.412 ERRMSG:<  fhemweb.js:502:5
14:16:00.432 ERRMSG:<  fhemweb.js:502:5
14:16:00.528 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
14:16:00.532 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828160526 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828160526 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:16:00.534 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828160530 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828160530 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:16:00.538 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
14:16:05.444 ERRMSG:<  fhemweb.js:502:5
14:16:05.448 ERRMSG:<  fhemweb.js:502:5
14:16:05.556 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
14:16:05.558 Inform-channel opened (websocket) with filter DimPBU01,DimPBU01_chn01  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828165554 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828165554 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:16:05.576 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
Firefox kann keine Verbindung zu dem Server unter ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828165558 aufbauen.  fhemweb.js:1209:18
Die Verbindung zu ws://raspberrypi:8083/fhem?XHR=1&inform=type=status;filter=DimPBU01,DimPBU01_chn01;since=1592828130.546;fmt=JSON&fw_id=37971&timestamp=1592828165558 wurde unterbrochen, während die Seite geladen wurde.  fhemweb.js:1209:18
14:16:05.580 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<  fhemweb.js:502:5
14:16:10.482 ERRMSG:<  fhemweb.js:502:5
14:16:10.488 ERRMSG:<  fhemweb.js:502:5



ich habe die prüfung allerdings in meine fhemweb.js (20554) eingebaut, da die aktuelle version mit meinem fhem (Latest Revision: 20893) nicht "harmonierte".
ich muss mal schauen, dass ich mir eine "vernünftige" internetverbindung organisiere.

zumindestens bitte ich mal noch einen weiteren tester, der ebenfalls die probleme mit win10/firefox hat, ebenfalls die prüfung aus zu probieren.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

Kannst Du bitte versuchen, erst die aktive Verbindung mit FW_closeCon() zu schliessen, und dann deine Verbindung (evtl. mit setTimeout verzoegert) zu oeffnen?

frank

eine verzögerung ist scheinbar nutzlos.


die interessanteste beobachtung mit FW_closeConn() ist folgendes:

wenn ich nur FW_closeConn() ausführe bleibt die console ruhig und auch keine einblendungen von "connection lost..." im browsertab.
die verbindung vom browsertab zum fhemserver ist dann nur noch in richtung fhemserver aktiv, es gibt quasi kein rückkanal mehr.

ich kann zb ein attribut ändern. das erzeugt ja ein refresh, welches am ende erneut mein addon mit FW_closeConn() ausführt. ein folgendes "Save config" löscht auf anderen, "normalen" tabs nun auch das rote fragezeichen, auf diesem tab natürlich nicht mehr, da der rückkanal ja geschlossen ist.

ist das so vorgesehen?

edit: wahrscheinlich schon, da es "nur" um das schliessen der longpollverbindung geht.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html