ich möchte mich hiermit im FHZ-Forum kurz vorstellen. Nachdem die Entscheidung zugunsten einer HomeMatic gefallen ist, habe ich mich im Forum umgeschaut, und natürlich wichtige Informationen erhalten. Ich hoffe, dass ich zukünftig meinen Teil dazu beitragen kann.
Auf der Suche nach einem passenden Script-Editor habe ich mich an UltraEdit erinnert. Ein passendes Wordfile für HomeMatic-Scripte konnte ich nicht finden. Daher habe ich mich daran versucht und möchte mein Ergebnis euch zur Verfügung stellen.
Den nachfolgenden Code komplett in eine leere Textdatei kopieren und z.B. unter HomeMaticScript.uew speichern.
Code: Alles auswählen
/L18"HomeMaticScript" Line Comment Num = 2! Block Comment On = (* Block Comment Off = *) String Chars = " Escape Char = \ File Extensions = hms
/Colors = 0,8421376,8421376,0,0,
/Colors Back = 16777215,16777215,16777215,16777088,8454143,
/Colors Auto Back = 1,1,1,0,0,
/Font Style = 0,0,0,0,0,
/Delimiters = !&*()[]-+=|/{};"<> , .
/Indent Strings = "{"
/Unindent Strings = "}"
/Open Brace Strings = "{" "(" "["
/Close Brace Strings = "}" ")" "]"
/Open Fold Strings = "{"
/Close Fold Strings = "}"
/C1"Keywords" Colors = 16711680 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
else
false foreach
if
true
while
quit
/C2"Data Types" Colors = 255 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
boolean
integer
real
string
time
var
object
/C3"Functions" Colors = 6029497 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
system
dom
object
/C4"Methods" Colors = 33023 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
Address
Channel Channels ChnGroupPartnerId ChnDirection ChnAESActive ChnArchive ChnRoom ChnFunction Count
Date Device DPs DPByHssDP
Exec EnumUsedIDs EnumUsedNames
Get GetAt GetObject GetVar
Find Format
ID IsTypeOf IsVar Interface
HssType
LastValue Length
Name
Operations
Timestamp ToFloat ToInteger ToString ToTime Type TypeName
Split State StrValueByIndex Substr
Value ValueType Variable VarType
/C5"Parameters" Colors = 33023 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
OT_OBJECT OT_ENUM OT_DEVICE OT_CHANNEL OT_DP OT_VARDP
$this$ $src$
/C6"Constants" Colors = 33023 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
OPERATION_READ OPERATION_WRITE OPERATION_EVENT
/C7"Operators" Colors = 33023 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
!
&
*
+
-
.
// /
<
=
>
|
#
/C8"Braces, comma, semicolon" Colors = 32768 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
(
)
[
]
,
;
{
}
Meine zukünftigen HomeMatic-Scripts nenne ich *.hms. Die Erweiterung hms habe ich unter Windows mit UltraEdit verknüpft. Damit öffnet sich der Editor bei einem Doppelklick auf das Script. Diese Dateierweiterung ist auch in der Syntaxdatei definiert.
Auf eine Besonderheit der HomeMatic-Scriptsprache möchte ich noch hinweisen:
Das "!" ist mehrfach verwendet. Erstens als Kennung für einen Zeilenkommentar und als weiteres in den Operatoren Ungleichheit "!=" bzw. logisches NICHT (Bsp.: b = !a;). In meinen Augen ist das irgendwie ein Widerspruch. Aber die Hauptsache ist, dass die HomeMatic damit klar kommt.
In meiner Syntaxdatei habe ich daher das "! " (Ausrufezeichen gefolgt von einem Leerzeichen) als Zeilenkommentarkennung definiert.