logoFHEM CONTROL 2.0

Häufig gestellte Fragen zu λ-script

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

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.

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

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

Warum braucht λ-script keine Perl-Schnittstelle?

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 lambda-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.

Kann ich neue Module λ-script in entwickeln?

Die Tatsache, das ich in lambda-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.