HUEBridge push api unterstützung

Begonnen von justme1968, 15 Juli 2021, 11:13:19

Vorheriges Thema - Nächstes Thema

Wardancer

Hi,

habs mir mal runtergeladen und beobachte mal meine Events ...

VG


Jamo

Zitatmal sehen ob es mit der angehängten version auch bei dir geht.
Works like a charme! Funktioniert einwandfrei, keine Auffäligkeiten.
Meine Musik jetzt nicht mehr ungewollt an und aus.
Danke ! ! !

PS: Das einzige was ich gesehen habe, ist das die Versionsnummer für Bridge und Device gleich geblieben ist, das müsste noch angepasst werden bevor die Version ins svn geht.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

justme1968

das klingt gut. d.h. auch beim fhem neu start kommen keine ungewollten events?


das ändern der version macht das svn beim ein- bzw beim auschecken.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Jamo

Hallo justme,
gerade nochmal geschaut:
- Keine ungewollten Events mehr
- Nichts was mir im Logfile nach dem Neustart an Events aufgefallen waere.
Also für mich funktionierts, komisch das es beim ratman noch nicht geht.

PS: Einen habe ich: 2022.01.21 13:27:57 1: PERL WARNING: Use of uninitialized value $ts in numeric le (<=) at ./FHEM/31_HUEDevice.pm line 1810.


@knorxi & @Wardancer: Wie siehts bei euch aus?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

justme1968

mir ist nicht ganz klar welche daten hier rein kommen die die warnung erzeugen deshalb wird statt der warnung ab morgen etwas debug info ausgespuckt. wenn es dann noch mal passiert bitte posten.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dk3572

Hallo,

hoffe mit meinem Anliegen bin ich hier richtig.

Seit dem Update von gestern funktionieren meine Bewegungsmelder von Xiaomi und Ikea nicht mehr.
In der Phoscon App wird Bewegung erfasst.

Gibt es hier einen Zusammenhang?

Danke und VG
Dieter

justme1968

das update war von heute... die version für morgen sollte die probleme behoben haben.

wenn du nicht so lange warten kannst nimm bitte die version direkt aus dem svn.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Violinux

hier genau das Gleiche ... ( neueste Version 25536 )

2022.01.21 16:21:17 1: PERL WARNING: Use of uninitialized value $ts in numeric le (<=) at ./FHEM/31_HUEDevice.pm line 1818.
2022.01.21 16:21:17 1: stacktrace:
2022.01.21 16:21:17 1:     main::__ANON__                      called by ./FHEM/31_HUEDevice.pm (1818)
2022.01.21 16:21:17 1:     main::HUEDevice_Parse               called by ./FHEM/30_HUEBridge.pm (130)
2022.01.21 16:21:17 1:     main::HUEBridge_Read                called by fhem.pl (3896)
2022.01.21 16:21:17 1:     main::CallFn                        called by fhem.pl (774)
2022.01.21 16:21:17 1: PERL WARNING: Use of uninitialized value $lastupdated in concatenation (.) or string at ./FHEM/31_HUEDevice.pm line 1819.
2022.01.21 16:21:17 1: stacktrace:
2022.01.21 16:21:17 1:     main::__ANON__                      called by ./FHEM/31_HUEDevice.pm (1819)
2022.01.21 16:21:17 1:     main::HUEDevice_Parse               called by ./FHEM/30_HUEBridge.pm (130)
2022.01.21 16:21:17 1:     main::HUEBridge_Read                called by fhem.pl (3896)
2022.01.21 16:21:17 1:     main::CallFn                        called by fhem.pl (774)

justme1968

die Zeilennummern passen nicht zur version. hast du fhem neu gestartet nach dem du die files aus dem svn geholt hast?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Violinux

Danke für den Hinweis, mea maxima culpa

habe nun 31_HUEDevice.pm 25538 2022-01-21 17:59:36 aus SVN genommen,
alle 15 HUE Devices getestet .... und ... klasse, alles läuft, keine Fehler mehr.

Danke für die tolle Arbeit.

Gruß,Uwe

stera

Hier läuft auch alles super.

Vielen Dank Andre! Sehr gute Arbeit!

Gruß,
Stefan

Wardancer


dk3572

