Hallo zusammen,
nach einem Update wird mein FTUI nun gar nicht mehr angezeigt.
Toast liefert eine -gefühlt- meterlange Liste von vielen meiner Geräte und Dummys als Fehler aus. (vgl. attachment)
Vor dem Update lief alles perfekt!
Ich habe keine Ahnung, wie ich an das Problem herangehen soll.
Könnte ihr mir weiterhelfen?
list WEB:
Internals:
CONNECTS 46
CSRFTOKEN csrf_39454854209600
DEF 8083 global
FD 5
FUUID 5e18c03e-f33f-8be1-76fe-db2a94987229f517
NAME WEB
NR 7
NTFY_ORDER 50-WEB
PORT 8083
STATE Initialized
TYPE FHEMWEB
READINGS:
2020-01-12 17:54:42 state Initialized
Attributes:
JavaScripts codemirror/fhem_codemirror.js
codemirrorParam { "indentWithTabs":false, "indentUnit":2, "autocomplete":false, "height":"auto" }
confirmDelete 1
longpoll websocket
list tabletUI
Internals:
DEF ftui/ ./www/tablet Tablet
FUUID 5e18c03f-f33f-8be1-794a-edb000de4e5a5aa0
NAME tabletUI
NR 65
STATE tabletUI
TYPE FTUISRV
fhem:
directory ./www/tablet
friendlyname Tablet
infix ftui/
Attributes:
directoryindex index.ftui.html
room 00_SYSTEM
meine index.ftui.html
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="web_device" content="WEB">
<meta name="longpoll" content="1">
<meta name="longpoll_type" content="websocket">
<meta name="longpoll_maxage" content="240">
<meta name="shortpoll_interval" content="900">
<meta name="shortpoll_only_interval" content="30">
<meta name="fhemweb_url" content="/fhem/">
<meta name="debug" content="1"> <!-- verbose level 1-6 = output to console;0 = not output -->
<meta name="toast" content="5"> <!-- To disable Toast messages set this value to 0 -->
<link rel="stylesheet" href="lib/jquery.toast.min.css" />
<link rel="stylesheet" href="lib/font-awesome.min.css" />
<link rel="stylesheet" href="lib/material-icons.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/openautomation.css" />
<link rel="stylesheet" href="css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="myCSS/my_ftui.css"/> <!-- eigene CSS -->
<script src="../pgm2/jquery.min.js"></script>
<script src="lib/jquery.toast.min.js"></script>
<script src="js/fhem-tablet-ui.js" defer></script>
</head>
<body>
<!-- Flexbox -->
<div class="fcontainer">
<!-- feststehende Kopfzeile (optional) -->
<div class="fstatic headline darkgray">
<div class="horizbox">
<div class="horizbox top-left ">
<?ftui-inc="_pagebutton.ftui.part" id="main_menu" icon="fa-bars" klasse="large default hidebutton" ?>
<?ftui-inc="_countdown.ftui.part" ?>
<?ftui-inc="_alarmbell.ftui.part" ?>
</div>
</div>
</div>
<!-- Ende feststehende Kopfzeile -->
<!-- Popups (werden durch eine Steuerungsvariable ein- und ausgeblendet) -------------- -->
<?ftui-inc="_popup_keypad.ftui.part" ?> <!-- virtuelles Tastenfeld -->
<?ftui-inc="_popup_message.ftui.part" ?> <!-- messagebox -->
<?ftui-inc="_popup_alarm.ftui.part" ?> <!-- Headline 'Alarm'>
<?ftui-inc="_popup_authorisation.ftui.part" ?> <!-- Headline 'Authorisierung' -->
<?ftui-inc="_popup_pinchange.ftui.part" ?> <!-- Headline 'Änderung' -->
<?ftui-inc="_popup_heatProg.ftui.part" ?> <!-- Heizprogramm einstellen -->
<?ftui-inc="_popup_heatBasicSettings.ftui.part" ?> <!-- Basisdaten Heizung einstellen -->
<!-- ----- ----------------------------------------------- ----- -->
<!-- ----- Scrollbarer Bereich mit variablen Inhalten ----- -->
<!-- ----- durch austauschbare Unterseiten. ----- -->
<!-- ----- Austauschbare Unterseiten 'registrieren': ----- -->
<div class="subpage fcontainer" id="main_menu"></div>
<div class="subpage fcontainer" id="miscalls"></div>
<div class="subpage fcontainer" id="miscallshome"></div>
<div class="subpage fcontainer" id="miscallsoffice"></div>
<div class="subpage fcontainer" id="heating"></div>
<div class="subpage fcontainer" id="heating_chart_DG_Bad"></div>
<div class="subpage fcontainer" id="heating_chart_DG_Wohnen"></div>
<div class="subpage fcontainer" id="heating_chart_OG_Bad"></div>
<div class="subpage fcontainer" id="heating_chart_OG_Kind"></div>
<div class="subpage fcontainer" id="heating_chart_OG_Office"></div>
<div class="subpage fcontainer" id="heating_chart_OG_Schlafen"></div>
<div class="subpage fcontainer" id="heating_chart_EG_Wohnen"></div>
<div class="subpage fcontainer" id="heating_chart_EG_WC"></div>
<div class="subpage fcontainer" id="heating_chart_KG_Gast"></div>
<div class="subpage fcontainer" id="heating_chart_KG_Office"></div>
<div class="subpage fcontainer" id="security"></div>
<div class="subpage fcontainer" id="alarmsystem"></div>
<div class="subpage fcontainer" id="holidays"></div>
<div class="subpage fcontainer" id="doors"></div>
<div class="subpage fcontainer" id="md1"></div>
<div class="subpage fcontainer" id="cam_door"></div>
<div class="subpage fcontainer" id="cam_indoor1"></div>
<div class="subpage fcontainer" id="cam_outdoor1"></div>
<div class="subpage fcontainer" id="cams"></div>
<div class="subpage fcontainer" id="garage"></div>
<div class="subpage fcontainer" id="rollos"></div>
<div class="subpage fcontainer" id="watering"></div>
<div class="subpage fcontainer" id="avr"></div>
<div class="subpage fcontainer" id="system"></div>
<div class="subpage fcontainer" id="batteries"></div>
<div class="subpage fcontainer" id="raspberry"></div>
<div class="subpage fcontainer" id="settings"></div>
<div class="subpage fcontainer" id="alarmgroups"></div>
<div class="subpage fcontainer" id="avrdefaults"></div>
<div class="subpage fcontainer" id="lights"></div>
<div class="subpage fcontainer" id="test"></div>
<!-- ----- Ende des 'Registrierungsbereiches' ----- -->
<!-- ----- Ende des scrollbaren Bereiches ----- -->
<!-- Feststehende Seitenfußzeile (optional) -->
<div class="fstatic headline darkgray">
<div class="horizbox">
<!-- Symbol für den Status der Alarmanlage anzeigen -->
<?ftui-inc="_alarm_status.ftui.part" ?>
<!-- ==========================================================
Die folgenden Elemente werden nur im Bedarfsfall angezeigt
========================================================== -->
<!-- Symbol für den Status der Alarmanlage anzeigen -->
<?ftui-inc="_miscall.ftui.part" ?>
<!-- Ein oder mehrere Symbole werden angezeigt, wenn innerhalb
der nächsten 7 Tage Müll (z. B. graue Tonne, gelbe Tnne, blaue Tonne, etc. abgeholt wird. -->
<?ftui-inc="_rubbish.ftui.part" idx="1" ?>
<?ftui-inc="_rubbish.ftui.part" idx="2" ?>
<?ftui-inc="_rubbish.ftui.part" idx="3" ?>
<?ftui-inc="_rubbish.ftui.part" idx="4" ?>
<?ftui-inc="_rubbish.ftui.part" idx="5" ?>
<?ftui-inc="_rubbish.ftui.part" idx="6" ?>
<!-- Symbol "Batterie schwach" wird angezeigt, wenn irgend eine Batterie schwach ist -->
<?ftui-inc="_battery_low.ftui.part" ?>
<!-- Symbol "Fenster offen" wird angezeigt, wenn irgend ein Fenster offen ist -->
<?ftui-inc="_window_open.ftui.part" ?>
<!-- Symbol "Overload" wird angezeigt, wenn HM-CFG-LAN Status high-load oder overload ist -->
<?ftui-inc="_radioload.ftui.part" ?>
</div>
<!-- </div> -->
</div> <!-- Ende feststehende Seitenfußzeile -->
</div> <!-- Ende Flexbox -->
</body>
</html>
Hast Du nach dem Update ein reload im Browser gemacht (oder Browser schliessen, wieder öffnen)?
Jsonlist2 hatte schon immer Probleme ein konformes JSON zu liefern. Eventuell hast Du in irgend einem Device Namen ein Sonderzeichen oder ein Reading hat ein Grad Symbol o.ä.
Gesendet von iPhone mit Tapatalk
Zitat von: amenomade am 12 Januar 2020, 20:23:36
Hast Du nach dem Update ein reload im Browser gemacht (oder Browser schliessen, wieder öffnen)?
Ja, mehrfach.
Zitat von: Waldmensch am 12 Januar 2020, 20:23:53
Jsonlist2 hatte schon immer Probleme ein konformes JSON zu liefern. Eventuell hast Du in irgend einem Device Namen ein Sonderzeichen oder ein Reading hat ein Grad Symbol o.ä.
Möglich...
Aber wenn, dann waren die vor dem Update auch schon drin, und es lief trotzdem problemlos.
Dann pack doch mal den Auswurf der Jsonlist2 in jsonlint (online validator)
Gesendet von iPhone mit Tapatalk
@DocCyber
Aus meiner Sicht deutet die oberste Fehlermeldung in Deinem Screenshot die Ursache an.
Diese besagt indirekt, dass Du nicht den localStorage benutzen kannst; dort werden aber wohl alle oder zumindest die meisten Informationen gespeichert.
Erklärt dann auch, warum Zeichen 1 in Zeile 1 einem unerwarteten Zeichen entspricht.
Vermutlich hast Du bewusst oder unbewusst ein kontraproduktives Browser-Feature aktiviert ...
Hast Du noch einen alternativen Browser zum Testen?
Zitat von: Waldmensch am 12 Januar 2020, 23:31:57
Dann pack doch mal den Auswurf der Jsonlist2 in jsonlint
Dazu müsste ich den gesamten String irgendwo abgreifen können.
Kannst Du, zum Beispiel in Chrome in den Developer Tools (F12) unter dem Reiter ,,Network". Dort siehst Du Request und Response jedes einzelnen calls.
Gesendet von iPhone mit Tapatalk
Danke, das probiere ich aus
Ich habe mal versucht, durch Debugging dem Problem auf die Spur zu kommen.
Dies ist der Output der Konsole bei Start meiner FTUI-Applikation:
Base dir: ./ fhem-tablet-ui.js:2548:9
Filename: fhem-tablet-ui.js:2113:15
FHEM dir: http://192.168.178.69:8083//fhem// fhem-tablet-ui.js:2113:15
dynamic load file:./lib/jquery.toast.min.js / async:false fhem-tablet-ui.js:2113:15
dynamidynamic load done:./lib/jquery.toast.min.js fhem-tablet-ui.js:2113:15
Got csrf from FHEM:csrf_871679964358693 fhem-tablet-ui.js:2113:15
initPage - area=html fhem-tablet-ui.js:2113:15
init templates - Done fhem-tablet-ui.js:2113:15
initWidgets before- area=html fhem-tablet-ui.js:2113:15
<empty string> fhem-tablet-ui.js:2113:15
initWidgets after removed- area=html fhem-tablet-ui.js:2113:15
<empty string> fhem-tablet-ui.js:2113:15
Load plugin "pagebutton" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "pagebutton" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_pagebutton.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "classchanger" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "classchanger" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_classchanger.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "label" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "label" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_label.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "popup" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "popup" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_popup.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "link" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "link" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_link.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "select" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "select" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_select.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "checkbox" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "checkbox" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_checkbox.js / async:true fhem-tablet-ui.js:2113:15
Load plugin "symbol" for area "html" fhem-tablet-ui.js:2113:15
Start load plugin "symbol" for area "html" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_symbol.js / async:true fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_pagebutton.js fhem-tablet-ui.js:2113:15
Start load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_famultibutton.js / async:true fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_select.js fhem-tablet-ui.js:2113:15
function depends_select not found (maybe ok) fhem-tablet-ui.js:2113:15
Try to init plugin: select fhem-tablet-ui.js:2113:15
init widget: name=select area=html fhem-tablet-ui.js:2113:15
Finished load plugin "select" for area "html" fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_classchanger.js fhem-tablet-ui.js:2113:15
Try to init plugin: classchanger fhem-tablet-ui.js:2113:15
Finished load plugin "classchanger" for area "html" fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_symbol.js fhem-tablet-ui.js:2113:15
Start load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_famultibutton.js / async:true fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./js/widget_famultibutton.js fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_popup.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/jquery-ui.min.js / async:false fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_label.js fhem-tablet-ui.js:2113:15
function depends_label not found (maybe ok) fhem-tablet-ui.js:2113:15
Try to init plugin: label fhem-tablet-ui.js:2113:15
init widget: name=label area=html fhem-tablet-ui.js:2113:15
Finished load plugin "label" for area "html" fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_link.js fhem-tablet-ui.js:2113:15
function depends_link not found (maybe ok) fhem-tablet-ui.js:2113:15
Try to init plugin: link fhem-tablet-ui.js:2113:15
init widget: name=link area=html fhem-tablet-ui.js:2113:15
Finished load plugin "link" for area "html" fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_checkbox.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/switchery.min.css / async:false fhem-tablet-ui.js:2113:15
dynamic load file:./lib/switchery.min.js / async:false fhem-tablet-ui.js:2113:15
(*1) Start load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_famultibutton.js / async:true fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./js/widget_famultibutton.js fhem-tablet-ui.js:2113:15
dynamidynamic load done:./js/widget_famultibutton.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/fa-multi-button.min.js / async:false fhem-tablet-ui.js:2113:15
dynamic load file:./lib/jquery-ui.min.js / async:false fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./lib/jquery-ui.min.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/fa-multi-button.min.js / async:false fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./lib/fa-multi-button.min.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/jquery-ui.min.js / async:false fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./lib/jquery-ui.min.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/fa-multi-button.min.js / async:false fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./lib/fa-multi-button.min.js fhem-tablet-ui.js:2113:15
dynamic load file:./lib/jquery-ui.min.js / async:false fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./lib/jquery-ui.min.js fhem-tablet-ui.js:2113:15
dynamidynamic load done:./lib/jquery-ui.min.js fhem-tablet-ui.js:2113:15
Try to init plugin: popup fhem-tablet-ui.js:2113:15
Finished load plugin "popup" for area "html" fhem-tablet-ui.js:2113:15
dynamidynamic load done:./lib/switchery.min.js fhem-tablet-ui.js:2113:15
dynamidynamic load done:./lib/fa-multi-button.min.js fhem-tablet-ui.js:2113:15
Finished load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2113:15
Try to init plugin: pagebutton fhem-tablet-ui.js:2113:15
init widget: name=pagebutton area=html fhem-tablet-ui.js:2113:15
Finished load plugin "pagebutton" for area "html" fhem-tablet-ui.js:2113:15
Finished load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2113:15
Try to init plugin: symbol fhem-tablet-ui.js:2113:15
Finished load plugin "symbol" for area "html" fhem-tablet-ui.js:2113:15
Finished load plugin "famultibutton" for area "undefined" fhem-tablet-ui.js:2113:15
Try to init plugin: checkbox fhem-tablet-ui.js:2113:15
Finished load plugin "checkbox" for area "html" fhem-tablet-ui.js:2113:15
initWidgets - Done fhem-tablet-ui.js:2113:15
restartLongpoll fhem-tablet-ui.js:2113:15
stopLongpoll fhem-tablet-ui.js:2113:15
shortpoll: start in (ms):500 fhem-tablet-ui.js:2113:15
pagebutton: elem is not valid. elem=undefined fhem-tablet-ui.js:2113:15
pagebutton: start to load main_menu.ftui.html content into $("#main_menu") fhem-tablet-ui.js:2113:15
initPage-html: 884ms - Timer beendet fhem-tablet-ui.js:872:17
initPage (html): in 884ms fhem-tablet-ui.js:2113:15
startLongpoll: true fhem-tablet-ui.js:2113:15
websockets URL=ws://192.168.178.69:8083//fhem//?XHR=1&inform=type=status;filter=hk_dlg,alarmlevel,missedCall,rubDummy1,rubDummy2,rubDummy3,rubDummy4,rubDummy5,rubDummy6,batteryProblem,windowProblem,HM_CFG_LAN,popup_keypad_visible,popup_message_visible,popup_keypad_activity,popup_heatprog_visible,popup_heatBasicSettings_visible,alarmdelay_remaining,popup_message,alarm_timer,alarmbell,hk_settings, STATE coolerMorning coolerAfternoon rubType loadLvl headline measuredTemp timeSpanMorning progTempMorning timeSpanAfternoon progTempAfternoon timeSpanNight progTempNight rubDays rubWeekday prog progList offsetRoom setList tStandard tAbwesend tUrlaub tFrostschutz offsetNight offsetBath;since=1579001712395;fmt=JSON×tamp=1579001712400 fhem-tablet-ui.js:2113:15
pagebutton: new content from $("#main_menu") loaded fhem-tablet-ui.js:2113:15
initPage - area=#main_menu fhem-tablet-ui.js:2113:15
init templates - Done fhem-tablet-ui.js:2113:15
initWidgets before- area=#main_menu fhem-tablet-ui.js:2113:15
html:select html:classchanger html:label html:link html:popup html:pagebutton html:symbol html:checkbox fhem-tablet-ui.js:2113:15
initWidgets after removed- area=#main_menu fhem-tablet-ui.js:2113:15
html:select html:classchanger html:label html:link html:popup html:pagebutton html:symbol html:checkbox fhem-tablet-ui.js:2113:15
Load plugin "pagebutton" for area "#main_menu" fhem-tablet-ui.js:2113:15
Start load plugin "pagebutton" for area "#main_menu" fhem-tablet-ui.js:2113:15
dynamic load file:./js/widget_pagebutton.js / async:true fhem-tablet-ui.js:2113:15
dynamic load not neccesary for:./js/widget_pagebutton.js fhem-tablet-ui.js:2113:15
Try to init plugin: pagebutton fhem-tablet-ui.js:2113:15
init widget: name=pagebutton area=#main_menu fhem-tablet-ui.js:2113:15
Finished load plugin "pagebutton" for area "#main_menu" fhem-tablet-ui.js:2113:15
initWidgets - Done fhem-tablet-ui.js:2113:15
restartLongpoll fhem-tablet-ui.js:2113:15
stopLongpoll fhem-tablet-ui.js:2113:15
stopped websocket fhem-tablet-ui.js:2113:15
shortpoll: start in (ms):500 fhem-tablet-ui.js:2113:15
(*2) pagebutton: elem is not valid. elem=undefined fhem-tablet-ui.js:2113:15
pagebutton: page is already loaded. page=#main_menu fhem-tablet-ui.js:2113:15
pagebutton: show page. id=main_menu fhem-tablet-ui.js:2113:15
initPage-#main_menu: 42ms - Timer beendet fhem-tablet-ui.js:872:17
initPage (#main_menu): in 41ms fhem-tablet-ui.js:2113:15
pagebutton: show page. id=main_menu fhem-tablet-ui.js:2113:15
startLongpoll: true fhem-tablet-ui.js:2113:15
websockets URL=ws://192.168.178.69:8083//fhem//?XHR=1&inform=type=status;filter=hk_dlg,alarmlevel,missedCall,rubDummy1,rubDummy2,rubDummy3,rubDummy4,rubDummy5,rubDummy6,batteryProblem,windowProblem,HM_CFG_LAN,popup_keypad_visible,popup_message_visible,popup_keypad_activity,popup_heatprog_visible,popup_heatBasicSettings_visible,alarmdelay_remaining,popup_message,alarm_timer,alarmbell,hk_settings, STATE coolerMorning coolerAfternoon rubType loadLvl headline measuredTemp timeSpanMorning progTempMorning timeSpanAfternoon progTempAfternoon timeSpanNight progTempNight rubDays rubWeekday prog progList offsetRoom setList tStandard tAbwesend tUrlaub tFrostschutz offsetNight offsetBath;since=1579001712491;fmt=JSON×tamp=1579001712498 fhem-tablet-ui.js:2113:15
closed websocket after connecting fhem-tablet-ui.js:2113:15
<empty string> 2 fhem-tablet-ui.js:2113:15
start shortpoll fhem-tablet-ui.js:2113:15
(*3) send to FHEM: jsonlist2
hk_dlg,alarmlevel,missedCall,rubDummy1,rubDummy2,rubDummy3,rubDummy4,rubDummy5,rubDummy6,batteryProblem,windowProblem,HM_CFG_LAN,popup_keypad_visible,popup_message_visible,popup_keypad_activity,popup_heatprog_visible,popup_heatBasicSettings_visible,alarmdelay_remaining,popup_message,alarm_timer,alarmbell,hk_settings STATE coolerMorning coolerAfternoon rubType loadLvl headline measuredTemp timeSpanMorning progTempMorning timeSpanAfternoon progTempAfternoon timeSpanNight progTempNight rubDays rubWeekday prog progList offsetRoom setList tStandard tAbwesend tUrlaub tFrostschutz offsetNight offsetBath fhem-tablet-ui.js:2113:15
shortpoll: start in (ms):900000 fhem-tablet-ui.js:2113:15
(*4) shortPoll: request failed: parsererror, SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data fhem-tablet-ui.js:2113:15
["HM_CFG_LAN","opened","<div id=\u0022HM_CFG_LAN\u0022 title=\u0022opened\u0022 class=\u0022col2\u0022>opened</div>"] fhem-tablet-ui.js:2113:15
...
...
...
Das ist mir aufgefallen (oben entsprechend markiert):
(*1) area "undefined"
(*2) elem is not valid
(*3) jsonlist2; s. unten
(*4) Was ist falsch an dem JSON-String? unexpected character at line 1 column 1
Den String hk_dlg,alarmlevel,missedCall, ... tFrostschutz offsetNight offsetBath habe ich bei https://jsonlint.com/ eingegeben. Ergebnis: Parse error on line 1.
Verstehe nicht, wo die Ursache für das Problem liegen kann.
Du darfst nicht den Request in jsonlint eingeben sondern die Response, also was FHEM liefert. Das ist der Tab daneben in den DEV Tools
Gesendet von iPhone mit Tapatalk
Zitat von: Waldmensch am 13 Januar 2020, 08:02:21
Kannst Du, zum Beispiel in Chrome in den Developer Tools (F12) unter dem Reiter ,,Network". Dort siehst Du Request und Response jedes einzelnen calls.
Hallo Waldmensch,
Aufgrund deines Tipps (danke!) habe ich mir für diesen Zweck Chrome installiert. Hier hänge ich einen Screenshot Chrome-Tools/Network an.
Wo sehe ich Request / Response genau bzw was muss ich in
jsonlint eingeben?
Möglicherweise weist die rot markierte Zeile auf das Problem hin - dort steht am Ende
pending, die Anfrage wird also nicht beantwortet?
Eine Zeile darunter : jsonlist2
In die Zeile klicken. Dann öffnet sich rechts ein Detail Fenster. In diesem gibt es einen Reiter "Response"
Ah, okay. Danke!
Aber: Failed to load response data :-\
Was sollte / kann ich weiterhin unternehmen, um der Ursache des Problem auf die Spur zu kommen?
Ich würde mal die ganze Request URL kopieren und in einen neuen Browsertab einfügen + wegsenden.
Und auch einmal den Query String Parameters cmd kopieren und in FHEMWEB in die Kommandozeile einfügen + wegschicken. Also "jsonlist2 hk_... .... rubWeekDay"
Irgendetwas stört. Vielleicht das "türlaub"
Zitat von: setstate am 15 Januar 2020, 15:54:54
Ich würde mal die ganze Request URL kopieren und in einen neuen Browsertab einfügen + wegsenden.
Dadurch wird nur die Web-UI von FHEM aufgerufen. Die gesamte Parameterliste ab //?cmd=jsonlist2... wird offenbar ignoriert. (sowohl in Chrome wie in Firefox)
Zitat von: setstate am 15 Januar 2020, 15:54:54
Und auch einmal den Query String Parameters cmd kopieren und in FHEMWEB in die Kommandozeile einfügen + wegschicken. Also "jsonlist2 hk_... .... rubWeekDay"
Vielleicht das "türlaub"
ergibt
unknown command (s.screenshots vom Anfang und Ende des Strings)
Es ist mir aufgefallen, dass FHEM automatisch ein
Komma ans Ende des Strings gesetzt hat.
(türlaub heißt
tUrlaub . Es ist kein Umlaut drin)
Nachtrag:
Ich habe zu Testzwecken eine sehr einfache Website erstellt, die nur einen Testschalter (Dummy!) anzeigt.
Das funktioniert zwar, aber der
Fehler (Failed to load response data)
tritt hierbei ebenfalls aufhttp://192.168.xxx.xx:8083/fhem/?cmd=jsonlist2+testschalter+STATE&fwcsrf=csrf_871679964358693&XHR=1&_=1579107811586
zum 1. Versuch (URL)
da dürfen keine // drin sein, außer beim http://
so zum Beispiel muss das aussehen
http://fhem.local:8083/fhem/?cmd=jsonlist2%20ftuitest%2Cdummy1%2Cfamily%2CKellerClimateSensor%2Cdummy2%20STATE%20state%20hide%20residentsTotalPresent%20error%20sack%20minutes%20temperature%20regex&fwcsrf=&XHR=1&_=1579107654255
zum 2. Versuch (Fhem cmd)
Das cmd für die FHEM Zeile darf keine + oder % dazwischen haben. Hast du das Richtige kopiert?
Bei Query String Parameters
cmd:
???
Das muss etwa so aussehen:
jsonlist2 ftuitest,dummy1,family,KellerClimateSensor,dummy2 STATE state hide residentsTotalPresent error sack minutes temperature regex
jsonlist2
dann alle Devices kommasepariert
dann alls Readings spacesepariert
Zitat von: setstate am 15 Januar 2020, 18:05:03
jsonlist2
dann alle Devices kommasepariert
dann alls Readings spacesepariert
Das hatte ich falsch gemacht. Aber jetzt habe ich eine Ausgabe von FHEM.
{
"Arg":"hk_dlg,alarmlevel,missedCall,rubDummy1,rubDummy2,rubDummy3,rubDummy4,rubDummy5,rubDummy6,batteryProblem,windowProblem,HM_CFG_LAN,popup_keypad_visible,popup_message_visible,popup_keypad_activity,popup_heatprog_visible,popup_heatBasicSettings_visible,hk_settings,alarm_timer,alarmbell,alarmdelay_remaining,popup_message STATE coolerMorning coolerAfternoon rubType loadLvl prog progList offsetRoom setList tStandard tAbwesend tUrlaub tFrostschutz offsetNight offsetBath headline measuredTemp timeSpanMorning progTempMorning timeSpanAfternoon progTempAfternoon timeSpanNight progTempNight rubDays rubWeekday",
"Results": [
{
"Name":"hk_dlg",
"Internals": { "STATE": "initialized" },
"Readings": {
"coolerAfternoon": { "Value":"0", "Time":"2020-01-08 15:28:03" },
"coolerMorning": { "Value":"0", "Time":"2020-01-08 15:28:03" },
"headline": { "Value":"OG Kind", "Time":"2020-01-08 15:28:03" },
"measuredTemp": { "Value":"19.2", "Time":"2020-01-08 15:28:03" },
"offsetRoom": { "Value":"0.0", "Time":"2020-01-08 15:28:03" },
"prog": { "Value":"Abwesend", "Time":"2020-01-08 15:28:03" },
"progList": { "Value":"Standard,Abwesend,Urlaub,Frostschutz", "Time":"2020-01-08 15:28:03" },
"progTempAfternoon": { "Value":"18.0", "Time":"2020-01-08 15:28:03" },
"progTempMorning": { "Value":"18.0", "Time":"2020-01-08 15:28:03" },
"progTempNight": { "Value":"18.0", "Time":"2020-01-08 15:28:03" },
"timeSpanAfternoon": { "Value":"12:00 - 21:00", "Time":"2020-01-08 15:28:03" },
"timeSpanMorning": { "Value":"04:00 - 12:00", "Time":"2020-01-08 15:28:03" },
"timeSpanNight": { "Value":"21:00 - 04:00", "Time":"2020-01-08 15:28:03" }
},
"Attributes": { }
},
{
"Name":"alarmlevel",
"Internals": { "STATE": "0" },
"Readings": { },
"Attributes": { "setList": "0 1 2 3" }
},
{
"Name":"missedCall",
"Internals": { "STATE": "1" },
"Readings": { },
"Attributes": { }
},
{
"Name":"rubDummy1",
"Internals": { "STATE": "???" },
"Readings": {
"rubDays": { "Value":"4", "Time":"2020-01-09 19:53:52" },
"rubType": { "Value":"Wertstoff", "Time":"2020-01-09 19:53:52" },
"rubWeekday": { "Value":"Mo", "Time":"2020-01-09 19:53:52" }
},
"Attributes": { }
},
{
"Name":"rubDummy2",
"Internals": { "STATE": "???" },
"Readings": {
"rubDays": { "Value":"4", "Time":"2020-01-09 19:53:52" },
"rubType": { "Value":"Rest", "Time":"2020-01-09 19:53:52" },
"rubWeekday": { "Value":"Mo", "Time":"2020-01-09 19:53:52" }
},
"Attributes": { }
},
{
"Name":"rubDummy3",
"Internals": { "STATE": "???" },
"Readings": {
"rubDays": { "Value":"8", "Time":"2020-01-09 19:53:52" },
"rubType": { "Value":"Papier", "Time":"2020-01-09 19:53:52" },
"rubWeekday": { "Value":"Fr", "Time":"2020-01-09 19:53:52" }
},
"Attributes": { }
},
{
"Name":"rubDummy4",
"Internals": { "STATE": "???" },
"Readings": {
"rubDays": { "Value":"41", "Time":"2020-01-09 19:53:52" },
"rubType": { "Value":"Glas", "Time":"2020-01-09 19:53:52" },
"rubWeekday": { "Value":"Mi", "Time":"2020-01-09 19:53:52" }
},
"Attributes": { }
},
{
"Name":"rubDummy5",
"Internals": { "STATE": "???" },
"Readings": {
"rubDays": { "Value":"82", "Time":"2020-01-09 19:53:52" },
"rubType": { "Value":"Gartenschnitt", "Time":"2020-01-09 19:53:52" },
"rubWeekday": { "Value":"Di", "Time":"2020-01-09 19:53:52" }
},
"Attributes": { }
},
{
"Name":"rubDummy6",
"Internals": { "STATE": "???" },
"Readings": {
"rubDays": { "Value":"38", "Time":"2018-02-16 23:07:11" },
"rubType": { "Value":"Gartenschnitt", "Time":"2018-02-16 23:07:11" },
"rubWeekday": { "Value":"Di", "Time":"2018-02-16 23:07:11" }
},
"Attributes": { }
},
{
"Name":"batteryProblem",
"Internals": { "STATE": "1" },
"Readings": { },
"Attributes": { }
},
{
"Name":"windowProblem",
"Internals": { "STATE": "0" },
"Readings": { },
"Attributes": { }
},
{
"Name":"HM_CFG_LAN",
"Internals": { "STATE": "opened" },
"Readings": { "loadLvl": { "Value":"low", "Time":"2020-01-15 18:17:10" } },
"Attributes": { }
},
{
"Name":"popup_keypad_visible",
"Internals": { "STATE": "off" },
"Readings": { },
"Attributes": { "setList": "on off" }
},
{
"Name":"popup_message_visible",
"Internals": { "STATE": "off" },
"Readings": { },
"Attributes": { "setList": "on off" }
},
{
"Name":"popup_keypad_activity",
"Internals": { "STATE": "inactive" },
"Readings": { },
"Attributes": { "setList": "alarm pinchange auth_request inactive" }
},
{
"Name":"popup_heatprog_visible",
"Internals": { "STATE": "off" },
"Readings": { },
"Attributes": { "setList": "state:on,off" }
},
{
"Name":"popup_heatBasicSettings_visible",
"Internals": { "STATE": "off" },
"Readings": { },
"Attributes": { "setList": "state:on,off" }
},
{
"Name":"hk_settings",
"Internals": { "STATE": "initialized" },
"Readings": {
"offsetBath": { "Value":"1.5", "Time":"2020-01-06 16:50:32" },
"offsetNight": { "Value":"-1.0", "Time":"2020-01-04 17:56:26" },
"progList": { "Value":"Standard,Abwesend,Urlaub,Frostschutz", "Time":"2020-01-05 12:01:13" },
"tAbwesend": { "Value":"18.0", "Time":"2020-01-04 18:15:07" },
"tFrostschutz": { "Value":"10.0", "Time":"2020-01-04 18:15:11" },
"tStandard": { "Value":"21.0", "Time":"2020-01-06 12:09:54" },
"tUrlaub": { "Value":"15.0", "Time":"2020-01-04 18:15:09" }
},
"Attributes": { }
},
{
"Name":"alarm_timer",
"Internals": { "STATE": "off" },
"Readings": { },
"Attributes": { "setList": "on off" }
},
{
"Name":"alarmbell",
"Internals": { "STATE": "off" },
"Readings": { },
"Attributes": { "setList": "on off" }
},
{
"Name":"alarmdelay_remaining",
"Internals": { "STATE": "15" },
"Readings": { },
"Attributes": { }
},
{
"Name":"popup_message",
"Internals": { "STATE": "Sicherheitsstufe unverändert" },
"Readings": { },
"Attributes": { }
} ],
"totalResultsReturned":22
}
Das Problem ist möglicherweise der
Umlaut in diesem Reading:
"Name":"popup_message",
"Internals": { "STATE": "Sicherheitsstufe unverändert" },
Kann das sein?
EDIT: Reading STATE geändert und neu probiert: Website wird nach wie vor nicht geöffnet; Fehler (failed to load response data) besteht weiterhin. Der Umlaut war also nicht das Problem.
die Umlaute im Reading Value dürften kein Problem sein. Das JSON ist auch valide. Mmmm?
Zitat von: setstate am 15 Januar 2020, 18:32:30
die Umlaute im Reading Value dürften kein Problem sein.
Stimmt, das kann ich mittlerweile bestätigen; vgl. mein EDIT zuvor
Zitat von: setstate am 15 Januar 2020, 18:05:03
da dürfen keine // drin sein, außer beim http://
Okay, hab ich jetzt dann wohl auch richtig gemacht: Es kommt derselbe Output, wie bei der vorigen Eingabe in die FHEM Eingabezeile; s. weiter oben.
shortPoll: request failed: parsererror, SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data fhem-tablet-ui.js:2113:15
Die Ursache für diesen Fehler habe ich gefunden!
In meinem <header> stand
<meta name="fhemweb_url" content="/fhem/">
Mittlerweile weiß ich zwar, dass dieses Meta-Tag für Standardinstallationen nicht nötig ist, weil das Script den Pfad selbst setzt. Es sollte aber nicht schaden, wenn es gesetzt ist.
Aber ich hatte mich an die Angabe im Wiki https://wiki.fhem.de/wiki/FHEM_Tablet_UI#META-Parameter (https://wiki.fhem.de/wiki/FHEM_Tablet_UI#META-Parameter) gehalten, und die ist falsch.
Der Slash vorn und hinten darf dort nicht stehen, denn das Script setzt die Slashes ebenfalls.
Damit ist der Pfad durch den erzeugten Doppel-Slash falsch, und das ist die Ursache für den Fehler.
Falls die fhem_url gesetzt wird, muss es so also aussehen:
<meta name="fhemweb_url" content="fhem">
@setstate: Kannst du eine derartige Fehleingabe im Meta-Tag nicht im Code abfangen?
Zumindest wird ein Teil meines FTUIs nun wieder angezeigt.
Aber...
Vorgabe ist ein Hauptmenü, dessen Seite (bei mir main_menu.ftui.html) durch einen Pagebutton per default geladen werden soll. Das funktioniert nicht mehr.
Im Inspektor wird angezeigt, dass die Seite geladen wurde, aber ich sehe sie nicht...
Dass der Pfad immer korrekt ist, kann ich einbauen.
Passen die Referenzen der Unterseite mit dem Target in der Main Page zusammen?
ZitatPassen die Referenzen der Unterseite mit dem Target in der Main Page zusammen?
Ja, an meinem HTML-Quellcode hatte ich nichts geändert (mit Ausnahme der meta-Tags im Zuge des Updates).
Ich habe jetzt festgestellt, dass die Seite zwar "angezeigt" wird, wenn ich meine CSS nicht benutze. Aber natürlich stimmt das gesamte Erscheinungsbild jetzt nicht.
FTUI nutze ich ausschließlich auf meinem Smartphone und deshalb hatte ich ein Flex-Layout mit eigener CSS gebastelt. Vor dem FHEM und FTUI-Update lief alles super. :(
Das Problem dieses Threads ist gelöst. Soll ich jemanden wegen des Wiki-Fehlers informieren?
Bleibt die Frage, wieso meine CSS unter dem Update diese Probleme verursacht...