[Gelöst] Hinzufügen eines zweiten Befehls im DOIF - Verständnisproblem

Begonnen von reibuehl, 01 November 2020, 17:57:00

Vorheriges Thema - Nächstes Thema

reibuehl

Hallo!

Ich verwende ein DOIF, um den Status meiner Waschmaschine in einem Dummy anzuzeigen. Bisher habe ich (erfolgreich) dieses DOIF verwendet:

define di_UG_WK_Waschmaschine_Aus DOIF ([UG_WK_Waschmaschine_Pwr:power]<5) {fhem ("set UG_WK_Waschmaschine_Status off") if (Value("UG_WK_Waschmaschine_Status") ne "off")}

Nun wollte ich noch eine Sprachausgabe über einen Amazon Echo einbauen, habe mich da aber irgendwie mit dem Syntax verheddert:

define di_UG_WK_Waschmaschine_Aus DOIF ([UG_WK_Waschmaschine_Pwr:power]<5) {fhem ("set UG_WK_Waschmaschine_Status off ;; set ECHO speak \"Waschmaschine ist fertig!\"") if (Value("UG_WK_Waschmaschine_Status") ne "off")}

Jetzt wird UG_WK_Waschmaschine_Status nicht mehr auf 'off' sondern auf 'off;set ECHO speak "Waschmaschine ist fertig!"' gesetzt.

Ich denke mal, ich bringe hier irgendwie Perl Mode und FHEM Mode im DOIF durcheinander, oder? Ich glaube auch, dass die hintere if-Abfrage im Perl Teil da irgendwie Falsch ist und eigentlich nach vorne zu der eigentlichen IF-Bedingung als zweite Bedingung gehört aber habe es bisher noch nicht geschaft, das so zu formulieren, dass es funktioniert.

Kann mir jemand sagen, wie ich das Kudelmuddel vereinfacht bekomme?

Reiner.

amenomade

Alles gut, Du bit im DOIF Modus, und hast nur eine Perl Bedingung. Sollte gehen, obwohl hier der Umgang über perl /fhem() unnötig ist.

Bei mir geht es wie Du das define geschrieben hast. Mein dummy wird nur auf off gesetzt.

Zeig mal bitte ein "list" von deinem DOIF, damit man genau sieht, was Du implementiert hast.

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

reibuehl

Hier das List des DOIF:

Internals:
   DEF        ([UG_WK_Waschmaschine_Pwr:power]<5) {fhem ("set UG_WK_Waschmaschine_Status off ;; set ECHO speak \"Waschmaschine ist fertig!\"") if (Value("UG_WK_Waschmaschine_Status") ne "off")}
   FUUID      5c59d11e-f33f-3bc6-9cec-3193c6f694ea4741
   MODEL      FHEM
   NAME       di_UG_WK_Waschmaschine_Aus
   NOTIFYDEV  global,UG_WK_Waschmaschine_Pwr
   NR         709
   NTFY_ORDER 50-di_UG_WK_Waschmaschine_Aus
   STATE      cmd_1
   TYPE       DOIF
   VERSION    22161 2020-06-11 12:49:48
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1604240424.85213
           VALUE      1
       cmd_event:
         logdb:
           TIME       1604240424.85213
           VALUE      UG_WK_Waschmaschine_Pwr
       cmd_nr:
         logdb:
           TIME       1604240424.85213
           VALUE      1
       mode:
         logdb:
           TIME       1603965747.56715
           VALUE      enabled
       state:
         logdb:
           TIME       1604240424.85213
           VALUE      cmd_1
       wait_timer:
         logdb:
           TIME       1604240424.77367
           VALUE      no timer
   READINGS:
     2020-11-02 09:52:15   Device          UG_WK_Waschmaschine_Pwr
     2020-11-01 15:20:24   cmd             1
     2020-11-01 15:20:24   cmd_event       UG_WK_Waschmaschine_Pwr
     2020-11-01 15:20:24   cmd_nr          1
     2020-11-02 09:52:15   e_UG_WK_Waschmaschine_Pwr_power 0.04
     2020-10-29 11:02:27   mode            enabled
     2020-11-01 15:20:24   state           cmd_1
     2020-11-01 15:20:24   wait_timer      no timer
   Regex:
     accu:
     cond:
       UG_WK_Waschmaschine_Pwr:
         0:
           power      ^UG_WK_Waschmaschine_Pwr$:^power:
   attr:
     cmdState:
     wait:
       0:
         120
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'UG_WK_Waschmaschine_Pwr','power')<5
   do:
     0:
       0          {fhem ("set UG_WK_Waschmaschine_Status off ;; set ECHO speak \"Waschmaschine ist fertig!\"") if (Value("UG_WK_Waschmaschine_Status") ne "off")}
     1:
   helper:
     DEVFILTER  ^global$|^UG_WK_Waschmaschine_Pwr$
     NOTIFYDEV  global|UG_WK_Waschmaschine_Pwr
     event      eState: E: 1816.5 P: 0.04 I: 0 U: 233.8 f: 50.01,power: 0.04
     globalinit 1
     last_timer 0
     sleepdevice UG_WK_Waschmaschine_Pwr
     sleepsubtimer -1
     sleeptimer -1
     timerdev   UG_WK_Waschmaschine_Pwr
     timerevent eState: E: 1816.5 P: 0.04 I: 0 U: 233.8 f: 50.01,power: 0.04
     triggerDev UG_WK_Waschmaschine_Pwr
     timerevents:
       eState: E: 1816.5 P: 0.04 I: 0 U: 233.8 f: 50.01
       power: 0.04
     timereventsState:
       eState: E: 1816.5 P: 0.04 I: 0 U: 233.8 f: 50.01
       power: 0.04
     triggerEvents:
       eState: E: 1816.5 P: 0.04 I: 0 U: 233.8 f: 50.01
       power: 0.04
     triggerEventsState:
       eState: E: 1816.5 P: 0.04 I: 0 U: 233.8 f: 50.01
       power: 0.04
   internals:
   readings:
     all         UG_WK_Waschmaschine_Pwr:power
   trigger:
   uiState:
   uiTable:
Attributes:
   group      Systemlogik
   room       Logik
   wait       120
Reiner.

amenomade

Genau was ich dachte. Du hast nicht
define .......................... ;; .................eingetragen, sondern
define .......................... ;;;; ................. (guck mal in "Raw definition" -  Knopf unten)

Klicke auf DEF und entferne ein Semikolon (aus zwei).
Oder Klicke auf "Raw definition" und entferne zwei Semikola (aus vier).
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

reibuehl

Reiner.