FHEMWEB & longpoll & HM-CC-TC

Begonnen von fladdy, 24 November 2012, 18:27:44

Vorheriges Thema - Nächstes Thema

fladdy

                                                             

Moin zusammen,

ich wollte in meiner Web-App, die sich alle Infos aus FHEMWEB besorgt, den
longpoll-Mechanismus nutzen, um den Status meiner Devices bei Änderungen
automatisch zu aktualisieren. Wenn ich jetzt die gewünschte Temperatur an
meinem HM-CC-TC mit der "normalen" Web-Oberfläche einstelle, wird meinem
Frontend folgende Zeile geliefert:

Thermostat_Dachgeschoss;set_desired-temp 18.5;
id="Thermostat_Dachgeschoss" align="center" class="col2">20.5°C


Worauf ich (bzw. meine Funktion) "wartet", wäre so etwas wie

Thermostat_Dachgeschoss;desired-temp 18.5;
align="center" class="col2">20.5°C


also ohne 'set_'.  In den Events wird das, nachdem die Temperatur vom
HM-TC-CC akzeptiert wurde, auch so angezeigt; nur wird mir das nicht via
longpoll geliefert. Bei meinen Steckdosen sieht das wie erwartet aus:

Stehlampe;set_on;
class="col2">set_on

Stehlampe;on;
src="/fhem/icons/on" alt="on"/>


Kurze Frage also: Welche Events werden via 'longpoll' geliefert bzw. warum
fehlt die Zeile für den HM-TC-CC?

Grüße
Peter

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Kurze Frage also: Welche Events werden via 'longpoll' geliefert

Eigentlch alle.


> bzw. warum fehlt die Zeile für den HM-TC-CC?

Theorie:
  Falls der Browser per longpoll ein event bekommen hat, dann wird erstmal die
  Seite gerendert (element ausgetauscht), und danach FHEMWEB nach weiteren
  Events gefragt. Zwischen Rendern und Fragen ensteht also eine luecke, events
  koennen hier verloren gehen.

Falls die Theorie stimmt (und man das Problem fixen will :), dann muesste das
Verfahren mit longpoll umgebaut werden.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Matthias Gehre

                                                       

Man könnte die Verbindung offen halten, anstatt sie wieder neu aufzubauen.
Oder spricht da was dagegen?
Und dann in der fhemweb.js anstatt auf FW_pollConn.readyState == 4 (Data
finished loading)
auf FW_pollConn.readyState == 3 (Data begins loading/partial data loaded)
reagieren.


Am 25. November 2012 10:07 schrieb Rudolf Koenig :

> > Kurze Frage also: Welche Events werden via 'longpoll' geliefert
>
> Eigentlch alle.
>
>
> > bzw. warum fehlt die Zeile für den HM-TC-CC?
>
> Theorie:
>   Falls der Browser per longpoll ein event bekommen hat, dann wird erstmal
> die
>   Seite gerendert (element ausgetauscht), und danach FHEMWEB nach weiteren
>   Events gefragt. Zwischen Rendern und Fragen ensteht also eine luecke,
> events
>   koennen hier verloren gehen.
>
> Falls die Theorie stimmt (und man das Problem fixen will :), dann muesste
> das
> Verfahren mit longpoll umgebaut werden.
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

fladdy

                                                             

Ich weiß nicht, ich habe nicht das Gefühl, dass was verschluckt wird.
Entweder es wird nicht alles geliefert oder der Fehler ist in meinem
Javascrpt. Kennt sich einer gut aus?

Ich habe mal versucht einen Vergleich zu machen:

1.) telnet, inform on
===============
CUL_HM Thermostat_Dachgeschoss set_desired-temp 21.0
CUL_HM Thermostat_Dachgeschoss_Weather T: 20.4 H: 57
CUL_HM Thermostat_Dachgeschoss_Weather measured-temp: 20.4
CUL_HM Thermostat_Dachgeschoss_Weather humidity: 57
CUL_HM Thermostat_Dachgeschoss T: 20.4 H: 57
CUL_HM Thermostat_Dachgeschoss measured-temp: 20.4
CUL_HM Thermostat_Dachgeschoss humidity: 57
CUL_HM Thermostat_Dachgeschoss CommandAccepted: yes
CUL_HM Thermostat_Dachgeschoss_Climate CommandAccepted: yes
CUL_HM Thermostat_Dachgeschoss_Climate desired-temp: 21.0
CUL_HM Thermostat_Dachgeschoss desired-temp: 21.0

2. Ergebnis meiner longpoll-Schleife:
=============================

\nThermostat_Dachgeschoss;set_desired-temp 21.0;
20.3°C
\n""Thermostat_Dachgeschoss_Weather;T: 20.4 H: 57;
20.4°C
\nThermostat_Dachgeschoss;T: 20.4 H: 57;
20.4°C
\nThermostat_Dachgeschoss;T: 20.4 H: 57;
20.4°C
\n""Thermostat_Dachgeschoss_Climate;12 %;
°C
\nThermostat_Dachgeschoss_Climate;12 %;
°C
\nThermostat_Dachgeschoss;T: 20.4 H: 57;
20.4°C

=======================================================
Hier der Code, eingebunden via define longpoll HTTPSRV longpoll
/opt/fhem/www/longpoll longpoll als index.html im entsprechenden
Verzeichnis.




    test
   
   






--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

fladdy

                                                             

Ich hab' im developers-Bereich die Lösung meines Problems gefunden.
Wenn ich room=console setze, bekommoe ich alle events.
Nu kann ich weiter machen :-)


Am Sonntag, 25. November 2012 15:30:49 UTC+1 schrieb Fladdy:
>
> Ich weiß nicht, ich habe nicht das Gefühl, dass was verschluckt wird.
> Entweder es wird nicht alles geliefert oder der Fehler ist in meinem
> Javascrpt. Kennt sich einer gut aus?
>
> Ich habe mal versucht einen Vergleich zu machen:
>
> 1.) telnet, inform on
> ===============
> CUL_HM Thermostat_Dachgeschoss set_desired-temp 21.0
> CUL_HM Thermostat_Dachgeschoss_Weather T: 20.4 H: 57
> CUL_HM Thermostat_Dachgeschoss_Weather measured-temp: 20.4
> CUL_HM Thermostat_Dachgeschoss_Weather humidity: 57
> CUL_HM Thermostat_Dachgeschoss T: 20.4 H: 57
> CUL_HM Thermostat_Dachgeschoss measured-temp: 20.4
> CUL_HM Thermostat_Dachgeschoss humidity: 57
> CUL_HM Thermostat_Dachgeschoss CommandAccepted: yes
> CUL_HM Thermostat_Dachgeschoss_Climate CommandAccepted: yes
> CUL_HM Thermostat_Dachgeschoss_Climate desired-temp: 21.0
> CUL_HM Thermostat_Dachgeschoss desired-temp: 21.0
>
> 2. Ergebnis meiner longpoll-Schleife:
> =============================
>
> \nThermostat_Dachgeschoss;set_desired-temp 21.0;
> 20.3°C
> \n""Thermostat_Dachgeschoss_Weather;T: 20.4 H: 57;
> 20.4°C
> \nThermostat_Dachgeschoss;T: 20.4 H: 57;
> 20.4°C
> \nThermostat_Dachgeschoss;T: 20.4 H: 57;
> 20.4°C
> \n""Thermostat_Dachgeschoss_Climate;12 %;
> °C
> \nThermostat_Dachgeschoss_Climate;12 %;
> °C
> \nThermostat_Dachgeschoss;T: 20.4 H: 57;
> 20.4°C
>
> =======================================================
> Hier der Code, eingebunden via define longpoll HTTPSRV longpoll
> /opt/fhem/www/longpoll longpoll als index.html im entsprechenden
> Verzeichnis.
>
>
>
>
>     test
>    
>    
>
>
>
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com