Hauptmenü

FTUI 2.6

Begonnen von setstate, 11 Februar 2017, 14:59:21

Vorheriges Thema - Nächstes Thema

viegener

@michaelfhem: Nur zur Sicherheit, hast Du in fully mal den Cache gelöscht und kommt die Meldung auch von einem anderen Rechner mit einem anderen Browser?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

michaelfhem

IE und Chrome bringen die gleiche Fehlermeldung.

fully sagt: Error fhem-tablet-ui.js:740 TypeError: Object.keys called on non-object

Cache bei allen Browsern immer gelöscht.
Zusätzlich habe ich alle Tips aus den vorangegangen 29 Seiten probiert. Leider ohne Erfolg.

Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

eki

Bei mir ist nach Umstellung auf 2.6 der gleiche Fehler aufgetreten. Ich habe die beiden Verisonen jetzt mal verglichen. Und etwas gefunden, das meiner Ansicht nach die Ursache ist.

@setstate:
Soweit ich gesehen habe, hast Du den Aufruf $.getJSON in Zeile 641 der Version 2.5 in den neuen Aufruf ftui.sendFhemCommand.. in Zeile 737 der Version 2.6 geändert. Das führt dazu, dass aus $.getJSON ein ajax get ohne Angabe des typs wird (getJSON ist ja nichts anderes als der ajax Aufruf mit dataType: "json"). Dadurch kommt beim .done nur ein string zurück und kein json Objekt und beim Versuch auf .Results des Objektes fhemJSON zuzugreifen kommt nur undefined zurück und die Funktion läuft in den Fehler.

Mein Vorschlag: Du spendierst dem sendFhemCommand einen zweiten optionalen parameter "type", in den dann "json" übergeben wird. Zumindest wenn ich den code folgendermaßen ändere, kommt der Fehler nicht mehr und alles sieht OK aus.

Zeile 737: ftui.sendFhemCommand('jsonlist2 ' + ftui.poll.shortPollFilter,"json")