Zitat von: justme1968 am 21 Januar 2022, 17:25:31
das update war von heute... die version für morgen sollte die probleme behoben haben.

wenn du nicht so lange warten kannst nimm bitte die version direkt aus dem svn.

Hallo justme,

nach Update von heute alles wieder ok.

Vielen Dank und schönes Wochenende.

VG Dieter

mmi

#118
Hallo zusammen,

ich habe gestern von Version fhem.pl:25359/2021-12-20 auf fhem.pl:25544/2022-01-22 upgedatet, und damit die Push API Unterstützung bekommen. Es funktioniert alles soweit wie bisher. Nun werden aber Verbindungsprobleme für HTTPS Verbindungen zur Hue Bridge geloggt, und zwar ziemlich exakt 60 Minuten nach der letzten Aktion der Bridge. Parallel dazu laufen noch alle 60s HTTP Requests zur Bridge; die sind kurzlebig und haben das Problem nicht. Sonstige Performanceprobleme gibt es nicht, ich habe mit apptime nach Auffälligkeiten geschaut. Netzwerk ist ebenfalls stabil

Ich versuche das hier mal ausführlicher aufzudröseln, mit FHEM verbose logs und tcpdumps.

Hier die Definition der Bridge:


Internals:
   DEF        192.168.10.207
   EventStream connected
   FUUID      5cb19795-f33f-99a2-dc4c-6b4eeea7efb297b8
   FVERSION   30_HUEBridge.pm:0.255530/2022-01-24
   INTERVAL   60
   NAME       Hue
   NOTIFYDEV  global
   NR         210
   NTFY_ORDER 50-Hue
   STATE      connected
   TYPE       HUEBridge
   apiversion 1.48.0
   application id 0c7aa15f-a4d5-42bf-8a29-a109653735ad
   bridgeid   001788FFFE496484
   has_v2_api 1
   host       192.168.10.207
   mac        00:17:88:49:64:84
   manufacturer Signify
   modelName  Philips hue bridge 2015
   modelid    BSB002
   name       Philips hue
   swversion  1949107040
   updatestate 0
   zigbeechannel 11
   READINGS:
     2021-12-04 19:40:12   lastError       invalid value, <unknown>, for parameter, scene
     2022-01-26 15:46:36   state           connected
     2022-01-25 12:09:02   swupdate        ZGB_100B_0103 - 67.91.1
   helper:
     apiversion 77824
     count      0
     last_config_timestamp 1643208396
     offsetUTC  3600
     updatestate 0
     HTTP_CONNECTION:
       EventSource 1
       FD         79
       NAME       
       addr       https://192.168.10.207:443
       auth       0
       buf       

       compress   1
       displayurl https://192.168.10.207/eventstream/clip/v2
       header     Accept: text/event-stream
HUE-Application-Key: ...
       host       192.168.10.207
       httpdata   
       httpdatalen -1
       httpheader HTTP/1.1 200 OK
Server: nginx
Date: Wed, 26 Jan 2022 14:44:41 GMT
Content-Type: text/event-stream; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self'
Cache-Control: no-store
Pragma: no-cache
Referrer-Policy: no-referrer
       httpversion 1.1
       hu_blocking 0
       hu_inProgress  HUEBridge_openEventStream:512 HUEBridge_fillBridgeInfo:571 HUEBridge_OpenDev:332 HUEBridge_Notify:3897 CallFn:3814 DoTrigger:678
       hu_port    443
       hu_portSfx
       hu_sslAdded 1
       incrementalTimeout 1
       keepalive  1
       loglevel   4
       method     GET
       noshutdown 1
       path       /eventstream/clip/v2
       protocol   https
       redirects  0
       timeout    3600
       type       event
       url        https://192.168.10.207/eventstream/clip/v2
       hash:
       sslargs:
     groups:
       1:
         class      Living room
         name       Wohnzimmer
         type       Room
         action:
           alert      select
           bri        170
           colormode  xy
           ct         447
           effect     none
           hue        8253
           sat        216
           xy:
             0.502
             0.4259
         lights:
           12
           11
           2
           5
         sensors:
         state:
         v2_service:
       2:
         class      Terrace
         name       Terrasse
         type       Room
         action:
           alert      select
           bri        254
           colormode  ct
           ct         366
           effect     none
           hue        8417
           sat        140
           xy:
             0.4573
             0.41
         lights:
           3
           4
         sensors:
         state:
         v2_service:
       3:
         class      Living room
         name       Arbeitszimmer
         type       Room
         action:
           alert      select
           bri        254
           colormode  xy
           ct         587
           effect     none
           hue        3565
           sat        250
           xy:
             0.561
             0.4042
         lights:
           1
           8
           10
         sensors:
         state:
         v2_service:
     ignored:
       Hue-S3     1
