Longpoll berücksichtigt nicht allowedDevicesRegexp

Begonnen von RPort, 14 September 2026, 11:02:17

Vorheriges Thema - Nächstes Thema

RPort

Ich nutze Homebridge (mit Homekit) zur Steuerung mit Siri.
Beim longpoll im Homekit kommen Json-Syntaxfehler - genauso (nur) im Raum everything in FHEM.
Ich habe versucht, den longpoll-filter in Homekit zu setzen, um nur die für Homekit relevanten Devices zu übertragen- das ist mir nicht gelunden. (Hier offtopic- aber, falls jemand weiß wie das geht- bitte Hinweise)

-> Die Filterung wollte ich in FHEM vornehmen.
Dazu ein FHEMWEB-Device names WEB_Homekit definiert sowie ein allowed-Device names allowed4Homekit.
In diesem allowed wollte ich die Devices ausschließen, die keinesfalls in Homekit benötigt werden bzw., die ich in Verdacht habe, den JSON-Fehler im longpoll zu verursachen:
z.B. mit attr allowed4Homekit allowedDevicesRegexp ((?!SolarForecast).)*
-> Die so ausgeschlossenen Devices werden in everything im WEB_Homekit nicht mehr angezeigt-> ok
-> Der JSON-Fehler tritt aber weiterhin bei Anzeige von everything im WEB_Homekit auf
-> Debugger zeigt in Zeile 1343 in fhemweg.js - var d = JSON.parse(l); - 
   dass die Daten für das ausgeschlossene Device weiterhin im longpoll übertragen werden (und den Fehler verursachen)

=> Nach meinem Verständnis soll allowed die Datensicherheit gewährleisten. Das ist verletzt, wenn man die Daten des longpoll im Debugger abgreifen kann.

rudolfkoenig

ZitatDas ist verletzt, wenn man die Daten des longpoll im Debugger abgreifen kann.
Danke fuer den Hinweis, habs gefixt und eingecheckt.

Bleibt noch das Problem des JSON Fehlers: kannst Du uns bitte die dazugehoerigen Daten zeigen?

RPort

Hallo Rudolf,
mein Test war negativ:

- ich habe einen update gemacht. Dabei wurde auch FHEMWEB aktualisiert. Shutdown restart.

1. Test:
attr allowed4Homekit allowedDevicesRegexp (?!SolarForecast).*
-> In der Oberfläche erscheinen alle Devices außer Solarforecast  - ok
-> Variable "input" im debugger enthält aber auch Events von Solarforecast- nicht ok - oder ist mein regex fehlerhaft?

2. Test:
attr allowed4Homekit allowedDevicesRegexp nothing
Es gibt kein Device "nothing", d.h. es sollten keinerlei Events im longpoll erscheinen
-> In der Oberfläche erscheinen keine Devices - ok
-> Variable "input"  enthält Events für alle? Devices - nicht ok

3. Test:
attr allowed4Homekit allowedDevices nothing
-> In der Oberfläche erscheinen keine Devices - ok
-> Debugger hält nicht mehr am Breakpoint - longpoll schickt anscheinend keine Daten mehr - ok

4. Test:
attr allowed4Homekit allowedDevices <comma separated list of device names>
-> In der Oberfläche erscheinen nur die gelisteten Devices
-> Variable "input"  enthält Events für  nicht gelistete Devices - nicht ok

rudolfkoenig

Vermutlich habe ich was uebersehen.
Jetzt muesste ich noch verstehen, was Du mit Variable "input" meinst.

RPort

Ich meine die Zeile 1318 (input = FW_pollConn.responseText;) in fhemweb.js

RPort

Ich habe nun wie folgt die erlaubten Devices aufgezählt
attr allowed4Homekit  allowedDevices  LichtInEinfahrt,...

KG_Kellertreppe_HEIZKTH  ist danach kein erlaubtes Device

Ich habe aufgerufen:  https://<raspberry>:<xxxx>/fhem?inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON
-> Die ersten 5 Zeilen des Ergebnisses zeigen Daten zu Devices, die laut allowed ausgeschlossen sein sollten - später tauchen diese Devices aber nicht mehr auf  --?
-> Danach kommen u.a. Daten zu  ReadingGroups - dabei erscheinen auch Daten zu nicht erlaubten Devices.
   - Die ReadingGroups selbst sollten eigentlich ganz ausgeschlossen sein - sie sind nicht bei allowed gelistet.
   - Es gibt Einträge zu  nicht erlaubten Devices, z.B. KG_Kellertreppe_HEIZKTH
     Beispiel: ReadingGroup ist Heizungsuebersicht
   ["Heizungsuebersicht-KG_Kellertreppe_HEIZKTH.measured-temp","<html>20.9</html>","<html>20.9</html>"]

rudolfkoenig

Das Beschriebene hoert sich nach einem ReadingsGroup Problem an, und ich kenne dieses Modul nur vom Hoerensagen.
Ich fuerchte ich brauche eine konkrete Konfiguration, was ich testen kann.

RPort

Ich habe den inform-request nochmal ausgeführt. Ich sehe zwei Probleme:
- die ersten 5 Einträge betreffen wieder Devices, die nicht bei allowed aufgeführt sind:
  Es handelt sich um STATEs zu..
  1  Modul Solarforecast  - mit SEEEHHHHR langem html
  2  notify zu Wärmepumpe
  3  ModbusAttr  zu Wärmepumpe
  4  ModbusAttr  zu Batterie
  5  notify  zu Batterie

Bemerkenswert ist, dass diese Devices später nie mehr auftrauchen.

- Readingsgroup Einträge:

Definition einer  der readingsGroups
[code]define Heizungsuebersicht readingsGroup .*(HEIZKTH|HEIZKTH_0.|thermos):desired-temp,measured-temp,!LEVEL,CONTROL_MODE,SET_POINT_MODE
attr Heizungsuebersicht alias desired-temp,measured-temp,LEVEL
attr Heizungsuebersicht room Readingsgroup
#   DEF        .*(HEIZKTH|HEIZKTH_0.|thermos):desired-temp,measured-temp,!LEVEL,CONTROL_MODE,SET_POINT_MODE
#   FUUID      6597c226-f33f-ef79-2afd-e9efb1dfb723108c
#   NAME       Heizungsuebersicht
#   NR         151
#   NTFY_ORDER 50-Heizungsuebersicht
#   STATE      Initialized
#   TYPE       readingsGroup
#   changed    0
#   mayBeVisible 1
#   CONTENT:
#     KG_Kellertreppe_HEIZKTH 1
#     ...

[/code]

rudolfkoenig

Soweit ich sehe, ignoriert readingsGroup das Allowed-Mechanismus.
Wenn readingsGroup selbst nicht sichtbar ist, werden keine readingsGroup Nachrichten zum Browser versendet.

Das Problem muss beim readingsGroup Maintainer adressiert werden.