Q&A Highcharts - Multigraph V1.0

Hallo

zum Problem das Highchart am Android (Galaxy s) nicht funktioniert hab ich im Highcharts Forum was gefunden.
Scheinbar ein bekanntes Problem und liegt an der fehlende SVG Unterstützung von Android version <3.0.

Hier der Originaltext:
Highslide Software • View topic - Getting the android issue straight

gruß
bb

kurzes Feedback von mir zum Thema Android: auf nem A500 (Android 3.01) funktionierts problemlos. Getestet mit Android-Browser.:wink:

Changelog

[ul]
[li]NEU: RunMode [Script oder File] über Parameter in CfgDaten einstellbar
[/li][li]NEU: CheckCfgDaten: Zum Prüfen bestimmter notwendiger Parameter im CfgDaten und Korrektur (wird in Config Script aufgerufen)
[/li][li]NEU: Einstellung per Config wann Werte als Stunden bzw. Tageswerte herangezogen werden (AggregatedValues)
[/li][li]NEU: AggregatedValues Einstellungen auch pro Serie möglich
[/li][li]NEU: AggregatedValues.MixedMode zum Kombinieren der Einstellungen (z.B.: x Tage alle Werte und danach x Tage nur Stunden Werte, usw.)
[/li][li]NEU: AggregatedValues.NoLoggedValues liest jetzt Werte bis zu diesem Zeitpunkt (zuvor wurden wenn der Zeitraum größer war wurden gar keine Werte gelesen)
[/li][li]FIX: IPS_Template.php: Umlaut im ‚März‘ wurde nicht richtig angezeigt
[/li][li]FIX: Deutsche Tage im Zeitraum
[/li][/ul]

Zum Download der V1.0003 …

Hi khc

Absolut super Sache die du da ins rollen gebracht hast.
Diese Highslide Plots ermöglichen mir genau die vermissten Features welche mit meinen alten RRD Plots nicht möglich waren.
Bin schon seit einigen Nächten dabei die vermissten Sachen nun mit Highslide nachzurüsten.
Durch die flexible Konfigurierbarkeit konnte ich ein identisches Aussehen exakt nachbauen. Auch die Doku auf der Highslide Seite ist perfekt.
Wenn ich bedenke was mit den anderen Highslide Plotmöglichkeiten noch alles möglich ist werden das noch viele lange Nächte werden.

Deine Implementierung ist auch echt Benchmark. Bravo.
Hab die rev 1.002 aber für meine Zwecke recht heftig umgebaut, hoffe daher du planst nicht irgendwelche weiteren rev. mit must have Featurs.:o

Kleiner Tip: Wenn man sein eigenes einheitliches Farbschema für die Plots mag ist es ganz praktisch für die Farben Konstanten zu vergeben. Diese Definitionen in eine Datei auslagern und per include einbinden.

So kommt dann die Farbe in den Plot:

	$CfgDaten["Series"][] = array("Id"=>32015, "Name" =>"Heizungspumpe ON/OFF","Unit"=>NULL, "ReplaceValues"=>array(0=>0.6,1=>1.0),
		"Param" =>"type:'area', step: true, yAxis: 0, color:$COL_Heizungspumpe, shadow: true,lineWidth: 1,threshold: 0.5, fillOpacity: 0.3,states: {hover:{lineWidth: 2}}, marker: { enabled: false, states: { hover: { enabled: true, symbol: 'circle', radius: 4, lineWidth: 1}}}");

Ich weiß, das ist nix besonderes, kann einem aber das Leben sehr erleichtern.


Kannst du in etwa grob anreisen wie ich vorgehen müßte um die Plots ggfls auch auf einem externen Webserver anzuzeigen. (liegt im gleichen LAN)
Für solches Hardcore JS fehlt mir das Wissen.

Vielen vielen Dank für alles
bb

Ach ja nochwas, vieleicht ist es aber eh bekannt.

Man kann einen Link auf die ~HTMLBox Variablen mehrere Graphen in eine Kategorie legen.
Dann den WF Inhaltswechler auf die Kategorie setzen, und schwups hat man eine platzsparende Möglichkeit zusammengehörige Graphen einfach anzuzeigen und auszuwählen.

Die Blumen gehören aber Horst der diesen allesfressenden Inhaltswechsler gebaut hat.

greez
bb

Hallo @bbernhard … zu Deinen Fragen:

„Hab die rev 1.002 aber für meine Zwecke recht heftig umgebaut, hoffe daher du planst nicht irgendwelche weiteren rev. mit must have Featurs.“
Ich weis, ich hab an dem Teil einiges geändert in den letzten drei Versionen, wobei ich immer darauf geachtet habe, dass ich soweit es möglich war immer abwärtskompatibel bleibe. Es sollten eigentlich immer nur zusätzliche Parameter in den CfgDaten dazugekommen sein. In der 1.0003 habe ich auch im Sourcecode gekennzeichnet was sich geändert hat. Den Highchart-Script sollte eigentlich nur zum Austauschen gewesen sein. Lediglich im letzten Bereich des Config-Scripts hat sich einiges getan.

Ich habe noch ein paar Kleinigkeiten geplant. Dies sollte aber keine Auswirkung auf deine aktuelle Konfig haben.

„Kannst du in etwa grob anreisen wie ich vorgehen müßte um die Plots ggfls auch auf einem externen Webserver anzuzeigen. (liegt im gleichen LAN) Für solches Hardcore JS fehlt mir das Wissen.“
Tja mit dem Javascript geht es mir leider ähnlich … über Minimalkenntnisse geht mein Wissen nicht raus.
Ich denke, dass du das ganze über die zwei Möglichkeiten [RunMode] realisieren kannst.
1.) Du schreibst zyklisch die Config in TempFiles :
$sConfig = CreateConfigString($CfgDaten); // erzeugen und zurückgeben des Config Strings
$tmpFilename = CreateConfigFile($sConfig, $IPS_SELF); // und ab damit ins tmp-Files
und rufts die Daten dann über „src=“./User/Highcharts/IPS_Template.php?CfgFile=xxx" ab. (xxx ist der Name des tmpFiles)

oder

2.) Du erzeugst die Daten dynamisch aus der IPS Datenbank. Dann kannst du das über src="./User/Highcharts/IPS_Template.php?ScriptId=xxx" erledigen. xxx ist hierbei die IPS-Objekt-ID des Scriptes welche Deines ConfigScripts.

Ich hoffe ich konnte Dir helfen.

Grüße nach Villach
KHC

Aha…das fällt mir jetzt erst auf warum Ihr beide so gut klar kommt :slight_smile:

Gruss
Bernd

Nabend zusammen,
Hat jemand schon ein Pie Chart mit Datumsanzeige beim Hoovern und Datenpunktbeschreibung hinbekommen ?

Aktuell zeigt die Einstellung PIE die Werte der geloggten ID richtig als PIE an, es fehlt jedoch das Datum.

Irgendwo muss die Y-Achsen Einstellungen ja anders bestückt werden…aber so durch reines probieren habe ich da bisher keinen Erfolg gehabt.

Habt Ihr nen Tip ?
Geht um die Anzeige einer Variablen.

Gruss
B71

Hi KHC,

ich verfolge deine HighCharts-Implementierung mit großem Interesswe und speile auch schon ein wenig mit rum. Momentan zögere ich noch, das Ganze „richtig produktiv“ zu nehmen da ich noch ein wenig abwarte bis sich der Entwicklungsstand „stabilisiert hat“ (im positiven Sinne, ich vermute Du bist noch in der "Jugend-forscht-Phase"was die Möglichkeiten angeht?).

Einen Vorschlag/Bitte hätte ich: bestimmt nutzen noch einige andere deine Scripte. Nun ist es ziemlich aufwändig das Config-Script nach jeder Version neu zu parametrieren. Wie wäre es, wenn du die Individual-Parameter als Variablen im Kopf des Scripts (Konfig-Bereich)ablegst? Somit bräuchte man nur noch den eigentlichen Script-Part aus der neuen Version in sein eigenes Script unterhalb des Konfig-Bereiches reinkopieren und die parametrierung muss nicht wiederholt erledigt werden.

ich hab das mal bei mir probehalber gemacht (wenn Du magst stelle ich auch gern alle Parameter um und lass Dir den Code zukommen, das spart ne Menge stumpfes Getipsel :D):

Ach ja: das hat auch noch den Vorteil, das die Beschreibung der Variablen gleich mit sichtbar wird (in deinen Code wird die Variablen-Beschreibung vom System wieder gelöscht)

Hallo Raketenschnecke,

ich verstehe deine Anmerkung bezüglich der Reihenfolge im ConfigScript nicht ganz, denn genau so ist das Ding aufgebaut.

