Hallo,
ich bin begeistert von Highcharts und den tollen Skripten drumherum. Hab es bei mir fast schon im produktiven Einsatz.
Um besser durch Raum und Zeit der Charts zu fliegen, hab ich mir in Anlehnung an die Bedienung der IPS-eingebauten Charts ein Auswahlbalken gebastelt, siehe Screenshot. Änderungen am Konfig-Skript sind minimal: nur Start und Ende.
Bei Interesse, so geht’s:
Variable HC_Zeitraum vom Typ Integer anlegen, Profil wie im Screenshot anbei. Alle positiven Werte werden zur Auswahl angezeigt - kann man sich also anpassen. Aktionsscript:
<?
$ENDPUNKT = GetValue(14844 /*[System\Highcharts\HC_Zeitraum\HC_EndPunkt]*/);
Switch ($IPS_VALUE){
Case -3: // Zurück
SetValue(14844 /*[System\Highcharts\HC_Zeitraum\HC_EndPunkt]*/, $ENDPUNKT -1);
Break;
Case -2: // Vor
SetValue(14844 /*[System\Highcharts\HC_Zeitraum\HC_EndPunkt]*/, $ENDPUNKT +1);
Break;
Case -1: // Jetzt
SetValue(14844 /*[System\Highcharts\HC_Zeitraum\HC_EndPunkt]*/, 0);
Break;
default:
SetValue($IPS_VARIABLE, $IPS_VALUE);
Break;
}
// Hier sind alle Highchart Konfig-Skripts einzutragen - damit Änderungen sofort sichtbar werden
// Geht das irgendwie besser?
IPS_RunScript(49993 /*[System\Highcharts\WZ\HC_Wohnzimmer]*/);
IPS_RunScript(35453 /*[System\Highcharts\Heizung\HC_Heizung]*/);
?>
IDs im Skript entsprechend anpassen und darunter eine weitere Variable HC_EndPunkt anlegen (Typ: Integer).
In den Konfig-Skripts ist jetzt nur noch $CfgDaten[„StartTime“] und $CfgDaten[„EndTime“] durch folgendes zu ersetzen:
$ZeitRaum = GetValue(48796 /*[System\Highcharts\HC_Zeitraum]*/);
If ($ZeitRaum == 0) {$ZeitRaum = (8/24);};
$EndPunkt = GetValue(14844 /*[System\Highcharts\HC_Zeitraum\HC_EndPunkt]*/);
$CfgDaten["EndTime"] = time() + 60 * 60 * 24 * $ZeitRaum * $EndPunkt;
$CfgDaten["StartTime"] = $CfgDaten["EndTime"] - 60 * 60 * 24 * $ZeitRaum;
RunMode habe ich auf „script“ geändert.
Einziges Problem: nach Klick im Webfront müssen aktuell im Aktionsskript noch alle Konfig-Scripts aufgerufen werden. Jemnd eine Idee, wie man das besser machen kann?
Danke & Gruß,
Axel
Äääh… wo ist der Fehler?
Ich habe das Script angelegt, habe eine Variable HC_Zeitraum angelegt und das Profil so angepasst wie im Screenshot. Habe dann eine Variable HC_Endpunkt ohne Profil (War das richtig?)
„<“; „>“ und „Jetzt“ funktionieren, aber „Tag“, „Woche“, „Monat“ und „Jahr“ funktionieren bei mir nicht.