[...]
Attributes:
   createGroupReadings 1
   httpUtils  1
   icon       hue_filled_bridge_v2
   key        [...]
   noshutdown 1
   queryAfterSet 1
   room       Licht


Allgemein äussert sich das Problem so:

2022.01.25 15:12:27 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.25 16:12:28 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.25 17:12:30 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.25 18:12:32 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.25 21:20:47 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.25 23:27:01 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 00:42:16 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 01:42:16 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 02:42:18 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 03:42:20 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 04:42:22 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 07:35:42 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 10:34:58 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 12:17:03 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 13:17:03 2: Hue: http request failed: read from https://192.168.10.207:443 timed out


Die 60 Minuten zählen ab dem Zeitpunkt, nachdem die letzte (Schalt)aktion über die Bridge durchgeführt wurde. Im Beispiel oben wurde gestern Abends, heute Morgen und am Mittag zum Testen  geschaltet, was die Lücken >1h erklärt.

Auf dem Netzwerk sieht man, dass die HTTPS Verbindung aufgebaut wird, und Daten übertragen werden. Dann werden (bei mir) alle 20s (TCP) Keepalives zwischen Bridge und FHEM ausgetauscht. Wenn innerhalb von 60 Minuten eine Aktion auf der Bridge stattfindet, werden die Daten hierfür übertragen, danach geht es mit Keepalives weiter.


2022.01.26 10:34:58 4: Hue: EventStream: connecting
2022.01.26 10:34:58 5: HttpUtils url=https://192.168.10.207/eventstream/clip/v2 NonBlocking via https
2022.01.26 10:34:58 4: IP: 192.168.10.207 -> 192.168.10.207
2022.01.26 10:34:58 5: HttpUtils request header:
GET /eventstream/clip/v2 HTTP/1.1
Host: 192.168.10.207
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: keep-alive
HUE-Application-Key: ...
Accept: text/event-stream
Last-Event-ID: 1643186098:0

[...]

2022.01.26 11:16:42 4: Hue: dispatch: https://192.168.10.207/eventstream/clip/v2
2022.01.26 11:16:42 5: HUEBridge_dispatch: event
2022.01.26 11:16:42 5: Hue: EventStream: got id: 1643192202:0
2022.01.26 11:16:42 5: Hue: EventStream: got data: [{"creationtime":"2022-01-26T10:16:42Z","data":[{"id":"e67cdd1e-4bf4-4877-9364-f1a55527fd4e","id_v1":"/lights/1","on":{"on":true},"owner":{"rid":"916ef74f-7c9f-4f37-91b8-8ba15738dca2","rtype":"device"},"type":"light"}],"id":"28ce36f7-b001-41f1-9afa-2b64b17b498b","type":"update"}]
[...]


6116 10:34:58.432161498 192.168.10.240 → 192.168.10.207 TCP 74 46112 → 443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1 TSval=2316604012 TSecr=0 WS=1024
6117 10:34:58.432506281 192.168.10.207 → 192.168.10.240 TCP 66 443 → 46112 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460 SACK_PERM=1 WS=8
6118 10:34:58.432563551 192.168.10.240 → 192.168.10.207 TCP 54 46112 → 443 [ACK] Seq=1 Ack=1 Win=65536 Len=0
6119 10:34:58.435532623 192.168.10.240 → 192.168.10.207 TLSv1 571 Client Hello
[...]
8527 11:16:36.743239102 192.168.10.207 → 192.168.10.240 TCP 60 [TCP Keep-Alive] 443 → 46112 [ACK] Seq=1507 Ack=924 Win=31344 Len=0
8528 11:16:36.743314541 192.168.10.240 → 192.168.10.207 TCP 54 [TCP Keep-Alive ACK] 46112 → 443 [ACK] Seq=924 Ack=1508 Win=70656 Len=0
8529 11:16:42.781006405 192.168.10.207 → 192.168.10.240 TLSv1.2 395 Application Data
8530 11:16:42.781159357 192.168.10.240 → 192.168.10.207 TCP 54 46112 → 443 [ACK] Seq=924 Ack=1849 Win=72704 Len=0
[...]
8593 11:17:23.463271451 192.168.10.207 → 192.168.10.240 TCP 60 [TCP Keep-Alive] 443 → 46112 [ACK] Seq=7960 Ack=924 Win=31344 Len=0
8594 11:17:23.463331896 192.168.10.240 → 192.168.10.207 TCP 54 [TCP Keep-Alive ACK] 46112 → 443 [ACK] Seq=924 Ack=7961 Win=91136 Len=0
[...]


