Hauptmenü

Ich finde den Fehler nicht...

Begonnen von Fistandantilus, 27 November 2016, 22:40:04

Vorheriges Thema - Nächstes Thema

Fistandantilus

Hi,

ich habe folgendes DOIF:

([OG.Flur.BWM.Treppe:motion] eq "on" and [OG.Flur.BWM.Treppe:current] < 10)
(set FSR14_2_3 on)(set FSR14_2_3 off)
DOELSE ()


Als wait habe ich derzeit zum testen 0,10 gesetzt. Leider habe ich das Problem, dass der erste Befehl im cmd nicht ausgeführt wird. Im Log steht folgendes:

2016.11.27 22:22:00 2: OG.Flur.BWM.Treppe_actions: set FSR14_2_3 on: Please define FSR14_2_3 on first
2016.11.27 22:22:10 3: EnOcean set FSR14_2_3 off


Tausche ich die Befehle, schlägt auch wieder der erste fehl und der Zweite wird ausgeführt. Wo ist der Fehler?

VG
F.
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Ellert


Fistandantilus

Hier:

Internals:
   CFGFN
   DEF        ([OG.Flur.BWM.Treppe:motion] eq "on" and [OG.Flur.BWM.Treppe:current] < 10)
(set FSR14_2_3 on)(set FSR14_2_3 off)
DOELSE ()
   NAME       OG.Flur.BWM.Treppe_actions
   NR         1934
   NTFY_ORDER 50-OG.Flur.BWM.Treppe_actions
   STATE      cmd_2
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd:
         Logdb:
           TIME       1480292122.58064
           VALUE      2
       Cmd_event:
         Logdb:
           TIME       1480292122.58064
           VALUE      OG.Flur.BWM.Treppe
       Cmd_nr:
         Logdb:
           TIME       1480292122.58064
           VALUE      2
       Cmd_seqnr:
         Logdb:
           TIME       1480290323.86128
           VALUE      2
       Error:
         Logdb:
           TIME       1480290311.85359
           VALUE      set FSR14_2_3 on
       State:
         Logdb:
           TIME       1480292122.58064
           VALUE      cmd_2
       Wait_timer:
         Logdb:
           TIME       1480290323.25936
           VALUE      no timer
   Readings:
     2016-11-28 01:15:22   Device          OG.Flur.BWM.Treppe
     2016-11-28 01:15:22   cmd             2
     2016-11-28 01:15:22   cmd_event       OG.Flur.BWM.Treppe
     2016-11-28 01:15:22   cmd_nr          2
     2016-11-28 01:15:22   e_OG.Flur.BWM.Treppe_current 0.0
     2016-11-28 01:15:22   e_OG.Flur.BWM.Treppe_motion off
     2016-11-28 01:15:22   state           cmd_2
     2016-11-28 00:45:23   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'OG.Flur.BWM.Treppe','motion','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" and ReadingValDoIf($hash,'OG.Flur.BWM.Treppe','current','','',AttrVal($hash->{NAME},'notexist',undef)) < 10
   Devices:
     0           OG.Flur.BWM.Treppe
     all         OG.Flur.BWM.Treppe
   Do:
     0:
       0          set FSR14_2_3 on
       1          set FSR14_2_3 off
     1:
       0
   Helper:
     event      voltage: 3.6,current: 0.0,sensorType: wall,battery: ok,motion: off,off
     globalinit 1
     last_timer 0
     sleepdevice OG.Flur.BWM.Treppe
     sleepsubtimer -1
     sleeptimer -1
     timerdev   OG.Flur.BWM.Treppe
     timerevent voltage: 3.6,current: 0.0,sensorType: wall,battery: ok,motion: off,off
     triggerDev OG.Flur.BWM.Treppe
     timerevents:
       voltage: 3.6
       current: 0.0
       sensorType: wall
       battery: ok
       motion: off
       off
     timereventsState:
       voltage: 3.6
       current: 0.0
       sensorType: wall
       battery: ok
       motion: off
       state: off
     triggerEvents:
       voltage: 3.6
       current: 0.0
       sensorType: wall
       battery: ok
       motion: off
       off
     triggerEventsState:
       voltage: 3.6
       current: 0.0
       sensorType: wall
       battery: ok
       motion: off
       state: off
   Internals:
   Itimer:
   Readings:
     0           OG.Flur.BWM.Treppe:motion OG.Flur.BWM.Treppe:current
     all         OG.Flur.BWM.Treppe:motion OG.Flur.BWM.Treppe:current
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   do         always
   room       OG.Flur
   wait       0,10