Zeile 1081: sendFhemCommand: function (cmdline,type) {
Nach Zeile 1085 zusätzlich: dataType:type?type:"",


setstate

#438
Vielen Dank, eki. Werde ich so oder so ähnlich einbauen.

Ist in der 2.6.14 jetzt umgesetzt

lewej

Hallo Zusammen,

in der aktuellen fhem Version gibt es Icons für alle möglichen HUE Produkte(bloom,iris etc). In der Ftui finde ich nur zwei Icons für die Hue Bridge.

Kann man die anderen irgendwie übernehmen?

Gruss
lewej

Standarduser

Zitat von: lewej am 18 März 2017, 08:44:18
Hallo Zusammen,

in der aktuellen fhem Version gibt es Icons für alle möglichen HUE Produkte(bloom,iris etc). In der Ftui finde ich nur zwei Icons für die Hue Bridge.

Kann man die anderen irgendwie übernehmen?

Gruss
lewej

Ja, dazu müsstest Du genau so vorgehen wir hier: https://forum.fhem.de/index.php/topic,69008.0.html

michaelfhem

habe auf Version 2.6.14 upgedated. Der Shortpoll-Fehler ist jetzt weg, Danke!. Allerdings hatte ich vermutet das meine Readings dehalb nicht upgedated wurden. Das ist aber immer noch der Fall:

z.B. wird bei folgenden Label immer ein uralter Wert angezeigt:

<div class="col">
<div data-type="label" data-device="KS300" data-get="temperature" data-part="2" data-limits='[-73,19,23]' data-colors='["#6699FF","#aa6900","#bb6242"]' class="grande bold yellow right-align"></div>
</div>


Unter fhem passt der Wert. Den Cache von meinen Browser (fully) lösche ich vor jeden Laden! Auch habe ich danach meine Tablet schon komplett neu gestartet. Trotzdem alte Werte?

Hier noch ein Log vom PC mit Chrome:

--------- start healthCheck --------------
fhem-tablet-ui.js:1359 now: Sun Mar 19 2017 10:03:00 GMT+0100 (Mitteleuropäische Zeit)
fhem-tablet-ui.js:1360 FTUI version: 2.6.14
fhem-tablet-ui.js:1361 Longpoll: true
fhem-tablet-ui.js:1362 Longpoll type: websocket
fhem-tablet-ui.js:1363 Longpoll objects there: true
fhem-tablet-ui.js:1364 Longpoll curent line: 34
fhem-tablet-ui.js:1365 Longpoll last event before: 2 Minute(n) 42 Sekunde(n)
fhem-tablet-ui.js:1366 Longpoll last reading update before: 17213 Tag(e) 10 Stunde(n) 3 Minute(n) 0 Sekunde(n)
fhem-tablet-ui.js:1367 Shortpoll interval: 900
fhem-tablet-ui.js:1368 Shortpoll last run before: 4 Minute(n) 58 Sekunde(n)
fhem-tablet-ui.js:1369 FHEM dev/par count: 3
fhem-tablet-ui.js:1370 FTUI known devices count: 381
fhem-tablet-ui.js:1371 Page length: 8922
fhem-tablet-ui.js:1372 Widgets count: 13
fhem-tablet-ui.js:1373 --------- end healthCheck ---------------
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

setstate

Werden den andere Readings aktualisiert?
Passt der Devicename und das Reading?

michaelfhem

Devicename passt:

KS300
T: 10.9 H: 78 W: 3.0 R: 772.6 IR: no Wi: 1 D: 7.2

departure wird z.B. aktualisiert. Die meisten anderen Readings auch nicht. Schalter kann ich aber schalten? was ich im Log merkwürdig finde ist:
Longpoll last reading update before: 17213 Tag(e) 10 Stunde(n) 35 Minute(n) 2 Sekunde(n)

Daten scheinen aber schon zu kommen:
"WohnenheizungL_Clima-state-ts"
1:"2017-03-19 10:36:35"
2:"2017-03-19 10:36:35"
length:3
__proto__
:
Array[0]

raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

setstate

ich vermute im HTML ist ein Syntax-Fehler / Device/Reading Fehler irgendwo anders, was sich indirekt auf anders auswirkt. Einfach mal die HTML Seite Zurückbauen auf das Nötigste und dann Stück für Stück neu zusammen setzen.

michaelfhem

Leider wird auch dann das Reading nicht upgedatet. ALs Temepratur wird 13.2 Grad angezeigt. Realer Wert ist aber 11.5? Wo kommen diese 13.2 her? Den Browser Cache habe ich gelöscht. Speichert fhem da noch irgendetwas zwischen?

Copy aus FHEM:
KS300 T: 11.5 H: 74 W: 6.9 R: 772.6 IR: no Wi: 2 D: 7.0
temperature 11.5 2017-03-19 10:58:34

Anbei meine Minimalwebseite:


<!DOCTYPE html>
<html>
<head>
    <link rel="icon" href="favicon.ico" type="image/x-icon" />
    <script src="js/fhem-tablet-ui.js" defer></script>
    <title>FHEM-Tablet-UI</title>
</head>
<body>
    <div class="gridster">
        <ul>
           <li data-row="1" data-col="1" data-sizey="1" data-sizex="1">
                <header>TESTSeite</header>
                <div class="sheet">
                    <div class="row">
                        <div class="cell">
<div data-type="label" data-device="KS300" data-get="temperature" class="big"></div>                       
</div>
                    </div>
                </div>
            </li>
        </ul>
    </div>
</body>
</html>
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

setstate

gespeichert wird im localStorage['deviceStates']

Aber warum es bei dir nicht aktualisiert ... Keine Ahnung mehr, mir fällt nix mehr ein.

Ist es denn bei jsonlist2 dabei? (jsonlist2 im FHEM WEB eingeben)

Nobby1805

Wieso schreibst du im widget temperature und im Text T ?
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

michaelfhem

ja ist in jsonlist2 enthalten:


    "Internals": {
      "CODE": "1234",
      "CUL_MSGCNT": "119",
      "CUL_RAWMSG": "810d04xx4027a00171711471406db2",
      "CUL_RSSI": "-78",
      "CUL_TIME": "2017-03-19 11:36:42",
      "DEF": "1234",
      "LASTInputDev": "CUL",
      "MSGCNT": "119",
      "NAME": "KS300",
      "NR": "641",
      "RAINUNIT": "255",
      "STATE": "T: 11.7  H: 74  W: 4.1  R: 772.6  IR: no  Wi: 1 D: 7.2",
      "TYPE": "KS300",
      "WINDUNIT": "1"
    },
    "Readings": {
      "avg_day": { "Value":"T: 9.2  H: 83  W: 3.6  R: 1.7", "Time":"2017-03-19 11:36:42" },
      "avg_month": { "Value":"T: 6.5  H: 33  W: 35.7  R: 36.2", "Time":"2017-03-19 00:02:47" },
      "checksum": { "Value":"2", "Time":"2017-03-19 11:36:42" },
      "cum_day": { "Value":"2017-03-19 00:02:47 T: 382035.4  H: 3486814  W: 151558.7  R: 770.9", "Time":"2017-03-19 11:36:42" },
      "cum_month": { "Value":"18 T: 116.8  H: 608  W: 643.4  R: 36.2", "Time":"2017-03-19 00:02:47" },
      "humidity": { "Value":"74", "Time":"2017-03-19 11:36:42" },
      "israining": { "Value":"no", "Time":"2017-03-19 11:36:42" },
      "rain": { "Value":"772.6", "Time":"2017-03-19 11:36:42" },
      "rain_calc_all": { "Value":"cH: 0.0 lH: 0.0 cD: 0.0 lD: 4.5 IR: no Rnow: 0.0 Rdif: 0", "Time":"2017-03-19 11:36:42" },
      "rain_calc_d_curr": { "Value":"0.0", "Time":"2017-03-19 11:36:42" },
      "rain_calc_d_last": { "Value":"4.5", "Time":"2017-03-19 07:30:09" },
      "rain_calc_d_start": { "Value":"772.6", "Time":"2017-03-19 07:30:09" },
      "rain_calc_d_trig_tsecs": { "Value":"1489991400", "Time":"2017-03-19 07:30:09" },
      "rain_calc_h_curr": { "Value":"0.0", "Time":"2017-03-19 11:36:42" },
      "rain_calc_h_last": { "Value":"0.0", "Time":"2017-03-19 11:31:37" },
      "rain_calc_h_start": { "Value":"772.6", "Time":"2017-03-19 11:31:37" },
      "rain_calc_h_trig_tsecs": { "Value":"1489923000", "Time":"2017-03-19 11:31:37" },
      "rain_calc_now_diff": { "Value":"0", "Time":"2017-03-19 11:36:42" },
      "rain_calc_now_rate": { "Value":"0.0", "Time":"2017-03-19 11:36:42" },
      "rain_calc_now_value": { "Value":"772.6", "Time":"2017-03-19 11:36:42" },
      "rain_calc_tsecs": { "Value":"1489919802.59229", "Time":"2017-03-19 11:36:42" },
      "rain_raw": { "Value":"3030", "Time":"2017-03-19 11:36:42" },
      "rain_raw_adj": { "Value":"3030", "Time":"2017-03-19 11:36:42" },
      "state": { "Value":"T: 11.7  H: 74  W: 4.1  R: 772.6  IR: no  Wi: 1", "Time":"2017-03-19 11:36:42" },
      "temperature": { "Value":"11.7", "Time":"2017-03-19 11:36:42" },
      "tsecs": { "Value":"1489919802.5886", "Time":"2017-03-19 11:36:42" },
      "type_raw": { "Value":"7", "Time":"2017-03-19 11:36:42" },
      "unknown3": { "Value":"1", "Time":"2017-03-19 11:36:42" },
      "wind": { "Value":"4.1", "Time":"2017-03-19 11:36:42" },
      "windIndex": { "Value":"1", "Time":"2017-03-19 11:36:42" }
    },
    "Attributes": {
      "IODev": "CUL",
      "room": "KLIMA",
      "sortby": "1"
    }
  },


wenn ich das html wie folgt umschreibe bekomme ich den Wert (also data-part="2" statt data-device="temperature":

<div data-type="label" data-device="KS300" data-part="2" class="big"></div>                       
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

michaelfhem

@Nobby
KS300 hat den Wert auch einmal im State. Darauf greift auch "data-part" zu. Es gibt aber auch ein reading temperature das ich eigentlich verwende. Wollte damit nur aufzeigen das der Wert aktuell ist.

Grüße
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos