Hauptmenü

DOIF Syntax Problem

Begonnen von funeddy, 28 September 2018, 15:19:14

Vorheriges Thema - Nächstes Thema

funeddy

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
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

amenomade

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?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

funeddy

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
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

funeddy

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
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

Damian

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

                                        <- Hier fehlt etwas
(set Buero_Alienware off)

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

funeddy

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

Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

Damian

Du musst die Bedingung mit einer Klammer zu abschließen, bevor du den Ausführungsteil mit (set... angibst.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

funeddy

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
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

funeddy

Ohne leer zeilen, das ist schon klar.

VG Joerg
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

funeddy

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
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber


funeddy

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
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

amenomade

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

::)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus