logoFHEM CONTROL 2.0

Häufig gestellte Fragen zu λscript

1 Warum ist λscript einfacher als die Verwendung von PERL in AT's, NOTIFY's und DOIF's?

Stand: 05.08.20 14:30

Das wird am schnellsten deutlich, wenn die Definitionen der entsprechenden Steuerungs-Devices ansieht. Dabei neigt sich die Waagschale außerdem noch zugunsten von λscript wenn man berücksichtigt, dass ein λscript vollständig ohne die Verwendung von Attributen läuft. Das heißt, dem Script sieht man unmittelbar an was es macht.

Für Anfänger komplett unleserlich werden AT's, NOTIFY's und DOIF's wenn man gezwungen ist Perl einzubauen. Das Forum ist voll Beispielen. Die Zusammenballung von mehrfachen Klammern, doppelten Semikolons, Sternchens und Dollarzeichen haben mich, und sicher auch viele andere User, Monate gekostet bis man halbwegs geübt in der Anwendung war.

2 Gibt es Einschränkungen? Sind alle Steuerungsaufgaben mit λscript machbar?

Stand: 05.08.20 14:30

λscript basiert auf der in FHEM integrierten API. Alles was AT's, NOTIFY's und DOIF's können, kann λscript auch.

3 Warum braucht λscript keine Perl-Schnittstelle?

Stand: 05.08.20 14:30

Sowohl Perl als auch als auch λscript sind Turing-Vollständig. Das heißt, alles was ich mit der einen Sprache berechnen kann, geht auch mit der anderen. Da ich mit λscript über die FHEM-API den vollen Zugriff auf die FHEM-Devices (sowohl lesend über die Readings als auch steuernd über die set-Befehle) habe, kann nichts fehlen.

4 Kann ich neue Module in λscript entwickeln?

Stand: 05.08.20 14:30

Die Tatsache, das ich in λscript komplexe Strukturen (Räume, Heizungssysteme, Häuser, ...) durch Definition neuer Klassen definieren kann, und über diese in funktionaler Weise Operationen definieren kann, bieten sich auch für den normalen Nutzer völlig neue Möglichkeiten. Einfacher als sich in AT's NOTIFY's DOIF's und dann noch im Zusammenspiel mit eigenen Perl-Scripts hineinzufuchsen, ist die Verwendung von λscript allemal. Ambitionierten Nutzer haben die Möglichkeit Anderen komplexe vorgefertigte Programme zu übergeben.

Die Möglichkeiten gehen deutlich über das hinaus, was jetzt möglich ist. Ich habe z.B. in λscript auf der Grundlage eine Devices vom Typ TelegramBot einen Bot geschrieben mit dem ich mein Haus über ein Menü komplett steuern kann. Dieses Script könnte ich einfach an jemanden andern übergeben. Der passt die Parameter an seine Gegenbenheiten an und es läuft. Wenn ich das ohne λscript machen wollte, müsste ich: Ein Modul schreiben, die Community überzeugen, dass sie es braucht, den Administrator bitten ob er es in die SVN übernimmt. Das Modul würde über eine Unzahl von Attributen und dummys gesteuert. Und der User kann es nicht ändern. Mit jeden Update wären die Änderungen futsch. Mit lambda-script definiert er ein Device "define meinBot lambda", kopiert das Script rein, passt die Namen der Devices an und fertig.