Fibaro HC2 Websocket

hat jemand eine Ahnung, ob Fibaro im Frontend mit Websocket arbeitet und kann man diesen Service für ein eigenes
Interface anzapfen ??

Über die API kannst du die Status aller Module auslesen und auch Aktionen ausführen:

https://www.siio.de/board/thema/api-calls/

Gruß

Hallo,

ja das ist richtig, dann ist aber ein pollen notwendig. Löst Fibaro
das auch über Polling in Ihren Web UI ?

Das ist ja dann doch schon sehr CPU lastig.

Hallo,

ich habe mir den Ablauf der UI im HC2 mal genauer angeschaut.

Fibaro ruft per XHR ein Script auf ( http://XXXXX/api/refreshStates?last=66014&rand=0.07833933975478813&lang=de ).
Das Script läuft in einer Endlos Schleife. Wird das Script beendet, wird es sofort wieder gestartet.
Das Frontend steht also permanent mi dem Backend im Kontakt.
Wird allerdings ein Ereignis festgestellt, so wird das Script vom HC Server beendet und die Informationen des Ereignisses
an das Frontend weitergeleitet:

Der Ablauf ohne Ereignis :

– Client –
Aufruf der Url per XHR aus dem Frontend.
Warten auf ein Ergebnis vom Server

– HC2 –
Das Srcipt auf dem Server wird gestartet.
Das Script läuft nun in einer Endlos Schleife
Es Erfolgt kein Ereignis auf dem Server
Das Script wird nach spätestens 30 sec beendet.
Der Server gibt nun die Information an den Client zurück,
das nichts passiert ist.

– Client –
Der Client bekommt die Antwort vom Server
und reagiert entsprechend.

Und die Url wird erneut aufgerufen und das ganze geht von vorne los.

Der Ablauf mit Ereignis :

– Client –
Aufruf der Url per XHR aus dem Frontend.
Warten auf ein Ergebnis vom Server

– HC2 –
Das Srcipt auf dem Server wird gestartet.
Das Script läuft nun in einer Endlos Schleife
Der Server erkennt eine Status Änderung an einen Schalter
Das Script wird sofort beendet.
Der Server gibt nun die Information an den Client zurück,
das der Schalter XY seinen Status von 0 auf 1 geändert hat.

– Client –
Der Client bekommt die Antwort vom Server
und reagiert entsprechend.

Und die Url wird erneut aufgerufen und das ganze geht von vorne los.

So wird in Fibaro der aktuelle Status im UI aktualisiert.
Sauberer wäre das ganze mittels Websocket zu realisieren.

Aber es führen wie immer viele Wege nach Rom.