IP-Symcon 7.0 (Testing)

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.

Revision: 0b96c48

Allgemein

  • Neu: Neue Visualisierung verfügbar (Siehe: Beta der neuen Kachelvisualisierung)
  • Neu: PHP 8.2
  • 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. :slight_smile:

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
2 „Gefällt mir“

Revision: 12718ad

Allgemein

  • Fix: Visualisierung hat jetzt korrekte Version 7.0
  • Fix: __generated.inc.php wird jetzt vorab generiert und dann getauscht und löst hoffentlich die Fehlermeldungen beim ModuleReload

Geräte

  • Fix: DigitalStrom: Einige Binärtypen ergänzt

PHP-SDK

  • EnableAction/MaintainAction schlagen nicht mehr fehl, wenn der Ident nicht verfügbar ist

Visualisierung

  • Neu: Aufzählungen von Variablen mit Assoziationsprofil beachten nun auch in der Listendarstellung die Farbe
  • Neu: Legacy-Liste wird nun in einer einzelnen Karte angezeigt
  • Fix: Ausrichtung für HTMLBox, Schalter und Wochenplan in Objektlisten
  • Fix: Jährliche zyklische Ereignisse können konfiguriert werden
  • Fix: Vorschaugraphen für Boolean-Variablen behoben

Konsole

  • Fix: Vorschau von Bildern funktioniert nun auch bei Bildern mit Großbuchstaben in der Dateiendung

Revision: 44dd2e9

Allgemein

  • Fix: Behebe Abstürze beim Start (seit vorheriger 7.0)
2 „Gefällt mir“

Revision: 44dd2e9

Visualisierung

  • Fix: Legacy-Darstellung funktioniert wieder (seit 7.0)
  • Fix: Standardgröße für Energieverteilung verbessert

Revision: 44dd2e9

Visualisierung

  • 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
1 „Gefällt mir“

Revision: 44dd2e9

Visualisierung

  • Neu: Bei Bildern wird potentiell am Rand etwas abgeschnitten, wenn dadurch die Karte als ganzes besser ausgefüllt wird
  • Fix: Verlinkte Slider funktionieren wieder (seit letzter 7.0)
  • Fix: Wenn eine andere Visualisierung aktualisiert wird, lade nicht neu

Revision: 44dd2e9

Visualisierung

  • Neu: Enumerationen können den gesamten verfügbaren Platz verwenden
  • Fix: Zeige im Slider-Dialog bei wenig Breite den korrekten Namen an, auch bei Links
  • Fix: Links auf Slider werden wieder korrekt dargestellt
  • Fix: Enumerationen, die als Dropdown dargestellt werden, funktionieren korrekt, falls kein Wert ausgewählt ist

Revision: 573e311

Visualisierung

  • Neu: Karten mit Wochenplänen skalieren sich passend, falls die Karte nicht hoch genug ist
  • Fix: Der Bereich von Graphen von Einzelvariablen wird wieder wie vorgesehen eingefärbt
  • Fix: Bei einer Enumeration als Dropdown wird nun auch das Dropdown-Icon passend zur Hintergrundfarbe eingefärbt
  • Fix: In Listen kann das dargestellte Element nun den Namen kürzen anstatt herausgeschoben zu werden, falls die Breite zu gering ist
  • Fix: „…“ in Kategorieleiste wieder wie vorgesehen anklickbar
  • Fix: Bestimmung der Textbreite weiter optimiert

PHP-SDK

  • Fix: SelectCondition wird nun insbesondere in Listen korrekt dargestellt, wenn die betroffene Variable nicht mehr existiert

Ein Beitrag wurde in ein existierendes Thema verschoben: IP-Symcon 7.0 (Ninja)

Revision: c12a9126d72d

Allgemein

  • 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“.

Revision: b0abf9e4f02d

Allgemein

  • Neu: Konstante SCRIPTTYPE_IPSWORKFLOW hinzugefügt
  • Neu: Konstante MEDIATYPE_IPSVIEW hinzugefügt (ersetzt MEDIATYPE_FORM)
  • Fix: Absturz korrigiert, wenn eine Ereignis Bedingung gelöscht wurde, die nicht existierte

Visualisierung

  • Neu: Die App führt nun maximal fünf Anfragen gleichzeitig durch, welches den „Ihr Haus ist nicht erreichbar“-Fehler beheben sollte
  • Neu: String-Charts weiter optimiert
  • Fix: Korrekte Textfarbe bei String-Charts mit farbigen Assoziationen

Revision: 213dcf038b1d

Visualisierung

  • 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
3 „Gefällt mir“