Versandscript für das CUxD-HTML-Framework

Ein angepasstes Script, um das HTML-Framework auf den CUxD umzustellen

2647 Zeichen
Score aktualisiert
100%
Code: 919a383d931a4dd990938d828f9db494
Token in Entwicklung nicht aktualisiert
img-Tag in Entwicklung deaktiviert

Vorbereitung

Zur Installation des CUxD-HTML-Frameworks müssen folgende Voraussetzungen erfüllt sein:

Wenn Sie bereits das CUxD-Mini-Framework eingerichtet haben, folgen Sie zunächst der Anleitung für das HTML-Framework. Anschließend brauchen Sie nur noch das Versandscript durch die Version auf dieser Seite zu ersetzen.

Variablen in HomeMatic-Scripten

Die CCU hatte früher ein Limit von maximal 200 Variablen, das mit Firmware-Version 2.29.18 aufgehoben wurde. Dieses Limit bezog sich auf alle Variablen, die in allen Scripten verwendet werden. Gemeint sind Variablen, die direkt im Script definiert werden: object x; object y; var z;

Wenn Scripte nicht mehr funktionieren und bei der Prüfung unerklärliche Syntax-Fehler auftreten, sollte versuchsweise dieses Programm wieder gelöscht oder deaktiviert werden – oder, noch besser, auf die aktuelle Firmware-Version aktualisiert werden.

Strings in HomeMatic-Scripten

Durch String-Verwendung in HomeMatic-Scripten kann die CCU fehlerhaft arbeiten, instabil werden oder sogar abstürzen. Grundsätzlich gilt: Je öfter mit Strings hantiert wird, desto eher führt dies zu Problemen.

Ich empfehle daher, nach Umsetzung dieser Anleitung die CCU unter Beobachtung zu halten.

Benennung von Systemvariablen

Prinzipiell kann man Systemvariablen – so wie allen Objekten in der CCU – beliebige Namen geben, also z. B. auch Umlaute und Sonderzeichen verwenden. Ich empfehle jedoch, sich auf reguläre Buchstaben (a-z, A-Z) zu beschränken: Bei Umlauten und Sonderzeichen besteht die Gefahr, dass Systemvariablen in Scripten nicht überall gefunden werden.

HTML-Framework und CUxD-HTML-Framework

Zur Umstellung des Mini-Frameworks auf das HTML-Framework wurde ein spezielles Versandscript benötigt. Das ist beim CUxD-Mini-Framework genauso: Wenn Sie HTML-Mails versenden möchten, verwenden Sie dieses Script.

! HomeMatic-Script
! VERSANDSCRIPT FüR DAS CUXD-HTML-FRAMEWORK
! http://www.christian-luetgens.de/homematic/cuxd/htmlframework/HTML-Framework.htm

! SYSTEMVARIABLE
  object o_versand = dom.GetObject ("E-Mail.Versand");
  object o_body = dom.GetObject ("E-Mail.Body");

if (o_versand.Value() > 0) {

  ! P- ODER PRE-VORLAGE
    integer i_template = o_versand.Value();
    string s_newline = "\n";
    if (o_body.Value().Find (s_newline) >= 0) {
      i_template = i_template + 10;
    }

  ! VERSAND
    dom.GetObject ("CUxD.CUX9100001:1.MAILTO").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.MAILCC").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.SUBJECT").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.TEXT").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.OPTION_1").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.OPTION_2").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.OPTION_3").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.OPTION_4").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.OPTION_5").State ("");
    dom.GetObject ("CUxD.CUX9100001:1.TYPE").State (1);
    dom.GetObject ("CUxD.CUX9100001:1.TEMPLATEID").State (i_template);
    dom.GetObject ("CUxD.CUX9100001:1.SEND").State (1);

    o_versand.State (0);
}

!  Ende des Scripts

Die Funktionsweise des Scripts ist in der Anleitung zum CUxD-Mini-Framework beschrieben. Neu ist der Block, in dem die Vorlage ausgewählt wird:

Die Erläuterung dieses Mechanismus’ finden Sie wiederum in der Beschreibung zum HTML-Framework – das Script auf dieser Seite ist tatsächlich nichts als die Kombination von HTML-Framework und CUxD-Mini-Framework.

Navigation