Im web-interface wird die Ansicht nicht immer korrekt upgedated.
Beispiel ist HM. Wenn ein licht geschaltet wird komme erst der status "set_on" und dann "on".
Korrekt funktioniert es (2 updates) wenn
- man es in einem externen Fenster oder von einer console aus macht
- man das devstateicon anclickt UND xhr genutzt wird
inkorrekt ist es wenn
- man ein webCmd im Fenster anclickt
- man longpoll abschaltet und das devstateicon anclickt
Im fehlerfall wird nur das erste Event verarbeitet (set_on) aber nicht mehr das 2. Auch andere Readings auf der webseite, wenn sie sich zeitgleich ändern sollten, bleiben beim ersten Ereigniss stehen (Beispiel: der state des device bleibt auf CMD_processing und geht nicht auf CMDS_done)
Parallel laufende webseiten, von denen aus keine kommandos gesendet werden sind aktuell, habe keine Fehler
Gruss Martin
Wenn man longpoll abschaltet, dann wird es fuer HM nie richtig funktionieren, prinzipbedingt. Das war der Grund, warum ich mit set_on lange nicht anfreunden konnte.
Falls es bei angeschalteten longpoll auch nicht funktioniert, dann bitte folgendes beschreiben:
- FHEMWEB Definition mit allen Attributen
- Definition eines betroffenen Geraetes mit allen Attributen
- Event-Mitschnitt beim Schalten.
- Browser/OS
- worauf man geklickt hat, und was man bekommt.
Hallo Rudi,
dein Problem mit set_ verstehe ich nicht. Das web-interface muss schnell genug sein, alle Änderungen mitzubekommen. Da sehe ich keinen Spielraum. Es könnte schließlich auch anderen Ereignisse geben, die quasi gleichzeitig kommen. Zumindest die letzte Event darf nicht verloren gehen.
Ansonsten ist set_ m.E. hilfreich falls kein ack kommt.
Nachstellen sollte es eigentlich einfach sein. Es konnte bisher jeder nachvollziehen wenn man es so macht wie einleitend beschrieben.
longpoll war nur als Hinweis zu verstehen. das Icon, oder besser der link dahinter ist grundlegend anders bei longpoll - das macht den Unterschied. evtl spart der xhr mode die Entscheidende Performance?
Die commands von webCmd sind immer 'nur' mit einem Link hinterlegt. Bei Nutzung des Links ist irgend etwas zu langsam.
Hier die Daten
Gruss und Danke Martin
Zitatfhem> list LichtFH
Internals:
DEF 1A0A0201
NAME LichtFH
NR 93
STATE off
TYPE CUL_HM
chanNo 01
device LichtDev
peerList FB_Btn_11,Tast_01,self01,
Readings:
2013-12-28 09:56:42 CommandAccepted yes
2013-12-27 10:10:31 R-FB_Btn_11-lgActionType jmpToTarget
2013-12-27 10:10:31 R-FB_Btn_11-lgCtDlyOff geLo
2013-12-27 10:10:31 R-FB_Btn_11-lgCtDlyOn geLo
2013-12-27 10:10:31 R-FB_Btn_11-lgCtOff geLo
2013-12-27 10:10:31 R-FB_Btn_11-lgCtOn geLo
2013-12-27 10:10:31 R-FB_Btn_11-lgCtValHi 100
2013-12-27 10:10:31 R-FB_Btn_11-lgCtValLo 50
2013-12-27 10:10:31 R-FB_Btn_11-lgMultiExec on
2013-12-19 09:27:52 R-FB_Btn_11-lgOffDly 0 s
2013-12-19 09:27:52 R-FB_Btn_11-lgOffTime 111600 s
2013-12-27 10:10:31 R-FB_Btn_11-lgOffTimeMode absolut
2013-12-19 09:27:52 R-FB_Btn_11-lgOnDly 0 s
2013-12-19 09:27:52 R-FB_Btn_11-lgOnTime 111600 s
2013-12-27 10:10:31 R-FB_Btn_11-lgOnTimeMode absolut
2013-12-27 10:10:31 R-FB_Btn_11-lgSwJtDlyOff off
2013-12-27 10:10:31 R-FB_Btn_11-lgSwJtDlyOn on
2013-12-27 10:10:31 R-FB_Btn_11-lgSwJtOff dlyOn
2013-12-27 10:10:31 R-FB_Btn_11-lgSwJtOn dlyOff
2013-12-27 10:10:31 R-FB_Btn_11-shActionType jmpToTarget
2013-12-27 10:10:31 R-FB_Btn_11-shCtDlyOff geLo
2013-12-27 10:10:31 R-FB_Btn_11-shCtDlyOn geLo
2013-12-27 10:10:31 R-FB_Btn_11-shCtOff geLo
2013-12-27 10:10:31 R-FB_Btn_11-shCtOn geLo
2013-12-27 10:10:31 R-FB_Btn_11-shCtValHi 100
2013-12-27 10:10:31 R-FB_Btn_11-shCtValLo 50
2013-12-19 09:27:52 R-FB_Btn_11-shOffDly 0 s
2013-12-19 09:27:52 R-FB_Btn_11-shOffTime 111600 s
2013-12-27 10:10:31 R-FB_Btn_11-shOffTimeMode absolut
2013-12-19 09:27:52 R-FB_Btn_11-shOnDly 0 s
2013-12-19 09:27:52 R-FB_Btn_11-shOnTime 111600 s
2013-12-27 10:10:31 R-FB_Btn_11-shOnTimeMode absolut
2013-12-27 10:10:31 R-FB_Btn_11-shSwJtDlyOff off
2013-12-27 10:10:31 R-FB_Btn_11-shSwJtDlyOn on
2013-12-27 10:10:31 R-FB_Btn_11-shSwJtOff dlyOn
2013-12-27 10:10:31 R-FB_Btn_11-shSwJtOn dlyOff
2013-12-27 10:10:32 R-Tast_01-lgActionType jmpToTarget
2013-12-27 10:10:32 R-Tast_01-lgCtDlyOff geLo
2013-12-27 10:10:32 R-Tast_01-lgCtDlyOn geLo
2013-12-27 10:10:32 R-Tast_01-lgCtOff geLo
2013-12-27 10:10:32 R-Tast_01-lgCtOn geLo
2013-12-27 10:10:32 R-Tast_01-lgCtValHi 100
2013-12-27 10:10:32 R-Tast_01-lgCtValLo 50
2013-12-27 10:10:32 R-Tast_01-lgMultiExec on
2013-12-19 09:27:53 R-Tast_01-lgOffDly 0 s
2013-12-19 09:27:53 R-Tast_01-lgOffTime 111600 s
2013-12-27 10:10:32 R-Tast_01-lgOffTimeMode absolut
2013-12-19 09:27:53 R-Tast_01-lgOnDly 0 s
2013-12-19 09:27:53 R-Tast_01-lgOnTime 111600 s
2013-12-27 10:10:32 R-Tast_01-lgOnTimeMode absolut
2013-12-27 10:10:32 R-Tast_01-lgSwJtDlyOff off
2013-12-27 10:10:32 R-Tast_01-lgSwJtDlyOn on
2013-12-27 10:10:32 R-Tast_01-lgSwJtOff dlyOn
2013-12-27 10:10:32 R-Tast_01-lgSwJtOn dlyOff
2013-12-27 10:10:32 R-Tast_01-shActionType jmpToTarget
2013-12-27 10:10:32 R-Tast_01-shCtDlyOff geLo
2013-12-27 10:10:32 R-Tast_01-shCtDlyOn geLo
2013-12-27 10:10:32 R-Tast_01-shCtOff geLo
2013-12-27 10:10:32 R-Tast_01-shCtOn geLo
2013-12-27 10:10:32 R-Tast_01-shCtValHi 100
2013-12-27 10:10:32 R-Tast_01-shCtValLo 50
2013-12-19 09:27:53 R-Tast_01-shOffDly 0 s
2013-12-19 09:27:53 R-Tast_01-shOffTime 111600 s
2013-12-27 10:10:32 R-Tast_01-shOffTimeMode absolut
2013-12-19 09:27:53 R-Tast_01-shOnDly 0 s
2013-12-19 09:27:53 R-Tast_01-shOnTime 111600 s
2013-12-27 10:10:32 R-Tast_01-shOnTimeMode absolut
2013-12-27 10:10:32 R-Tast_01-shSwJtDlyOff off
2013-12-27 10:10:32 R-Tast_01-shSwJtDlyOn on
2013-12-27 10:10:32 R-Tast_01-shSwJtOff dlyOn
2013-12-27 10:10:32 R-Tast_01-shSwJtOn dlyOff
2013-12-27 10:10:33 R-self01-lgActionType jmpToTarget
2013-12-27 10:10:33 R-self01-lgCtDlyOff geLo
2013-12-27 10:10:33 R-self01-lgCtDlyOn geLo
2013-12-27 10:10:33 R-self01-lgCtOff geLo
2013-12-27 10:10:33 R-self01-lgCtOn geLo
2013-12-27 10:10:33 R-self01-lgCtValHi 100
2013-12-27 10:10:33 R-self01-lgCtValLo 50
2013-12-27 10:10:33 R-self01-lgMultiExec on
2013-12-19 09:27:54 R-self01-lgOffDly 0 s
2013-12-19 09:27:54 R-self01-lgOffTime 111600 s
2013-12-27 10:10:33 R-self01-lgOffTimeMode absolut
2013-12-19 09:27:54 R-self01-lgOnDly 0 s
2013-12-19 09:27:54 R-self01-lgOnTime 111600 s
2013-12-27 10:10:33 R-self01-lgOnTimeMode absolut
2013-12-27 10:10:33 R-self01-lgSwJtDlyOff off
2013-12-27 10:10:33 R-self01-lgSwJtDlyOn on
2013-12-27 10:10:33 R-self01-lgSwJtOff dlyOn
2013-12-27 10:10:33 R-self01-lgSwJtOn dlyOff
2013-12-27 10:10:33 R-self01-shActionType jmpToTarget
2013-12-27 10:10:33 R-self01-shCtDlyOff geLo
2013-12-27 10:10:33 R-self01-shCtDlyOn geLo
2013-12-27 10:10:33 R-self01-shCtOff geLo
2013-12-27 10:10:33 R-self01-shCtOn geLo
2013-12-27 10:10:33 R-self01-shCtValHi 100
2013-12-27 10:10:33 R-self01-shCtValLo 50
2013-12-19 09:27:54 R-self01-shOffDly 0 s
2013-12-19 09:27:54 R-self01-shOffTime 111600 s
2013-12-27 10:10:33 R-self01-shOffTimeMode absolut
2013-12-19 09:27:54 R-self01-shOnDly 0 s
2013-12-19 09:27:54 R-self01-shOnTime 111600 s
2013-12-27 10:10:33 R-self01-shOnTimeMode absolut
2013-12-27 10:10:33 R-self01-shSwJtDlyOff no
2013-12-27 10:10:33 R-self01-shSwJtDlyOn no
2013-12-27 10:10:33 R-self01-shSwJtOff dlyOn
2013-12-27 10:10:33 R-self01-shSwJtOn dlyOff
2013-12-27 10:10:27 R-sign off
2013-12-28 09:56:42 deviceMsg off (to iohl1)
2013-12-28 09:56:42 level 0 %
2013-12-28 09:56:42 pct 0
2013-12-27 10:10:28 peerList FB_Btn_11,Tast_01,self01,
2013-12-28 09:56:42 recentStateType ack
2013-12-28 09:56:42 state off
2013-12-28 09:56:42 timedOn off
2013-12-27 18:04:47 trigLast Tast_01 :short
2013-12-27 18:04:47 trig_Tast_01 short
Helper:
peerIDsRaw ,1A0A0201,194DBD01,1820830B,00000000
Bm:
Cul_hm_set:
cnt 305
mAr HASH(0xde7da8); LichtFH; toggle
max 106
tot 2579
Role:
chn 1
Shadowreg:
Attributes:
event-on-change-reading .*
expert 1
model HM-LC-SW2-FM
peerIDs 00000000,1820830B,194DBD01,1A0A0201,
room CUL_HM,Licht,Actor
webCmd toggle:on:off:statusRequest
###############################################
hem> list WEB
Internals:
CONNECTS 213
DEF 8083 global
FD 5
NAME WEB
NR 8
NTFY_ORDER 50-WEB
PORT 8083
STATE Initialized
TYPE FHEMWEB
Helper:
Bm:
Fw_attr:
cnt 4
mAr
max 0
tot 0
Fw_get:
cnt 5
mAr
max 0
tot 0
Fw_notify:
cnt 3968
mAr HASH(0x75c7f8); HASH(0xdee380)
max 2
tot 11
Fw_read:
cnt 204
mAr HASH(0x75c7f8)
max 9
tot 432
Fw_set:
cnt 9
mAr
max 0
tot 0
Attributes:
roomIcons Everything:icoEverything Heating:icoHEIZUNG Licht:on Common:icoSYSTEM Heating:icoHEIZUNG IOdev:Prev Rollo:shutter_3
####################################################
#Events beim clicken auf 'off' des webCmd
# das icon bleibt auf dem set_off pendant,
# der sich auch ändernde Status des zugehörigen LichtDev bleibt auf CMDs_processing...
# 'off' wird nicht verarbeitet
2013-12-28 16:33:07.397 CUL_HM LichtFH set_off
2013-12-28 16:33:07.808 CUL_HM LichtFH off
#####################################################
#################webseiten-code##################
<tr class="even"><td><div class="col1"><a href="/fhem?detail=LichtFH">LichtFH</a></div></td>
<td informId="LichtFH"><div id="LichtFH" class="col2"><a onClick="FW_cmd('/fhem?XHR=1&cmd.LichtFH=set LichtFH on&room=Licht')"><img class=' set_off' src="/fhem/images/default/set_off.png" alt="set_off" title="set_off"></a></div></td>
<td><div class="col3"><a href="/fhem?cmd.LichtFH=set LichtFH toggle&room=Licht">toggle</a></div></td>
<td><div class="col3"><a href="/fhem?cmd.LichtFH=set LichtFH on&room=Licht">on</a></div></td>
<td><div class="col3"><a href="/fhem?cmd.LichtFH=set LichtFH off&room=Licht">off</a></div></td>
<td><div class="col3"><a href="/fhem?cmd.LichtFH=set LichtFH statusRequest&room=Licht">statusRequest</a></div></td>
</tr>
# probleme gibt es bei links (href). Es funktioniert mit "onClick"
###############################
browser Firefox 26.0
internet explorer 11.0.9600
Windows 8
FB7390 Linux fritz.fonwlan.box 2.6.28.10 #1 Mon May 13 14:27:51 CEST 2013 mips GNU/Linux
Definition & Attribut haette wirklich gereicht, die Readings verwirren nur. Ich kann es aber auch nicht Nachstellen, beim Click auf off kommt nur "Unknown argument off, choose one of clear:readings,register,rssi,msgEvents getConfig getRegRaw peerBulk regBulk regSet sign:on,off ", egal ob es mit oder ohne ein CUL.
Bei meinem einzigen HM-Schalter funktioniert sowohl das webCmd als auch das Klicken auf dem Icon. Wohlgemerkt nur mit longpoll, das ist aber seit einiger Zeit default.
Ich weiss immer noch nicht, ob Du das ganze Bild siehst, deswegen hier nochmal im Detail:
- ohne longpoll: Man klickt, FHEMWEB kriegt ein HTTP Request mit Befehl, setzt das Befehl ab, und danach erstellt eine Antwort HTML-Seite, was genauso aussieht wie die Alte, aber mit aktuellen Status des betroffnen Geraetes. Fuer HM ist das set_on, da "set" erst 0.5 Sekunden spaeter kommt. Bis dahin ist aber FHEMWEB dran, bzw. fertig.
- mit longpoll: eine Javascript Funktion setzt das Befehl ab, was von FHEMWEB zwar ausgefuehrt wird, es wird aber nichts zurueckgeliefert. Parallel dazu "lauscht" eine zweite Verbindung per "longpoll", und darueber werden alle Events die den aktuellen Raum betreffen, an den Browser geschickt. Hier werden die Daten vom JavaScript interpretiert, und Status oder Zeitstempel neu gemalt. Javascript muss natuerlich aktiviert sein fuer diese Seite.
-> Ohne longpoll+JavaScript ist es nicht moeglich dem Browser Nachrichten zu schicken, der HM-Status bleibt auf set_on.
Internet-Explorer teste ich nicht, Firefox funktioniert.
Btw. es gibt einen aktuellen Bug mit longpoll, falls auf der Seite auch noch SVG-Plots sichtbar sind.
Und in der Detail-Ansicht wird due Zeile state nie aktualisiert.
hier ist übrigens ein screeenshot wie es dann ausschaut: http://forum.fhem.de/index.php/topic,17913.msg118975.html#msg118975 (http://forum.fhem.de/index.php/topic,17913.msg118975.html#msg118975)
es scheint insofern mit dem svg problem zu tun zu haben das dann da auch die seite neu aufgebaut wird. beim seitenaufbau scheint dann immer die zweite aktualisierung per longpoll verloren zu gehen.
ich versuche noch mal zu debuggen und mehr rauszufinden.
auf meiner webseite ist kein svg zu sehen (generell gibt es welche - auf anderen browser-tabs - falls das auch zählt..??)
wenn 'off' nicht funktioniert ist dein schalter wohl nicht korrekt parametrisiert. Evtl hat du versucht das Device zu schalten und nicht den channel.
CUL_HM gibt dem User initial wenn verfügbar ein webCmd, da mit er arbeiten kann. Wenn du später channel und device trennst gibt es das Kommando nicht mehr...
Readings kannst du sicher ausblenden, ist ja ein kompakter Block. Filterst du nur Perl mit den Augen? ;)
Ich denke es war klar:
mit longpoll geht das clicken auf webCmds bei mir (und anderen)
nicht. Ohne longpoll interessiert mich nicht, war nur ein Hinweis für dich.
und gerade noch einmal probiert - nur ein browser-tab,
kein svg-plotZitatInternet-Explorer teste ich nicht, Firefox funktioniert.
internet explorer war eine 2. referenz - dachte mir schon das dir das nicht passt. Zeigt aber dass es kein Browser-eigenes Problem ist. Sollte auch nur ein Hinweis sein.
firefox funktioniert
nichtwenn ich der einzige wäre, wäre es mein lokales Problem. Es wurde aber von 3 Seiten in homematic beanstandet.
Gruss Martin
Zitatgenerell gibt es welche - auf anderen browser-tabs - falls das auch zählt..
Nein, sowas zaehlt nicht. Und ich habe diesen Bug gerade behoben.
Zitatwenn 'off' nicht funktioniert ist dein schalter wohl nicht korrekt parametrisiert.
Ich habe alle Attribute hinzugefuegt, und ein Geraet mit 1A0A02 definiert. Muss ich auch Readings hinzufuegen?
ZitatIch denke es war klar: mit longpoll geht das clicken auf webCmds bei mir (und anderen) nicht.
Und bei meinem eigenen Geraet schon, es sei denn ich versuche dein Beispiel zu testen, aber da komme ich nicht mal soweit.
Readings sind nicht notwendig. Die sollten auch keine Rolle beim Aufbau der webseite spielen - oder erwartest du wegen der Mengen einen Einfluss auf das Timing?
Das Attribut 'model' ist aber letztendlich der key, der die Config dieser Entity installiert.
Um das device auto-zu-installieren ist das einfachste einmal config/anlernen am device zu drücken. Dann dann werden ggf fehlende Kanäle gebaut. Kanal 01 wird von Device representiert, wenn dieser nicht als eigene Entity definiert ist
Ein Unterschied ist sicher die unterliegende Platform Windows versus ein Linux. Was nutzt andre?
Ich werde einmal mir ubuntu testen
Gruss Martin
fhem unter linux. alles andere auf einem mac. d.h. browser ist immer safari.
ich habe gestern und vorhin noch mal versucht das problem zu debuggen. aber ich kann gerade noch nicht mal mehr das beispiel aus dem screenshot reproduzieren.
das einzige gestern war mit einem SVG plot im raum. dann ist dieses erste longpoll update auf der neuen seite leer. aber da hat rudi ja vorhin ewas gemacht.
das nicht verlässliche reproduzieren deutet meiner meinung nach auf ein timingproblem hin.
kann es sein das es eine racecondition gibt zwischen seiten aufbau und diesem zweiten update per longpoll?
und hängig davon: wäre xhr nicht auch für die webCmd schöner?
Also bei mir ist es stabil reproduzierbar.
nach einem refresh oder jeder anderen 'erheuernden' Aktion ist alles korrekt - war klar nehme ich an.
Das Problem tritt auch bei Firefox in Ubuntu 12 auf virtualBox auf.
Gruss Martin
Nachtrag: ein User hat vermeldet, dass es in der webansicht passt, aber dass es im floorplan nicht funktioniert, also das '!' stehenbleibt.
Vielleicht hilft das bei der Suche
ich habe es einmal auf die Schnelle mit XHR probiert. der Update funktioniert - nur auf die Schnelle war die Darstellung der Icons versaut. Aber keine update-probleme mehr....
evtl hat andre mit dem Ansatz recht....