Anleitung zum Wechseln auf den Testing-Kanal gibt es hier: Update-Kanäle
Downgrade Möglich:Ja, die Settings ist zur 6.4 kompatibel
Bitte beachtet, dass sich die Pfade zum /user/ und /skins/ Ordner geändert haben. Sollte ein Downgrade gemacht werden, muss dies manuell Rückgängig gemacht werden! Details zur Änderung sind im Changelog weiter unten zu finden.
Neu: Alle Bibliotheken aktualisiert. (z.B. auch OpenSSL auf 3.0)
Neu: IPSModule/IPSModuleStrict haben eine FindIDForIdent Funktion, die keine Exception wirft, sondern 1 liefert, wenn nichts gefunden wurde.
Neu: IPS_FindObjectIDByIdent/IPS_FindObjectIDByName, die keine Exception werfen, sondern 0 liefern, wenn nichts gefunden wurde.
Neu: Spezialschalter CompatibilityDeprecations, um auch die Deprecations wie utf8_* von PHP 8.2 zu aktivieren
Neu: Netzwerk Bibliothek aktualisiert
Neu: Spezialschalter „DisableLogfile“, um das Logfile fast komplett zu deaktivieren
Fix: „cert“ Ordner wird nicht mehr erstellt, der seit langem nicht mehr genutzt wurde
Fix: Löschen von Skripten/Medien bewegt diese wieder in den ‚deleted‘ Order (seit 6.3)
Fix: Hinweis im HTTP Client bzgl. Kompatibilität korrigiert
Geräte
Neu: EnOcean: Zusätzliche Werte für STM550 (D2-14-41) verfügbar
Neu: JSON Dekoder/MQTT Device: Option zum Sperren der Variablen, sodass keine Variablen erstellt/gelöscht werden bei falschen Datenpaketen
Neu: KNX: Setzen der physikalischen Adresse/programmieren der Applikation verbessert (Nur SymBox)
Fix: M-Bus: Bei Dekodierfehlern einzelner Felder, wird nicht die gesamte Verarbeitung abgebrochen
Fix: RegVar_SendText in Kombination mit ServerSocket korrigiert
Fix: Z-Wave: Wenn ein Gateway überlastet ist und Pakete „gedroppt“ hat, breche nach „Retry“ Fehlversuchen ab, anstatt es weiter zu versuchen
Fix: MQTT: Topics werden korrekt auf UTF-8 Konformität geprüft und mit besserer Fehlermeldung bemängelt
SymOS
Fix: fnmatch Funktion fehlte auf der SymBox
Fix: Interner Server Error beim Logfile Download korrigiert (Backport)
WebFront
Neu: DWD kann nun auch Vertikal dargestellt werden (Option verfügbar im Editor)
Konsole
Neu: Visualisierungs-Widget unterstützt nun auch die neue Visualisierung
Neu: IPSWorkflow wird nach der Konvertierung direkt geöffnet
Fix: Update Widget funktioniert nun auch korrekt für Docker armhf/arm64
Fix: Verhindere Fehler im Auswahlbaum, wenn ein Schnellfilter gesetzt ist und neue Objekte hinzugefügt werden
PHP-SDK
Neu: IPSModuleStrict verfügbar (Dokumentation bzw. eine Klassendefinition, sodass ihr dies ordentlich nutzen/anpassen könnt folgt)
Enterprise
Fix: SYNC: Version vom Remote darf älter sein. D.h. der Master in 7.0 kann Remotes in Version 6.4 synchronisieren
Hinweise zur neuen PHP Version - insbesondere für Modul-Entwickler:
Aktuell läuft PHP 8.2 mit dem Error-Reporting auf „E_ALL ^ E_DEPRECATED“. D.h. wir haben alle Deprecations deaktiviert, um Zeit für notwendige Änderungen zu erlauben. Insbesondere sind utf8_encode und utf8_decode als Deprecated markiert, sodass die Deprecation Warnings aktuell noch viel Ärger bereiten würden.
Unsere Migrationsstrategie ist wie folgt:
IP-Symcon 7.0 lässt die Deprecations aus und bietet zeitnah eine neue IPSModuleStrict Klasse an, welche TypeHints bei den Klassen-Funktionen besitzt, Variablen als ReadOnly markiert ($this->SetValue muss dann genutzt werden) und welche im Datenfluss die Daten nicht mehr per „utf8_encode“ kodiert, sondern binäre Daten als HEX kodiert überträgt. Dies bedeutet, dass ein Buffer vom ClientSocket nicht mehr per utf8_decode, sondern per hex2bin verarbeitet werdet muss. Da fürs erste die IPSModule Klasse unangefasst bleibt - können wir in Ruhe umstellen.
IP-Symcon 7.x: Sobald eine kritische Masse an Modulen umgestellt wurde (wir können über den Module Store ja passende Statistiken erstellen) würden wir die Deprecations reaktivieren, um dadurch den Rest an Kleinigkeiten zu finden, sodass wir langfristig auf PHP 9.0 vorbereitet sind. Ende des Jahres kommt ja erstmal PHP 8.3.
Hinweise zu IPSModuleStrict:
Da TypeHints definiert sind, sind auch diese für eure Klassen notwendig. Ich werde versuchen dafür ein Skript oder ähnliches zu schreiben, welches diese Fleißarbeit automatisiert.
Alle bisherigen Warnings sind nun Fehler. z.B. wenn keine TypeHints bei Public Funktionen definiert sind oder wenn ihr als TypeHint die veralteten Integer/Boolean TypeHint nutzt.
Bisher gab es keinen TypeHint für Variant. Dafür könnt ihr (seit PHP 8.0 verfügbar) mixed nutzen.
RegisterVariabe* liefert einen Boolean, ob die Variable erstellt wurde (bisher wurde die ID der Variable zurückgeliefert. Diese könnt ihr jederzeit über $this->GetIDForIdent beziehen)
Die erstellten Variablen sind ab sofort ReadOnly. D.h. ihr müsst $this->SetValue nutzen, um diese zu beschreiben
Der Datenfluss überträgt alle binären Daten als HEX-Kodiert. D.h. ihr müsst nicht mehr utf8_encode/utf8_decode nutzen, sondern bin2hex und hex2bin bei allen unseren nativen Instanzen. Für eure Modul könnt ihr weiterhin frei wählen aber generell ist utf8_encode/utf8_decode deprecated und sollte nirgends mehr genutzt werden
Neu: In Einstellungen wird ähnlich wie bei Kategorien der aktuelle Pfad angezeigt
Fix: Bestimmung von Textlängen verbessert, so dass es nun nicht mehr bei Assoziationen o.a. zu ungewollten Zeilenumbrüchen kommen sollte
Fix: Bei der Bestimmung des linken Fixpunktes aller Slider werden Variablen, deren Namen zu lang ist, dass überhaupt ein Slider angezeigt wird, nicht mehr betrachtet
Fix: Der Aktivschalter für ausgelöste Ereignisse in Listendarstellung wird nun korrekt dargestellt
Neu: Einige Profile für Rolladen/Lamellen verbessert, sodass direkt die neue Kachel in der Visu verwendet wird
Neu: Fehlende Icons für UnixTimestamp*, HexColor, TWColor ergänzt
Neu: Neuer Spezialschalter „DefaultVisualization“, mit der man einstellen kann, welche Visualisierung standardmäßig angezeigt werden soll. (0 = WebFront, 1 = Preview)
Neu: webfront/user Ordner wird nach user migriert
Neu: webfront/skins Ordner wird nach skins migriert
Neu: LCN: Sperren für Regler können in der Visu ausgewertet/gesetzt werden
Fix: ServerSocket: Timeout beim TLS Handshake implementiert, sodass dieser nicht mehr feststecken kann bei instabilen Verbindungen
Fix: FindIDForIdent liefert korrekt eine 1, wenn das Objekt nicht gefunden wurde.
Fix: Absturz beim Zugriff auf PHP-Dateien im /user/ Ordner korrigiert (seit letztem Update)
Fix: VoIP: Bei vielen ausgehen Anrufen konnte die ConnectionIDs durcheinander geraten
Konsole
Fix: Skin und Darstellungsprofil werden pro Visualisierung und nicht mehr pro Server gespeichert
Visualisierung
Neu: Chart für Strings
Neu: Optik für UnixTimestamp-Elemente verbessert
Neu: Bei Farbauswahl gibt es nun die Möglichkeit in einem Dialog die exakte Farbe einzustellen
Neu: Ist der Name in einer Kachel zu lang wird eine kleinere Textgröße verwendet
Neu: Maximale Gitterbreite von 20 auf 24 erhöht
Neu: Kacheln von Variablen mit Graph und Hintergrundfarbe werden im Vollbild mit einem Gradienten dargestellt
Neu: Graphen für Strings für kleinere Bildschirme optimiert
Fix: Kacheln von Diagrammen wechseln nun schon bei kleineren Größen von Vorschau auf reguläre Diagramme
Fix: Wie vorgesehen kann wieder aller Platz bis zum Namen hin für eine Aufzählung verwendet werden
Fix: Skin und verwendetes Darstellungsprofil wird pro Visualisierung und nicht pro Server gespeichert
Fix: In Objektlisten hat der Name einen Mindestplatz von 100 Pixeln, wodurch er nicht komplett verschwinden kann
WebFront
Fix: Rote Fehlermeldung, welche beim Start kurz aufflackern konnte, wurde korrigiert
Konsole
Neu: Dialoge können nun in der webbasierten Konsole vergrößert werden
Fix: Verhindere eine falsche Ziel-ID beim mehrfachen Öffnen eines Ereignisses
Fix: Zeige bei Ereignissen beim Öffnen eine Meldung an, falls die aktuelle Aktion nicht zum Zielobjekt passt
PHP-SDK
Neu: Neues Element QrCode um QR-Codes darzustellen
Neu: Parameter form für List/Tree ermöglicht individuelle Bearbeiten-Dialoge (Dokumentation folgt)
Fix: visible und enabled funktioniert für SelectCondition nun wie vorgesehen
Bitte beachtet, dass ihr Skripte anpassen müsst, welche automatisch in den user Ordner schreiben, da dieser nun woanders ist.
Ab sofort ist das WebFront immer unter http://ip-vom-server:3777/legacy/ verfügbar und die normale Seite ist abhängig vom Spezialschalter „DefaultVisualization“.
Neu: Unterstützung für Mehrsprachigkeit (Enterprise Feature; Demo: https://demo.symcon.de; Am besten deutschen und englischen Browser zum Testen verwenden)
Neu: Previewgraph für String-Variablen
Neu: Kategorieleiste bricht nun um anstatt zu scrollen
Neu: Wird der Text im Titel einer Kachel verkleinert, werden auch die Icons verkleinert
Fix: Beim Titel einer Kachel ist der Abstand zur oberen Kante nun gleich wie der Abstand zum Inhalt der Kachel
Fix: Werte vom runden Slider sind nun so korrekt wie möglich, vorher gab es einige Ungenauheiten beim Runden
Fix: Die Positionierung der Favoritenkacheln überschreibt nicht mehr die Positionierung der Hauptkategorie
Fix: Automationen auf der Startseite werden korrekt ausgeführt
Fix: Ungültige Startkategorien werden korrekt erkannt
Fix: Kleine Vorschaugraphen stellen weniger Anfragen an den Server
Fix: Automationen/Favoriten können gestartet werden, auch wenn diese außerhalb der Startkategorie sind
PHP-SDK
Fix: Verbesserte Fehlermeldungen falls die Konfiguration fehlerhaft ist
Fix: Zur Bestimmung ob die Konfiguration eines Formulars korrekt ist werden nur sichtbare Formularfelder betrachtet
Fix: Verschachtelte Tree/List funktionieren wieder wie vorgesehen (seit 7.0)
Fix: FindIDForIdent entfernt, bis geklärt ist, ob 0 oder 1 zurückgemeldet werden soll
SymOS
Fix: Beim Neustart von IP-Symcon konnte fälschlicherweise eine Fehlermeldung auftreten, dass IP-Symcon bereits gestartet sei, obwohl dies nicht der Fall war