Ich verstehe nur das hier nicht:

ZitatReadingValDoIf($hash,'OG.Flur.BWM.Treppe','motion','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" and ReadingValDoIf($hash,'OG.Flur.BWM.Treppe','current','','',AttrVal($hash->{NAME},'notexist',undef)) < 10

Hier sind die Readings vom Bewegungsmelder:

ZitatReadings
battery   ok   2016-11-28 01:15:22
current   0.0   2016-11-28 01:15:22
motion   off   2016-11-28 01:15:22
sensorType   wall   2016-11-28 01:15:22
state   off   2016-11-28 01:15:22
teach   4BS teach-in accepted EEP A5-07-01 Manufacturer: EnOcean GmbH   2016-11-24 01:14:57
voltage   3.6   2016-11-28 01:15:22
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Ellert

ZitatIch verstehe nur das hier nicht:
Das ist die DOIF interne Umsetzung der Bedingung.

Die DOIF Definition sieht o.k. aus.

Was passiert, wenn Du 3 Befehlssequenzen verwendest?
() (set FSR14_2_3 on) (set FSR14_2_3 off)
oder
(set FSR14_2_3 on) (set FSR14_2_3 on) (set FSR14_2_3 off)
mit wait 0,5,10

Welche DOIF-Version verwendest Du? version DOIF

Was passiert, wenn Du die Befehle in die Befehlszeile eingibst?
set FSR14_2_3 on;sleep 10; set FSR14_2_3 off


Oder mal FSR14_2_3 löschen, Restart und FSR14_2_3 neu anlegen. Über Raw definition geht es einfach, wenn Du den Code vorher kopierst.

Fistandantilus

Version ist folgende:
ZitatFile       Rev   Last Change

98_DOIF.pm 12215 2016-09-26 21:02:49Z damian-s

Die Befehlszeile mit:

Zitatset FSR14_2_3 on;sleep 10; set FSR14_2_3 off

funktioniert problemlos.
Den Rest kann ich erst heute Abend testen. Remote und per Tel. Brech ich mir sonst beim Tippen die Finger  ;D
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Fistandantilus

Ich hab jetzt 3 Kommandos drin und jetzt kommt der Fehler bei den ersten beiden :(
Das ist echt strange...
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Fistandantilus

Keiner eine Idee? Das mit dem Löschen kann ich nicht nachvollziehen, was soll das bewirken?
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Ellert

ZitatDas mit dem Löschen kann ich nicht nachvollziehen, was soll das bewirken?
Ist ein Hausmittel, wenn ich nicht weiter weiss.

DOIF stellt die Meldung, die vom Set-Befehl kommt nur dar.
Auffällig ist, dass die Meldung lautet  "define FSR14_2_3 on first", als ob "FSR14_2_3" und "on" zum Gerätenamen gehören, als verwendestest Du ein nichtkonformes Leerzeichen.
Mit EnOcean habe ich keine Erfahrung, da kann ich nicht weiter helfen.

Fistandantilus

Nach allem rumprobieren, funktioniert es jetzt:

([OG.Flur.BWM.Treppe:motion] eq "on" and [OG.Flur.BWM.Treppe:current] < 10)
(define Treppe_an at +00:00:01 set FSR14_2_3 on)(define Treppe_aus at +00:00:01 set FSR14_2_3 off)
DOELSE ()


Warum die ursprünglicher Version nicht läuft, weiß ich immer noch nicht. Das Leerzeichen scheidet auch aus, da das Vertauschen der Kommandos trotzdem immer nur den letzten Befehl ausgeführt hat.
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage