danke für Deine tollen Module und Skripte! Musste wieder mal gesagt werden
Aktuell würde ich mich gern mehr mit Quickcharts beschäftigen, da ja HighCharts scheinbar wegen des hier beschriebene ungelösten Sicherheitsproblems für mich keine Zukunft hat und in der V8 noch nicht alle Charttypen verfügbar sind.
Aktuell fehlen mir die Tooltips bei den Charts, bei Quickcharts scheint das aber in den Demos zu funktionieren. Hättest Du vielleicht einen Tipp für mich?
Ich nutze QS nur zur Generierung von SVGs. Soweit ich das verstanden habe, geht es wenn Du due JS Variante nutzt und diese dann als iFrame einbindest! Aber wie gesagt, habe da auch keine Erfahrungen!
Wie die Tage hier irgendwo versprochen habe ich mal die Lib auf den neusten Stand gebracht. Ich bin nochmal durch alle Skripte durch und habe versucht die Logik von den Setup-Daten zu trennen, d.h. die personalisierten Daten wie IDs & Tokens in die System.Locals.ips.php auszulagern!!!
Changelog v2.4.20241222
NEU: Börsenticker Script
NEU: Update Local Script um neue TileVisu Farben und Icon-Mapping
NEU: Update SolarEdge Script wegen Auswahl des (Auswertungs-)Zeitraums
FIX: Versionsnummern in allen Scripts korrekt nachgezogen
Ein Wort in eigener Sache
Ich möchte kurz erklären, warum ich die Bibliothek ursprünglich eingeführt habe und welche Ziele ich damit verfolgte:
Zusammenführung von Basis-Funktionen: Die Idee war, die vielen hilfreichen Basis-Funktionen, die hier im Forum kursieren, zu bündeln (in System.Function.ips.php) und nicht jedes Mal in jedem Skript neu erfinden zu müssen.
Zentrale Wartung und Wiederverwendbarkeit: Durch die Nutzung einer zentralen Bibliothek sollte die Wartung erleichtert werden. Fehler müssten nur an einer Stelle behoben werden, und der Fokus könnte auf die eigentliche Logik der Skripte gelegt werden.
Nutzung durch andere: Die Basis-Funktionalitäten sollten auch für andere Nutzer verfügbar sein, sodass sie von den Vorteilen profitieren können (in Kombination mit __autoload.php).
Trennung von Logik und personalisierten Daten: Mit Hilfe von Locals (System.Local.ips.php) sollte es einfach werden, die Skripte an die individuellen Bedürfnisse anzupassen – Nutzer müssten nur ihre Keys und IDs eintragen, und alles wäre einsatzbereit.
Für mich persönlich hat sich dieses Vorgehen absolut bewährt. Meine gesamte Instanz basiert auf dieser Struktur, und selbst wenn ich neue Ideen oder Skripte aus dem Forum aufgreife, integriere ich diese immer in meine Bibliothek, anstatt sie 1:1 zu übernehmen. Ein gutes Beispiel ist der Börsenticker von @Smudo, der super auf tagesschau.de optimiert wurde. Ich konnte diesen sehr einfach in meine Bibliothek einfügen und an mein System anpassen.
Allerdings muss ich auch selbstkritisch sagen, dass ich dabei wohl zu sehr von meinen eigenen Arbeitsweisen ausgegangen bin. Oft wird der Ansatz der Bibliothek nicht wirklich verstanden und einfach nur Copy&Paste genutzt. Mit der Einführung der Tile-Visu wird das Thema sogar noch komplexer, da es bei den meisten Skripten um HTML-Boxen und deren Darstellung geht.
Wie geht es weiter?
Ich werde weiterhin Skripte, die ich für interessant halte, in meiner Bibliothek auf GitHub veröffentlichen und die Bibliothek auch weiter pflegen. Allerdings werde ich meine Veröffentlichungen hier im Forum reduzieren und mich verstärkt auf die Entwicklung und den Support von Modulen konzentrieren.
Vielen Dank für euer Verständnis und euer Interesse an meinen Projekten!
Hallo, ich wollte endlich die neueste Version vom Dashboard installieren und stoße dauernd auf Fehler. Ich habe die Dateien wie oben beschrieben (__autoload.php; System.Locals.ips.php und System.Functions.ips.php) in den Script-ordner abgespeichert. Danach habe ich die Datei Dashboard versucht zu installieren und bekomme aber folgende Fehlermeldungen: // Nicht abgefangener Fehler: Aufruf der nicht definierten Funktion CreateProfileInteger()
// in C:\ProgramData\Symcon\scripts\37505.ips.php:766
// Schwerwiegender Fehler: Nicht abgefangener Fehler: Nicht definierte Konstante „__WWX“
// in C:\ProgramData\Symcon\scripts\37505.ips.php:124
Kann mir jemand helfen??
Moin,
um Tippfehler zu vermeiden, habe ich die Dateien und Dateinamen jeweils kopiert und eingefügt. Nachdem ich dann das Dashboardprogramm kopiert habe und auf ausführen geklickt habe sind dann diese Fehler entstanden.
Auszug aus dem Scrpitordner.
<?
declare(strict_types=1);
################################################################################
# Script: __autoload.php
# Version: 1.1.20230315
# Author: Heiko Wilknitz (@Pitti)
#
# Um Funktionen, Konstanten usw. global über alle Skripte hinweg zur Verfügung
# zu stellen müssen diese in der Datei "__autoload.php" definiert werden.
# Diese muss sich im "IP-Symcon/scripts"-Ordner befinden.
#
# Innerhalb der "__autoload.php" können dann weitere Dateien eingelesen werden.
#
# ------------------------------ Changelog -------------------------------------
#
# 09.06.2021 - Initalversion (v1.0)
# 15.03.2023 - Include Locals aufgenommen (v1.1)
#
################################################################################
require_once IPS_GetKernelDir() . '/scripts/System.Locals.ips.php';
require_once IPS_GetKernelDir() . '/scripts/System.Functions.ips.php';
include_once IPS_GetKernelDir()."scripts/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php";
IPSUtils_Include("IPSLogger_PhpErrorHandler.inc.php", "IPSLibrary::app::core::IPSLogger");
<?
declare(strict_types=1);
################################################################################
# Script: __autoload.php
# Version: 1.1.20230315
# Author: Heiko Wilknitz (@Pitti)
#
# Um Funktionen, Konstanten usw. global über alle Skripte hinweg zur Verfügung
# zu stellen müssen diese in der Datei "__autoload.php" definiert werden.
# Diese muss sich im "IP-Symcon/scripts"-Ordner befinden.
#
# Innerhalb der "__autoload.php" können dann weitere Dateien eingelesen werden.
#
# ------------------------------ Changelog -------------------------------------
#
# 09.06.2021 - Initalversion (v1.0)
# 15.03.2023 - Include Locals aufgenommen (v1.1)
#
################################################################################
require_once IPS_GetKernelDir() . '/scripts/System.Locals.ips.php';
require_once IPS_GetKernelDir() . '/scripts/System.Functions.ips.php';
include_once IPS_GetKernelDir()."scripts/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php";
IPSUtils_Include("IPSLogger_PhpErrorHandler.inc.php", "IPSLibrary::app::core::IPSLogger");
tippe oder füge den Code hier ein
Habs jetzt nochmal auf dem Server neu kopiert und den Slash aus der autoload.php entfernt und es funktioniert!!
Die Slash-zeichen stehen aber noch in deinem Beitrag 12/35 sowie in der Git- __autoload.php!