neues Modul für Ereignisgesteuertes Perl

Begonnen von Damian, 20 Februar 2018, 20:26:24

Vorheriges Thema - Nächstes Thema

Damian

Nächste Gedankenstufe: Namen für Perlblöcke, Aufrufe von Perlblöcken, Übergabeparameter

Damit man sich besser im System zurechtfindet sind Namen besser als Zahlen, daher sollte man Blöcke wie Funktionen benennen können, Syntax

block <name>
{
...
}


Wie kann man einen Block aufrufen und ihm Informationen übergeben?

Da wir hier von Ereignissteuerung sprechen, kann man nicht nur einen Block, sondern gleich mehrere gleichzeitig aufrufen :)

Das realisiert man über Events:

{
#Aufruf
set_DOIF_event ("blabla")
...
}

{
# in diesem Block wird auf das jeweilige Event reagiert
if ([$SELF:"blabla"]) {fhem"set lamp on"}
...
}


mit set_DOIF_event (<Eventinhalt>, <Trigger optional>)

Events innerhalb eines DOIF-Moduls brauchen keinen Event-Trigger, daher kann er weggelassen werden, das ist ressourcenschonender. Wenn man mit anderen kommunizieren möchte (außerhalb des eigenen DOIF-Moduls), dann erzeugt man einfach ein Event mit: set_DOIF_event ("blabla", 1), darauf kann man systemweit reagieren.

Bei den angepinnten Beiträgen im DOIF-Board habe ich schon aufgeräumt - es wird ja Platz benötigt für neue Features :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choenig

Hi Damian,

ich finde den Ansatz wirklich interessant.


Ich finde gut, dass ich bekannte Perl-Syntax ohne drumherum nutzen kann. Die '[:]'-Schreibweise finde ich auch super. Zusätzlich kann ich jetzt mehrere unabhängige Blöcke in einem DOIF zusammenfassen, das fehlte mir vorher.


Ich werd's weiter beobachten und testen :)


LG
Christian