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.
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?
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
Vermutlich habe ich was uebersehen.
Jetzt muesste ich noch verstehen, was Du mit Variable "input" meinst.
Ich meine die Zeile 1318 (input = FW_pollConn.responseText;) in fhemweb.js
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>"]
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.
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]
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.
Hallo Rudolf,
bzgl. readingsgroup habe ich ein eigenes topic eröffnet:
https://forum.fhem.de/index.php?topic=145464.0
========
- ich habe für alle readingsGroup-Devices das attr disabled 1 gesetzt -> im longpoll erscheinen sie (erwartungsgemäß) nicht mehr
- was mich allerdings nach wie vor irritiert:
??!! Die ersten 4 bis 5 Einträge im longpoll betreffen Devices, die nicht zu den allowed-Devices gehören ??!!
Danach tauchen diese Devices aber nicht mehr auf, d.h. der Rest der Ausgabe entspricht der Erwartung.
Woran kann das liegen? Sind anfangs noch Puffer gefüllt?
ZitatSind anfangs noch Puffer gefüllt?
Nein, aber FHEMWEB merkt fuer eine longpoll Verbindung (intern inform genannt) die erlaubten Geraete, damit die allowed Pruefung nicht fuer jede Nachricht durchgefuehrt wird.
D.h. nach Aenderung der allowed Attribute sollte man Reload machen, oder ein anderes Element (Raum/Geraet) auf der Oberflaechen auswaehlen.