60 Minuten nach der letzten Aktion wird die Verbindung dann beendet/abgebrochen, und wieder neu aufgebaut:


2022.01.26 12:17:03 4: Hue: dispatch: https://192.168.10.207/eventstream/clip/v2
2022.01.26 12:17:03 5: HUEBridge_dispatch: event
2022.01.26 12:17:03 2: Hue: http request failed: read from https://192.168.10.207:443 timed out
2022.01.26 12:17:03 2: Hue: EventStream: terminated
2022.01.26 12:17:03 4: Hue: EventStream: closing
2022.01.26 12:17:03 4: Hue: EventStream: closed
2022.01.26 12:17:03 4: Hue: EventStream: connecting
2022.01.26 12:17:03 5: HttpUtils url=https://192.168.10.207/eventstream/clip/v2 NonBlocking via https
2022.01.26 12:17:03 4: IP: 192.168.10.207 -> 192.168.10.207
2022.01.26 12:17:03 5: HttpUtils request header:
GET /eventstream/clip/v2 HTTP/1.1
Host: 192.168.10.207
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: keep-alive
Last-Event-ID: 1643192222:0
Accept: text/event-stream
HUE-Application-Key: ...

2022.01.26 12:17:03 4: Hue: dispatch: https://192.168.10.207/eventstream/clip/v2
2022.01.26 12:17:03 5: HUEBridge_dispatch: event
2022.01.26 12:17:03 4: Hue: EventStream: connected
2022.01.26 12:17:03 5: Hue: ignoring: hi
2022.01.26 12:17:03 5: HttpUtils url=https://192.168.10.207/clip/v2/resource NonBlocking via https
2022.01.26 12:17:03 4: IP: 192.168.10.207 -> 192.168.10.207
2022.01.26 12:17:03 5: HttpUtils request header:
GET /clip/v2/resource HTTP/1.0
Host: 192.168.10.207
User-Agent: fhem
Accept-Encoding: gzip,deflate
HUE-Application-Key: ...

2022.01.26 12:17:03 4: https://192.168.10.207/clip/v2/resource: HTTP response code 200
2022.01.26 12:17:03 5: HttpUtils https://192.168.10.207/clip/v2/resource: Got data, length: 62905
2022.01.26 12:17:03 5: HttpUtils response header:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 26 Jan 2022 11:17:03 GMT
Content-Type: application/json
Connection: close
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self'
Cache-Control: no-store
Pragma: no-cache
Referrer-Policy: no-referrer
2022.01.26 12:17:03 4: Hue: dispatch: https://192.168.10.207/clip/v2/resource
2022.01.26 12:17:03 5: HUEBridge_dispatch: resource



