Aus SatriaWiki
Wechseln zu: Navigation, Suche

Skripte

Code-Beispiele und Erklärungen

Systemvariable holen
var SysVar = dom.GetObject("SysVar")
Systemvariable lesen
SysVar.Value()
Systemvariable setzen
SysVar.Variable(1)


Steuerung auf Geräteparameter holen
var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE")
Geräteparameter lesen
SollTemp.Value()
Geräteparameter setzen
SollTemp.State(SysVar.Value())


Gewerkeliste holen
dom.GetObject(ID_FUNCTIONS)

Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.

Raumliste holen
dom.GetObject(ID_ROOMS)

Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.

Schleife
foreach(current, array) {}

array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.
string array = "Sensor1\tSensor2";

Log output
WriteLine("Text, Value: " + SysVar.Value())

Übersicht der Objekthierarchie

HomeMatic Script Objekthierarchie.png

Dokumentation von ELV

Datei:HM Skript Teil 1 Sprachbeschreibung V2.2.pdf

Datei:HM Skript Teil 2 Objektmodell V1.2.pdf

Datei:HM Skript Teil 3 Beispiele V1.1.pdf

Datei:HM Skript Teil 4-Datenpunkte.pdf

Besonderheiten beim Respberry PI 3

Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2.

Diagramme werden seit 3.37 nicht mehr auf die SD Karte geschrieben

Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung

Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.

Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein.

Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht.

Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden:

/usr/local/etc/rc.postinit (mod 755, rwx-rx-rx)

#!/bin/sh

/usr/local/bin/InitSD

/usr/local/bin/InitSD (mod 755, rwx-rx-rx)

#!/bin/sh

ln -sf /usr/local/sdcard /media/usb0
touch /var/status/USBinitialised
touch /var/status/SDinitialised

Datei:PI3 usr local.7z -> entpacken und entsprechend auf den PI3 kopieren