ioBroker JavaScript-Adapter - Verbesserungen April-Mai 2024

Diese Zusammenfassung enthält die wichtigsten Änderungen des JavaScript-Adapters ab Version 8.0.0.

Besonderer Dank geht an Matthias Kleine (kleinOr) für seine großartige Arbeit an diesem Adapter!

Neue Funktionen und Verbesserungen

- Blockly: Zahlreiche Verbesserungen an den Blockly-Blöcken, inklusive neuer Blöcke für onLog, globalen Variablen, Datum/Uhrzeit-Funktionen und Zertifikats-Validierung bei httpGet.

Man kann jetzt im Blockly auf einen Log-Eintrag reagieren,

onLog

auf die Änderung von einer Datei zu reagieren,

onLog

oder über blockly im Trigger sofort einen Zustand zu bestätigen.

onLog

  • Sicherheit: Der geschützte Dateisystembereich (iobroker-data/files) wurde eingeführt, um direkte Schreibzugriffe zu verhindern.

  • Kompatibilität: Unterstützung für Node.js >= 18.x und js-controller >= 5 ist ab sofort erforderlich.

  • Skriptfunktionen: Neue Funktionen für temporäre Dateien, Ablaufzeiten in Blockly und globalen Variablen.

Beispiel für die Verwendung der createTempFile-Funktion:

httpGet('https://raw.githubusercontent.com/ioBroker/ioBroker.javascript/master/admin/javascript.png', { responseType: 'arraybuffer' }, async (err, response) => {
    if (err) {
        console.error(err);
    } else {
        const tempFilePath = createTempFile('javascript.png', response.data);
        console.log(`Saved to ${tempFilePath}`);

        // Use the new path in other scripts (e.g. sendTo)
    }
});

onFile('0_userdata.0', 'test.jpg', true, async (id, fileName, size, data, mimeType) => {
    const tempFilePath = createTempFile(fileName, response.data);

    // Use the new path in other scripts (e.g. sendTo)
});
  • Protokollierung: Verbesserte Protokollierung mit Instanz- und Herkunft-Informationen im Log-Fenster.

Altes Log-Format:

onLog

Neues Log-Format:

onLog

  • AI code generator: Die Möglichkeit verschiedene ChatGPT-Modelle für die KI-Codegenerierung auszuwählen.

onLog

  • Abwärtskompatibilität: Entfernte Unterstützung für Zustände mit Dateien (seit v6.2.0 veraltet) und die request-Eigenschaft in der Sandbox (Modul muss bei Bedarf neu importiert werden).

  • Verschiedene Fehlerbehebungen

Gesamtes Changelog

Für die Nutzung der neuesten Funktionen wird NodeJS >= 18.x und js-controller >= 5 benötigt.

Einige Änderungen wirken sich auf bestehende Skripte aus (z.B. fehlende Unterstützung für Zustände mit Dateien).

8.0.0 (2024-04-05):

  • Breaking Change: Unterstützung für Zustände mit Dateien entfernt (seit v6.2.0 veraltet) (klein0r)
  • Breaking Change: Geschütztes Dateisystem (iobroker-data/files) zum Verhindern direkter Schreibzugriffe (klein0r)
  • Breaking Change: request-Eigenschaft der Sandbox entfernt (Modul muss bei Bedarf neu importiert werden) (klein0r)
  • Blockly-Block für globale Variablen hinzugefügt (z. B. Skriptname) (klein0r)
  • Fehlende Funktionen zu protectFS hinzugefügt (klein0r)
  • httpPost behoben (fehlende Daten) (klein0r)
  • hasAttribute Blockly-Block behoben (klein0r)
  • Klammerneinfügung in Blockly für multi und or behoben (klein0r)
  • setStateChanged / setStateChangedAsync hinzugefügt (PeterVoronov)

8.0.1 (2024-04-08):

  • Behebung einiger fehlender Übersetzungen (ukrainisch) (klein0r)
  • Unterstützte ecmaVersion von es2021 auf es2022 angehoben (Node.js 18) (klein0r)

8.0.2 (2024-04-08):

  • Gezwungenes Downgrade von socket-client (Probleme mit Objektänderungen) (klein0r)

8.0.3 (2024-04-11):

  • Abhängigkeiten aktualisiert (neuestes Framework adapter-react-v5) (klein0r)

8.1.0 (2024-05-03):

  • Admin-Konfiguration auf jsonConfig aktualisiert (Materialize entfernt) (bluefox)

8.1.1 (2024-05-03):

  • Aktualisierung von Blockly/JS- und Rules/JS-Bildern (als SVG) (klein0r)

8.2.0 (2024-05-07):

  • toArray zum Ergebnisobjekt des $-Selektors hinzugefügt (PeterVoronov)
  • Blockly-Block für onLog hinzugefügt (klein0r)

8.3.0 (2024-05-09):

  • createTempFile zur Sandbox hinzugefügt (klein0r)
  • Fehlerbehebung in der Protokollmeldung beim Skriptstart (klein0r)
  • Instanz/Herkunft zum Protokollfenster hinzugefügt (wie im Admin) (klein0r)

8.3.1 (2024-05-13):

  • Negative Werte in formatTimeDiff zulassen (paul53)
  • Tests aktualisiert und Blockly-Übersetzungen behoben (klein0r)

8.4.0 (2024-05-25):

  • Zusätzliche Prüfungen und Warnungen für falsche Blockly-Verbindungen hinzugefügt (klein0r)
  • Option zum Deaktivieren der Zertifikatsvalidierung bei httpGet hinzugefügt (klein0r)
  • Ablaufzeit-Option für Blockly-Block hinzugefügt (klein0r)
  • Fehler bei variables.astro behoben, wenn kein Datum verfügbar ist (klein0r)
  • Fehler in jsonConfig für Bibliotheken und Bibliothekstypisierungen behoben (klein0r)
  • Neue Funktionen von js-controller 6.x für die Paketverwaltung implementiert (klein0r)
  • Update auf ChatGPT-4o (klein0r)

8.4.1 (2024-05-26):

  • httpPost-Block behoben (klein0r)

  • Veraltete Blockly-Verbindungen werden nur einmal pro Skriptstart/Nutzung gewarnt (klein0r)

8.4.2 (2024-05-28):

  • createState behoben (redundante native Attribute entfernt) (klein0r)

  • Fehler in der benutzerdefinierten Komponente "astro" behoben (winnyschuster)

8.4.3 (2024-06-04):

  • Antwortzeit zu httpGet und httpPost Ergebnis hinzugefügt (klein0r)
  • Auslöseblock hinzugefügt, um neue Werte zu bestätigen (klein0r)
  • Auswahl verschiedener ChatGPT-Modelle für den KI-Codegenerator erlaubt (bluefox)