DOIF: "Repeat .. Until" möglich?

Begonnen von heikoh81, 09 Januar 2016, 13:38:06

Vorheriges Thema - Nächstes Thema

Sunny

Moin Ellert,

Zitat von: Ellert am 10 Januar 2016, 16:09:44
Einfach mal probieren, dann wird's klar ;)
Wollte mir, in nächster Zeit eh ein komplettes Testsystem einrichten, kommt auf meine Todo Liste.
Hoffe ich bekomme es dann in meinen Schädel... :-[

Moin Damian,

Zitat von: Damian am 10 Januar 2016, 17:16:14
Das erste DOIF-Modul in der Statistik von einigen, die ich bei mir definiert habe, findet man in der letzten Zeile mit 292 Millisekunden, im Durchschnitt verbrauchte das Modul pro Aufruf 0,09 Millisekunden.
Wer, wenn nicht Du, als Programmierer von DOIF, wird auch alle DOIF Perfekt definiert haben.  ;)
Der apptime-Befehl kommt auch auf die Todo Liste nur werde hier nicht ca. 25m 1-wire mit 9 DS18B20 installieren.

Euch beiden vielen Dank für Eure Zeit, Geduld & noch nen schönen Sonntagabend
Sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

heikoh81

#16
Hallo zusammen,

ich habe zwischenzeitlich alle neuen Beiträge aufmerksam nachgearbeitet.

Zitat von: Sunny am 10 Januar 2016, 10:37:27
Entschuldigung für meine Kaperung Deines Threads.
Hoffe Du kannst mir verzeihen.
Überhaupt kein Problem, durch die Diskussion habe ich wieder viel dazugelernt.

Zitat
Moin Damian,

auch Dir erstmal ein Riesen DANK für Dein DOIF.
Ohne wäre ich noch nicht soweit mit der Anpassung von FHEM.
Dem möchte ich mich an dieser Stelle ebenfalls anschließen.
Ich hatte fhem vor DOIF schon 1,5 Jahre verwendet - und ich muss sagen, nach der Einarbeitung ist mit DOIF vieles deutlich schneller umzusetzen.
Ich habe bestimmt mehrere 100 notifies sowie mehr als 100 Timer im Einsatz, und es sind jetzt bestimmt schon 20-30 DOIFs.
Da ist auch kein Ende in Sicht, das werden bestimmt auch 100.
Im Leerlauf auf einem Raspi, der zusätzlich den Raspbian-Desktop bereitstellt, sind es bisher zwischen 2-5% laut der CPU-Grafik, also eigentlich nicht signifikant bisher.

Zitat von: Ellert am 10 Januar 2016, 16:09:44
Hiermit[Heizung_d:state] eq "WW_Hoch" fragst Du den Wert von [Heizung_d] ab, der kann "WW_Hoch" sein.

Und hiermit[Funksteckdose_SATReceiver:?state] fragst Du, ob im Ereignis von Funksteckdose_SATReceiver die Zeichenkette "state" vorhanden ist.
Den Bedeutungsunterschied erzeugt das Fragezeichen nach dem Doppelpunkt.

Das ist der entscheidende Hinweis.
Mich hatte

[Funksteckdose_SATReceiver:?state]

schon die ganze Zeit irritiert, jetzt habe ich es verstanden.
Ich denke, es war auch nie die Absicht, nach der Zeichenkette "state" zu suchen, sondern man will den Wert von state abfragen.
Also muss das Fragezeichen ganz nach vorne.

@Ellert:
Eine Sache verstehe ich noch nicht:

DOELSEIF (![SATReiver] eq "present")


Was bewirkt das ! vor der [ ?
Soll das ein "ungleich" darstellen?
In der gesamten commandref-de wird kein "![" gefunden.

Viele Grüße,
Heiko

Ellert

Zitat@Ellert:
Eine Sache verstehe ich noch nicht:
Code: [Auswählen]

DOELSEIF (![SATReiver] eq "present")


Was bewirkt das ! vor der [ ?
Soll das ein "ungleich" darstellen?
In der gesamten commandref-de wird kein "![" gefunden.

Gut, dass Du nachfragst, dann kann ich gleich einen Fehler korrigieren, es müsste so geschrieben werden
ZitatDOELSEIF (!([SATReiver] eq "present"))
so ginge es auch
ZitatDOELSEIF ([SATReiver] ne "present")

! ist ein Perloperator und steht für Negation, s. Perloperatoren, die Klammer ist wegen der Rangfolge notwendig.