Servus!
Wie bereits andere User, hatte ich leider ähnliche Probleme mit dem Graphen. Nach mehreren Anläufen, hats aber dann irgendwann doch was angezeigt. Ich stand zunächst ein wenig auf dem Schlauch, weil das Device Logging eigentlich von Anfang an solide funktioniert hat, nur irgendwie wollte es mit der Anzeige nicht.
Also bin ich dem ganzen ein wenig hinterher getaucht, und hab mich an dem invalid date erstmal entlang gehangelt und denke auch das Problem mehr oder weniger gefunden zu haben.
Wie alchy bereits erwähnt hat, gibt es wohl einen Bug was die Anzeige von Einträgen mit einem "." im Namen angeht. Es ist nicht ganz wenig Code zum durchsteigen, kenn mich leider mit Highcharts nicht unbedingt gut aus und weiß als blutiger Homematic User auch nicht unbedingt genau wie das mal funktioniert hat bzw. gedacht war.
Soweit ich das bisher verstanden habe, versucht das Script mit Hilfe des "." den String zu spliten um anhand des Teiles nach dem "." den Anzeigetyp für den Graphen zu bestimmen. Jetzt ist es nur irgendwie so, dass noch an anderer Stelle gesplitet wird und dabei u.a. der hintere Teil wieder hinten dran gehängt wird (sieht dann so aus 000123456789AB:1.ACTUAL_TEMPERATURE.ACTUAL_TEMPERATURE), was sich dann im weiteren dann irgendwie verschluckt.
Ich vermute den Übeltäter hier:
Code: Alles auswählen
var tmpArr = [];
for (var dp in cuxchart.dates) {
var tmp = dp.split(".");
if (!tmp[1]) { <-- im Fall von "_" true und ergibt einen leeren String
tmp[1] = "";
} else {
tmp[1] = "." + tmp[1];
}
tmpArr.push(cuxchart.dpInfos[dp].ChannelName + tmp[1]); <-- hier wird im Fall von "." der Teil danach ein zweites mal an den Channel gehängt
}
tmpArr.sort();
var serie;
for (var i = 0; i < tmpArr.length; i++) {
if (cuxchart.revDpInfos[tmpArr[i]]) {
serie = cuxchart.revDpInfos[tmpArr[i]];
} else {
serie = tmpArr[i];
}
cuxchart.addSeries(serie);
}
Ob cuxchart.dates oder cuxchart.dpInfos[dp].ChannelName evtl. nicht richtig sind so weit bin ich bisher nicht durchgestiegen.
Das invalid date kommt glaub ich dann zu Stande, wenn man ausschließlich Einträge mit "." in der Devicelog hat, bzw. er dann auch in der Legende nichts anzeigt. Ich hab bisher nur zwei HMIP Geräte an der CCU, da fällt es dann relativ leicht auf wenn es mit dem "." im Programm nicht, aber dafür mit dem "_" funktioniert (wenn man's mal herausgefunden hat woran es liegt).
Zum maintainen wird meine Zeit aktuell leider nicht reichen, aber ich könnte versuchen das gefixt zu bekommen und nen PR zu machen. Vielleicht steckt jemand tiefer drin und kann mir zumindest verraten wie das gedacht war, weil ich da noch was gefunden hab:
Code: Alles auswählen
case "TEMPERATURE":
case "ABS_HUMIDITY":
case "DEW_POINT":
case "TEMP_MAX_24H":
case "TEMP_MIN_24H":
valueDecimals = 1;
type = "spline";
break;
Das würde im Fall von dem Script aus der CUxD Readme:
Code: Alles auswählen
object dp = dom.GetObject("$src$");
if (dp) {
dom.GetObject("CUxD.CUX2801001:1.POSTIT").State((dom.GetObject((dp.Channel()))).Address() #"."# dp.HssType() #";"#dp.Value());
}
auch nicht ganz matchen weil das wäre bei mir z.B. ACTUAL_TEMPERATURE und nicht TEMPERATURE.
Wäre nett wenn sich vielleicht wer melden mag und mir paar Infos dazu stecken kann. Ich wüsste z.B. auch nicht wie das mit den Alias funktioniert (hat) etc.
Kleiner Nachtrag:
Anstatt den zusammen gestampften Code zu debuggen, den originalen zu benutzen hilft ungemein. Allerdings ist mir dabei noch was aufgefallen. Die Backend Schnittstellen bestehen aus tcl/perl(?) Scripts die dann irgendwie auf die Script Ebene von der CCU zugreifen? Mit JS bin ich relativ fit aber damit hab ich jetzt irgendwie bissl meine Probleme.
Grüße,
Alex