Hallo zusammen,
wie kann ich rausbekommen, warum mein Switch nicht immer den richtigen Status anzeigt?
Hier meine Code:
<div class="cell" data-type="switch" data-device="myHarmony" data-icon="fa-power-off" data-cmd="set" data-set="activity" data-set-on="Fernsehen" data-set-off="PowerOff" data-get="currentActivity" data-get-on="Fernsehen"></div>
Und hier ein Auszug von "list myHarmony":
Internals:
CFGFN multimedia.cfg
CONNECTS 4
ConnectionState LoggedIn
DEF 192.168.178.10
FD 55
LAST_CONNECT 2017-06-07 10:11:49
LAST_DISCONNECT 2017-06-07 10:11:47
NAME myHarmony
NOTIFYDEV global
NR 847
NTFY_ORDER 50-myHarmony
STATE Connected
TYPE harmony
activityStatus 2
currentActivityID 9135244
hubSwVersion 4.12.36
hubUpdate 0
ip 192.168.178.10
previousActivityID -1
syncStatus 0
Readings:
2017-06-07 20:21:11 activity Fernsehen
2017-06-07 20:21:11 currentActivity Fernsehen
2017-06-07 20:21:02 previousActivity PowerOff
2017-06-07 10:11:49 state Connected
Hat jemand eine Idee, was ich prüfen kann?
VG
Marc
Keiner eine Idee, was ich prüfen kann?
Wenn mir das Tablet nicht den aktuellen Status anzeigt, dann ist es wirklich irreführend :-[
Hier meiner HeadDefinition:
<meta name="longpoll" content="1">
<meta name="longpoll_type" content="1">
<meta name="longpoll_filter" content=".*">
<meta name="longpoll_maxage" content="240">
<meta name="shortpoll_interval" content="10">
<meta name="debug" content="1"> <!-- verbose level 1-6 = output to console;0 = not output -->
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta http-equiv="Cache-Control" content="no-store" />
Viele Grüße
Marc
Was heißt denn es wird "nicht immer" der aktuelle Status angezeigt? Wann wird er denn aktuell angezeigt? Wann nicht? Kannst du eine Systematik feststellen?
Hilft evtl. ein Reload der Webseite (F5 im Browser)?
Ich habe nämlich ein ähnliches Problem...meine Switches werden auch nicht per "Knopfdruck" aktualisiert. Der Status wird bei mir nach dem Druck auf den Knopf korrekt an FHEM gesendet und auch andere Widgets werden korrekt via Longpoll aktualisiert. Für die Switches muss ich allerdings jeds Mal einen Hard-Reload (F5, bzw. auf dem Tablet von oben nach unten ziehen) der Webseite machen. Die Ursache dazu habe ich noch nicht gefunden, das Problem scheint auch nicht überall aufzutreten...
Mein Header sieht ähnlich aus wie deiner... :-\
Hallo!
Habe mich gerade noch einmal mit dem Problem beschäftigt. Habe die Seite komplett abgespeckt auf das eine Element:
<!DOCTYPE html>
<html>
<head>
<meta name="longpoll" content="1">
<meta name="longpoll_type" content="websocket">
<meta name="longpoll_filter" content=".*">
<meta name="longpoll_maxage" content="240">
<meta name="shortpoll_interval" content="10">
<link rel="stylesheet" href="lib/jquery.gridster.min.css" />
<link rel="stylesheet" href="css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="css/fhem-mobil-ui.css" />
<link rel="stylesheet" href="lib/font-awesome.min.css" />
<link rel="stylesheet" href="lib/jquery.toast.min.css" />
<script src="../pgm2/jquery.min.js"></script>
<script src="lib/jquery.toast.min.js"></script>
<script src="lib/jquery.gridster.min.js"></script>
<script src="js/fhem-tablet-ui.js" defer></script>
</head>
<body>
<div data-type="switch" data-device="myHarmony" data-icon="fa-power-off" data-cmd="set" data-set="activity" data-set-on="Fernsehen" data-set-off="PowerOff" data-get="currentActivity" data-get-on="Fernsehen"></div>
</body>
</html>
Doch leider wird der Status nur nach einem FullRefesh (F5) aktualisiert.
Hier mein Define in fhem:
define myHarmony harmony 192.168.178.10
attr myHarmony room Multimedia
Bin echt ratlos.
Ein normaler Switch wird sofort aktualisiert:
<div data-type="switch" data-device="HMW_HSK1_Strahler_Terrasse"></div>
Hat niemand einen Ansatz?
VG
Marc
PS: Hat jemand eine Idee, warum ich im Firebug keine Ausgaben in der Console bekomme?
Siehst du denn Events im FHEMWEB Eventviewer, wenn du dort den Filter auf "myHarmony" setzt?
Bekomme folgendes im Log:
017-06-13 21:44:18.571 harmony myHarmony currentActivity: stopping Fernsehen
2017-06-13 21:44:20.665 harmony AV_Receiver power: off
2017-06-13 21:44:20.669 harmony harmony_19381610 power: off
2017-06-13 21:44:20.673 harmony harmony_43455425 power: off
2017-06-13 21:44:20.678 harmony myHarmony currentActivity: PowerOff
2017-06-13 21:44:20.683 harmony myHarmony activity: PowerOff
2017-06-13 21:44:20.691 harmony myHarmony currentActivity: PowerOff
2017-06-13 21:44:20.728 harmony myHarmony currentActivity: PowerOff
Habe aber gerade mein Problem gefunden.
Ich habe nicht "data-get-off" definiert, da ich davon ausgegangen war, dass alles ungleich "data-get-on" als off interpretiert wird.
Wenn ich jetzt eine regex ungleich "Fernsehen" einsetzen würde, dann müsste es funktionieren.
Wobei ich in regex nicht wirklich ein Syntax für ungleich kenne, wenn das überhaupt möglich ist?!
Und die Lösung ist --> data-get-off="!Fernsehen"
Allerdings reagiert der Switch viel langsamer als ein normaler Switch.
Danke für Eure Unterstützung.
Es müsste eher so heißen:
data-get-off="!on"
"!on" oder "!off" ist ein Keyword und bedeutet: "nicht das, was unter data-get-on bzw. data-get-off steht"
Mit RegEx sieht es etwas komplizierter aus
^((?!Fernsehen).)*$
Danke, so funktioniert das off auch schnell --> data-get-off="!on"