11710 12:16:26.503719258 192.168.10.207 → 192.168.10.240 TCP 60 [TCP Keep-Alive] 443 → 46112 [ACK] Seq=7960 Ack=924 Win=31344 Len=0
11711 12:16:26.503801439 192.168.10.240 → 192.168.10.207 TCP 54 [TCP Keep-Alive ACK] 46112 → 443 [ACK] Seq=924 Ack=7961 Win=91136 Len=0
11712 12:16:46.983819365 192.168.10.207 → 192.168.10.240 TCP 60 [TCP Keep-Alive] 443 → 46112 [ACK] Seq=7960 Ack=924 Win=31344 Len=0
11713 12:16:46.983909992 192.168.10.240 → 192.168.10.207 TCP 54 [TCP Keep-Alive ACK] 46112 → 443 [ACK] Seq=924 Ack=7961 Win=91136 Len=0
11714 12:17:03.005035541 192.168.10.240 → 192.168.10.207 TLSv1.2 85 Encrypted Alert
11715 12:17:03.005390150 192.168.10.240 → 192.168.10.207 TCP 54 46112 → 443 [FIN, ACK] Seq=955 Ack=7961 Win=91136 Len=0
11716 12:17:03.006250829 192.168.10.207 → 192.168.10.240 TLSv1.2 85 Encrypted Alert
11717 12:17:03.006338913 192.168.10.240 → 192.168.10.207 TCP 54 46112 → 443 [RST] Seq=956 Win=0 Len=0
11718 12:17:03.007641859 192.168.10.240 → 192.168.10.207 TCP 74 39094 → 443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1 TSval=2322728588 TSecr=0 WS=1024
11719 12:17:03.008054080 192.168.10.207 → 192.168.10.240 TCP 66 443 → 39094 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460 SACK_PERM=1 WS=8
11720 12:17:03.008190370 192.168.10.240 → 192.168.10.207 TCP 54 39094 → 443 [ACK] Seq=1 Ack=1 Win=65536 Len=0


Dann geht das Ganze wieder von vorn los.

Neben den HTTP Abfragen und obigen HTTPS Verbindungen gibt es auch noch eine kurzlebige HTTPS Verbindung, die nach dem Neuverbindungen aufgebaut wird, und nach ein paar Datentransfers ordentlich wieder abgebaut wird.


11732 12:17:03.119275801 192.168.10.240 → 192.168.10.207 TCP 74 39096 → 443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1 TSval=2322728699 TSecr=0 WS=1024
11733 12:17:03.119635071 192.168.10.207 → 192.168.10.240 TCP 66 443 → 39096 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460 SACK_PERM=1 WS=8
11734 12:17:03.119744351 192.168.10.240 → 192.168.10.207 TCP 54 39096 → 443 [ACK] Seq=1 Ack=1 Win=65536 Len=0
[...]
11866 12:17:03.358786646 192.168.10.207 → 192.168.10.240 TCP 60 443 → 39096 [FIN, ACK] Seq=65456 Ack=841 Win=30272 Len=0
11867 12:17:03.358811600 192.168.10.240 → 192.168.10.207 TLSv1.2 85 Encrypted Alert
11868 12:17:03.359013713 192.168.10.240 → 192.168.10.207 TCP 54 39096 → 443 [FIN, ACK] Seq=872 Ack=65457 Win=211968 Len=0
11869 12:17:03.359328609 192.168.10.207 → 192.168.10.240 TCP 60 443 → 39096 [RST] Seq=65456 Win=0 Len=0
11870 12:17:03.359432038 192.168.10.207 → 192.168.10.240 TCP 60 443 → 39096 [RST] Seq=65457 Win=0 Len=0


Viele Grüsse


Christian

justme1968

hast du im netz irgendetwas zwischen fhem under der bridge? router, firewall oder ähnliches?

die verbidngun für die events ist das was du als lange verbindung die offen bleibt siehst. die wird von fhem zur bridge aufgebaut und per http keep alive offen gehalten. die bridge pushed darüber die events per sse/eventstream protokoll. da fhem aktuell nur hatt 1 spricht geht das per http keepalive und nicht per multiplexed streams. es kann sein das die bridge diese verbindung nach einer weile zu macht. das wird aber erkannt und neu verbunden. das zeigt sich aber nicht als timeout.

von den tcp keepalives bekomme ich auf anwendungsebene nichts mit. wenn sie ausbleiben ergibt das aber eventuell den timeout den du siehst. solche symptome würde ich erwarten wenn es eine firewall dazwischen gibt die nach einer weile unaktivität zu macht. in einem 'normalen' netz sollte das nicht passieren. bisher hat das auch noch niemand sonst beobachtet. deshalb ist es zumindest mal kein allgemeines problem.

ansonsten: die kurzen verbindungen sind das pollen alle 60 sekunden. das ist (noch) drin falls mit dem eventstream was schief geht. da es wie gesagt http 1 ist und nicht 2 sind das alles getrennte verbindungen statt die eventstream verbindung mit zu verwenden. deshalb hat das pollen auch keinen einfluss auf die timeouts des eventstream.

du siehst ich bin etwas ratlos...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968