Hauptmenü

IF und nachfolgend 2 Befehle

Begonnen von kaktus567, 28 Februar 2016, 13:42:12

Vorheriges Thema - Nächstes Thema

kaktus567

@CoolTux: und tschüss, mich nervst Du nicht mehr  ;D ;D ;D :o :o :o

Icinger

Warum das umständliche {fhem()}-Konstrukt?

Beispiel aus der commandref:
define check at +00:10 IF ([outdoor:humidity] > 10) (set switch1 off,set switch2 on) ELSE (set switch1 on,set switch2 off)

Ergo:
MeinWetter:icon:.* IF ([MeinWetter:icon] eq "mostlycloudy") (set temp1 10.0,set temp2 20.0)
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Icinger

Und wenn du schon mit {fhem(......arbiten willst, solltest du die Klammern richtig setzen:
MeinWetter:icon:.* IF ([MeinWetter:icon] eq "mostlycloudy") ({fhem("set temp1 10.0");;fhem("set temp2 20.0")})

oder aber
MeinWetter:icon:.* IF ([MeinWetter:icon] eq "mostlycloudy") ({fhem("set temp1 10.0;;set temp2 20.0")})
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

kaktus567

Zitat von: IcingerWarum das umständliche {fhem()}-Konstrukt?

... weil ich erst "gelesen" habe und auch keine andere Lösung gefunden hatte.  Ich hatte Angst, wieder im Anfängerforum zu schreiben und
irgendwelche "Verweise" zu bekommen  :-[

Ich versuche mal Deinen Ansatz, weil das fhem-Konstrukt ist mir suspect...

Zrrronggg!

Du verwechselst perl "if" und FHEM "IF" und mischst die Syntax.

Zusätzlich ist sowas hier
{fhem("set temp1 10.0")};;{fhem("set temp2 20.0")}

sowieso nicht nötig. Da reicht

{fhem("set temp1 10.0 ;; set temp2 20.0")}



Ebenso zu demzufolge auch umständlich ist auch
({fhem("set temp1 10.0");fhem("set temp2 20.0")})
selbst wenn man perl sagen wollte, es solle fhem sagen folgende Befehle auszuführen anstatt ... die Befehle einfach auszuführen.

Da ich "IF" nicht verwende könnte ich dir nur sagen wie das Konstrukt aussehen müsste, wenn es komplett mit perl "if"
gemacht wäre.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

kaktus567

Ich nehme die einfache Lösung von @Icinger:

MeinWetter:icon:.* IF ([MeinWetter:icon] eq "mostlycloudy") (set temp1 10.0,set temp2 20.0)

Danke, funktioniert und ich kann endlich weitermachen  8)

Icinger

ZitatIch hatte Angst, wieder im Anfängerforum zu schreiben und

ääääähm...... 8)
ZitatFHEM Forum »    FHEM »    Anfängerfragen »    IF und nachfolgend 2 Befehle
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Damian

Zitat von: kaktus567 am 28 Februar 2016, 13:52:54
... weil ich erst "gelesen" habe und auch keine andere Lösung gefunden hatte.  Ich hatte Angst, wieder im Anfängerforum zu schreiben und
irgendwelche "Verweise" zu bekommen  :-[

Ich versuche mal Deinen Ansatz, weil das fhem-Konstrukt ist mir suspect...

statt

MeinWetter:icon:.* IF ([MeinWetter:icon] eq "mostlycloudy") ({fhem("set temp1 10.0")};;{fhem("set temp2 20.0")})


würde ich dir, auch wenn ich der Entwickler von IF bin,  empfehlen:

define di_mywetter DOIF ([MeinWetter:icon] eq "mostlycloudy") (set temp1 10.0, set temp2 20.0)
attr di_mywetter do always


Gruß

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

CoolTux

Zitat von: Icinger am 28 Februar 2016, 13:47:08

Beispiel aus der commandref:
define check at +00:10 IF ([outdoor:humidity] > 10) (set switch1 off,set switch2 on) ELSE (set switch1 on,set switch2 off)


Um Gotteswillen bist Du denn des Wahnsinns, komm dem jungen Mann bloß nicht mit Dokumentation. Sowas ist ein rotes Tuch für ihn
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kaktus567

Entschuldingung an alle, die mit konstruktiven Vorschlägen weiterhelfen wollten, ich muss hier wieder zu machen !!!

Ich nutze die Variante von @Icinger, hätte aber gerne noch den Unterschied zu DOIF disktuiert.

Sorry, muss hier zumachen, da wieder @CoolTux den Thread zumüllt ...


Zitat von: kaktus567 am 28 Februar 2016, 13:57:02
Ich nehme die einfache Lösung von @Icinger:

MeinWetter:icon:.* IF ([MeinWetter:icon] eq "mostlycloudy") (set temp1 10.0,set temp2 20.0)

Danke, funktioniert und ich kann endlich weitermachen  8)