Am Anfang ist die Konfiguration und ab Zeile 145 (Kommentar // und jetzt los …) kommt der Script zum Starten der Berechnungen.

Dein Vorschlag mit den einzelnen Variablen sehe ich als Glaubensfrage. Ich bin mehr der Freund, das direkt im Array zu konfigurieren. Da hat man bei Anpassungen erheblich weniger Arbeit. Wenn ich bei der Array Variante eine Serie mehr haben will kopiere ich die Zeile und ändere die nötigen Parmeter ab. In deinem Vorschlag muss ich die Array Zeile kopieren, alle Paremeter abändern, dann die Variablen Kopieren, und diese auch abändern.

Mit den Variablenbeschreibungen hast du aber in jedem Fall Recht, aber vielleicht macht dann eine Mischung der beiden Varianten Sinn (siehe Screenshot).

Grüße KHC

Hi KHC,

mein Problem ist (war bisher), das ich nicht sofort erkennen kann wo Du Scriptänderungen vorgenommen hast. Bevor ich anfange zu suchen und mir evtl. Cop&paste-Fehler einfange habe ich bisher die neue Version komplett übernommen und dann meine Parameter individualisiert.

Mit der Methode meines Vorschlags könnte man genau zwischen individuellem Teil (der ja sowieso durch jeden Anwender an die eigenen Bedingungen angepasst werden muss) und dem -möglicherweise von Änderungen betroffenen Code unterscheiden. In solch einem Falle würde ich nur noch das per c&p übernehmen was unterhalb von

//######## Konfig Ende ################

steht.

Hallo Bernardo71,

mit dem bestehenden Highcharts Script wird es (meines Erachtens) nicht möglich sein, vernünftige Tortengrafiken zu bekommen.

Grüße Heinz

Hallo @Raketenschnecke, Hallo @Bernardo71,

ich habe Eure Kritik aufgenommen und sie ist sicherlich nicht ganz unbegründet. Ich habe die Änderungen der Scripte immer als „derjenige der das ganze produziert hat“ gesehen, und da ist der Blickwinkel etwas anderes als von etwas weiter weg. Wenn man genau weis was sich geändert hat wären die Updates ein Kinderspiel, aber ohne diese Hintergundinfos - sicherlich etwas aufwendiger.

Daher werde ich bei den nächsten Updates eine genauere Beschreibung „Wie kommt ihr von Version 1 nach Version 2“ , bzw. „was hat sich geändert“ beilegen. Dann sollte das Update kein Problem mehr darstellen.

Grüße KHC

Na…man gut wir haben drüber gesprochen…war aber eher ne Anmerkung als sog. Kritik.

Denke dadurch wird das Tool noch besser werden als es eh schon ist.

Gruss Bernd

… ich schliesse mich Bernardo an. Kritik hört such immer so negative an;)

Hi Ihr,

ich hab da nochmal ne Frage: oben wurde schon mal angesprochen per Highcharts IPS-Messwerte in einer externen Webseite darzustellen. Klappt das - hat das schon jemand erfolgreich gemacht?
Ich hätte dazu einige Fragen:
wird ein Script in die externe Webseite eingebettet?
Wenn ja: greift dieses Script direkt auf die IPS-datenbank zu?
Wenn ja: ist das nicht zu unsicher(man könnte ja dann auch alle anderen Daten einsehen)?
Könnt Ihr mir kurz auf die Sprünge helfen wie eine Datenanzeige in einer externen Webseite funktioniert (ich glaube ich bin hier vom Verstänmdnis noch ganz weit weg)?

Hi

Ja ich möchte mich daran versuchen die Plots auch irgendwie nach extern zu bringen.
Hatte aber noch keine Zeit da rumzuspielen.

Das einfachste dürfte sein in IPS zusätzlich png rendern zu lassen und die dann am externen Server anzuzeigen. Hab da auf der Highchart Seite was dazu gelesen das dies mit einem Zusatzmodul geht. Die Interaktivität ginge natürlich verloren.

Das Highchart Plot direkt am externen Server laufen zu lassen und die Daten aus der IPS DB zu holen dürfte aber an den Zugriffsrechten scheitern. Da gabs doch irgendwann mal eine Diskussion dazu.

Man könnte aber vermutlich die Daten irgendwie per Soap oder Filetransfer auf den extenen Server holen und dann dort, von einer eigenen HighChart Instanz verarbeiten lassen.

… klingt nach einer Bastelei für lange Winterabende.

Meinerseits lege ich erstmal den Fokus drauf mir ein dediziertes Pie-Highchart Modul zu basteln.

gruß
bb

In den öffentlichen Bereich verschoben.

paresy

hi bb,

besten Dank für’s Feedback. Scheit also recht komplex zu sein. Mir fällt dazu noch ein: die relevanten Daten (@dapor macht sowas) in die Webserver-SQL (in meinem Fall MySQL) exportieren und dann aus der Webseite heraus aufrufen (IPS ind Webserverinstanz liegen bei mir auf dem selben Server). Aber auch keinen Plan wie man das hinbekommt (weder den Export noch Aufrauf aus der Webseite heraus -> aber ich lerne ja noch:p). Gerade die Interaktivität macht das Ganze für mich so interessant daher wäre .pic für mich nicht der sinnvolle Ansatz.

Hallo Raketenschnecke, Hallo bbernhard,

das mit dem PNG-Rendern ist sicherlich eine Möglichkeit. Die andere wäre einfach die von mir erzeugten tmp Dateien auf den externen Server zu legen. Wenn ein Aufruf der IPS_Template.php?CfgFile=‚FileName.tmp‘ erfolgt werden die Daten aus den tmp-File gelesen und durch Highcharts gerendert. Dann bleibt die Interaktivität erhalten. Ihr müsst jetzt eigentlich nur mehr in zyklischen Abständen das tmp-File von IPS erzeugen und auf den externen Server übertragen.

Grüße KHC