FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: funeddy am 28 September 2018, 15:19:14

Titel: DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 15:19:14
Hallo zusammen,
Ich habe da mal folgende Frage.
Ich möchte eine DOIF Abfrage in 99_myUtils.pm speichern.
Der Code ist folgender
define Alienware DOIF
(
[Alienware_WINCONNECT battery_LifePercent] > 99
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Online"


(set Buero_Alienware off)


[Alienware_WINCONNECT battery_LifePercent] < 11
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Offline"

)

(set Buero_Alienware on)

DOELSEIF

(
[Alienware_WINCONNECT battery_LifePercent] < 06
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Offline"
)

(set Buero_Alienware on)

DOELSE
Titel: Antw:DOIF Syntax Problem
Beitrag von: amenomade am 28 September 2018, 16:24:30
https://fhem.de/commandref_DE.html#DOIF

    define <name> DOIF (<Bedingung>) (<Befehle>) DOELSEIF (<Bedingung>) (<Befehle>) DOELSEIF ... DOELSE (<Befehle>)

Schau mal deine Klamern und wie deine Befehle mit den Bedingungen gemischt sind.
Und das hat gar nichts in myUtils zu tun

Ansonsten, was ist das Problem?
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 17:13:44
das Problem ist das ich mit WINCONNET denn Akku eines Laptops abfragen will. Immer wenn der Akku über 99% ist möchte ich einen Aktor einschalten und wenn der Akku unter 20 % ist soll FHEM den Aktor wieder zu schalten.
WINCONNECT ist installiert und mit dem PC verbunden. Das läuft also schon mal.
Ich hatte gedacht wenn ich in myUtils eine Abfrage speichere kann ich das Problem lösen. Offenbar gehört die Abfrage also nicht in MyUtils.
Wo muss ich dann die Abfrage hintun damit das läuft.

vielen Dank
VG Joerg
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 17:14:43
das Problem ist das ich mit WINCONNET denn Akku eines Laptops abfragen will. Immer wenn der Akku über 99% ist möchte ich einen Aktor ausschalten und wenn der Akku unter 20 % ist soll FHEM den Aktor wieder zu schalten.
WINCONNECT ist installiert und mit dem PC verbunden. Das läuft also schon mal.
Ich hatte gedacht wenn ich in myUtils eine Abfrage speichere kann ich das Problem lösen. Offenbar gehört die Abfrage also nicht in MyUtils.
Wo muss ich dann die Abfrage hintun damit das läuft.

vielen Dank
VG Joerg
Titel: Antw:DOIF Syntax Problem
Beitrag von: Damian am 28 September 2018, 17:25:23
define Alienware DOIF
(
   [Alienware_WINCONNECT battery_LifePercent] > 99
and
   [Alienware_WINCONNECT battery_PowerLineStatus] eq "Online"

                                        <- Hier fehlt etwas
(set Buero_Alienware off)

...
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 17:35:47
Hallo Damian,

wo tue ich die DOIF Abfrage in FHEM hin, damit WINCONNECT sie ordentlich verarbeiten kann.
so soll die Abfrage ausschauen.
define Alienware DOIF
(
   [Alienware_WINCONNECT battery_LifePercent] > 99
and
   [Alienware_WINCONNECT battery_PowerLineStatus] eq "Online"
(set Buero_Alienware off)


vielen dank
vg joerg

Titel: Antw:DOIF Syntax Problem
Beitrag von: Damian am 28 September 2018, 17:38:22
Du musst die Bedingung mit einer Klammer zu abschließen, bevor du den Ausführungsteil mit (set... angibst.
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 17:43:47
ich wollte es insgesamt so machen.

define Alienware DOIF
(
[Alienware_WINCONNECT battery_LifePercent] > 99
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Online"


(set Buero_Alienware off)


[Alienware_WINCONNECT battery_LifePercent] < 11
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Offline"

)

(set Buero_Alienware on)

DOELSEIF

(
[Alienware_WINCONNECT battery_LifePercent] < 06
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Offline"
)

(set Buero_Alienware on)

DOELSE


die Frage die mich eigentlich quält ist folgende,
muss  ich die Abfrage in der fhem.cfg speichern oder wo anders.

vielen Dank VG Joerg
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 17:44:46
Ohne leer zeilen, das ist schon klar.

VG Joerg
Titel: Antw:DOIF Syntax Problem
Beitrag von: Damian am 28 September 2018, 17:51:17
Du gibst in der Kommandozeile

define Alienware DOIF

ein

gehst auf das definierte Device Alienware

klickst auf DEF

und kopierst deine Definition:

(
[Alienware_WINCONNECT battery_LifePercent] > 99
and
[Alienware_WINCONNECT battery_PowerLineStatus] eq "Online"
...


Danach Save config klicken. Man braucht nichts in der cfg selbst zu editieren.
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 18:15:02
Hallo Damian,
define hat funktioniert,
wenn ich dann die Abfrage in DEF abspeichere und das DEF neu öffne steht nix mehr drin und in der fhem.cfg steht nur das define.
wie kann ich checken ob meine Abfrage richtig ist ?.

vielen Dank
Vg Joerg
Titel: Antw:DOIF Syntax Problem
Beitrag von: Damian am 28 September 2018, 18:32:19
Zitat von: funeddy am 28 September 2018, 18:15:02
Hallo Damian,
define hat funktioniert,
wenn ich dann die Abfrage in DEF abspeichere und das DEF neu öffne steht nix mehr drin und in der fhem.cfg steht nur das define.
wie kann ich checken ob meine Abfrage richtig ist ?.

vielen Dank
Vg Joerg

Nachdem du die Definition hineinkopiert hast, musst du natürlich noch auf  modify Alienware klicken.
Titel: Antw:DOIF Syntax Problem
Beitrag von: Frank_Huber am 28 September 2018, 19:02:11
Ich empfehle zu lesen und verinnerlichen:
https://fhem.de/Heimautomatisierung-mit-fhem.pdf
Titel: Antw:DOIF Syntax Problem
Beitrag von: funeddy am 28 September 2018, 20:49:10
Hallo zusammen,
vielen Dank für die schnellen Antworten. Es hat alles bestens geklappt und jetzt läuft alles gut.
Ich werde mir demnächst die Doku anlesen.

vielen lieben Dank nochmal.
VG Joerg
Titel: Antw:DOIF Syntax Problem
Beitrag von: amenomade am 30 September 2018, 10:11:07
Naja... wer hat das nie gemacht: zuerst machen, dann die Doku lesen.  ;) :D

Was aber nicht passieren sollte ist:
1 - experimentieren
2 - im Forum fragen
3 - erst die Doku lesen

Besser wäre:
1 - expermientieren
2 - die Doku lesen
3 - anhand der Doku weiter experimentieren
4 - wenn noch Problemen, dann im Forum fragen

::)