Hauptmenü

Bedingungen in AT

Begonnen von rallye, 23 Januar 2018, 11:17:18

Vorheriges Thema - Nächstes Thema

rallye

Ich bin am Verzweifeln ! Eigentlich wollte ich meine Lampen abhängig von Wochenende oder Wochentag schalten, war mit $we aber sehr wenig erfolgreich. Nun habe ich mir eine "Testumgebung" erzeugt mit folgender Definition
define at_test at +*00:00:10 { if ($wday == 4) { fhem ("set test_lampe on");; } }
dieses at_test schaltet den dummy test_lampe auf on wenn die Bedingung erfüllt ist. Doch egal was ich in die Bedingung schreibe - ich habe es versucht mit

  • ($wday == 4)
  • ($wday == 3)
  • ($we)
  • (!($we))
  • ((!$we))
die Bedingung ist immer "true" und die Lampe wird eingeschaltet. In meiner Verzweiflung habe ich mir den Wert von $we ins Log geschrieben - der ist heute Dienstag korrekter Weise "0" (ohne Hochkomma). Mir ist absolut unklar was ich falsch mache. Muß ich fhem irgend etwas "sagen"/"enablen"/"laden"  :-\ ?

Danke
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

nils_

Zitat von: statler am 23 Januar 2018, 11:17:18
Muß ich fhem irgend etwas "sagen"/"enablen"/"laden"  :-\ ?

eigentlich nicht....

poste doch mal nen logauszug / event-monitor dazu
und evtl. ein list von den beiden devices (auch wenn die überschaubar sein sollten....)
viele Wege in FHEM es gibt!

kumue

nimm doch das "große IF".... du bleibst somit auf der FHEM-Ebene
define at_test at +*00:00:10  IF ($wday == 4) (set test_lampe on)

Otto123

Hi,

was ergibt denn bei Dir {$wday} in der FHEM Kommandozeile?
und {$wday == 2} ?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

automatisierer

Zitat von: Otto123 am 23 Januar 2018, 14:23:09
Hi,

was ergibt denn bei Dir {$wday} in der FHEM Kommandozeile?
Dienstag...  :-X

rallye

{$wday} in der Komandozeile ergibt 2
{$wday == 2} in der Komandozeile ergibt 1

Und {$we} in der Kommandozeile ergibt 0. Also alles wie es sein sollte.


Zitat von: automatisierer am 23 Januar 2018, 14:40:43
Dienstag...  :-X
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

rallye

Bittesehr, hier die lists:
AT:
Internals:
   COMMAND    {
if ($wday == 4) {
  fhem ("set test_lampe on");;
}
}
   DEF        +*01:00:10 {
if ($wday == 4) {
  fhem ("set test_lampe on");;
}
}
   NAME       at_test
   NR         106
   NTM        15:20:34
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      inactive
   TIMESPEC   01:00:10
   TRIGGERTIME 1516717234.72017
   TRIGGERTIME_FMT 2018-01-23 15:20:34
   TYPE       at
   READINGS:
     2018-01-23 14:20:24   state           inactive
Attributes:
   room       test
   verbose    5



notify
Internals:
   .COMMAND   set test_lampe on
   DEF        (at_tes.) set test_lampe on
   NAME       nfy_test
   NOTIFYDEV  at_tes.
   NR         107
   NTFY_ORDER 50-nfy_test
   REGEXP     (at_tes.)
   STATE      2018-01-23 11:06:06
   TYPE       notify
   READINGS:
     2018-01-23 10:38:51   state           active
Attributes:
   room       test



dummy test_lampe:
Internals:
   NAME       test_lampe
   NR         108
   STATE      off
   TYPE       dummy
   READINGS:
     2018-01-23 11:18:32   state           off
Attributes:
   room       test
   webCmd     on:off


log:
2018.01.23 12:20:04 5: redefine at command at_test as +*01:00:10 {
if ($wday == 4) {
  fhem ("set test_lampe on");;
}
}
2018.01.23 13:20:14 5: redefine at command at_test as +*01:00:10 {
if ($wday == 4) {
  fhem ("set test_lampe on");;
}
}
2018.01.23 14:20:24 5: redefine at command at_test as +*01:00:10 {
if ($wday == 4) {
  fhem ("set test_lampe on");;
}
}



habe das Intervall wieder auf 10" gesetzt
Event Monitor
2018-01-23 14:56:09 dummy test_lampe on
2018-01-23 14:56:09 at at_test Next: 14:56:19
2018-01-23 14:56:19 dummy test_lampe on
2018-01-23 14:56:19 at at_test Next: 14:56:29
2018-01-23 14:56:29 dummy test_lampe on
2018-01-23 14:56:29 at at_test Next: 14:56:39
2018-01-23 14:56:39 dummy test_lampe on
2018-01-23 14:56:39 at at_test Next: 14:56:49



Zitat von: nils_ am 23 Januar 2018, 13:57:26
eigentlich nicht....

poste doch mal nen logauszug / event-monitor dazu
und evtl. ein list von den beiden devices (auch wenn die überschaubar sein sollten....)

LG Josef
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

rallye

bringt leider das selbe Ergebnis... :-(

Zitat von: kumue am 23 Januar 2018, 14:10:42
nimm doch das "große IF".... du bleibst somit auf der FHEM-Ebene
define at_test at +*00:00:10  IF ($wday == 4) (set test_lampe on)
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

kumue

wozu das notify nfy_test ?

Otto123

#9
Das notify nfy_test schaltet doch immer  :-\
Da ist völlig egal was Du im at machst. -> works as expected

@automatisierer -> Dein FHEM ist verwirrt  ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kumue

Zitat von: statler am 23 Januar 2018, 15:01:21
bringt leider das selbe Ergebnis... :-(

define at_test at +*00:00:10  IF ($wday == 2) (set test_lampe on)
schaltet dir aller 10min dienstags die lampe (dummy) an... wenn du auf nfy_test verzichtest...

automatisierer

define at_test at +*00:00:10 { if ($wday == 4) { fhem ("set test_lampe on");; } }

das geht auch, aber erst Übermorgen...

alternativ ginge dieses schon heute:
define at_test at +*00:00:10 { if ($wday == (4-2)) { fhem ("set test_lampe on");; } }

Liegt daran, dass 4 != Dienstag - oder anders geasgt 2 == Dienstag

Liegt daran, dass bei Perl die Woche am Sonntag beginnt und Perl (wie andere Programmiersprachen meisst auch) bei 0 zu zählen beginnt.

Sonntag == 0
Montag == 1
Dienstag == 2
...

rallye

Ja, das ist richtig. Allerdings: das notify wird in der derzeitigen Form vom "at" gar nicht aufgerufen. Am Ende des Tages möchte ich im "at" ein "trigger notify" abhängig vom status Wochentag/Wochenende machen. Im vorliegenden Beispiel ist das "notify-Listing" nicht relevant (auch an kumue).


Zitat von: Otto123 am 23 Januar 2018, 15:09:57
Das notify nfy_test schaltet doch immer  :-\
Da ist völlig egal was Du im at machst. -> works as expected

@automatisierer -> Dein FHEM ist verwirrt  ;D
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

rallye

Danke @automatisierer. das ist mir klar. Ich wollte eine Bedingung die "false" ist erzeugen (also eben nicht Dienstag), damit das licht nicht angeht. Doch leider schaltet es an ...

Ich fahr jetz mal mein system neu hoch - vielleicht hat's wo einen Knopf ??

Zitat von: automatisierer am 23 Januar 2018, 15:25:05
define at_test at +*00:00:10 { if ($wday == 4) { fhem ("set test_lampe on");; } }

das geht auch, aber erst Übermorgen...

alternativ ginge dieses schon heute:
define at_test at +*00:00:10 { if ($wday == (4-2)) { fhem ("set test_lampe on");; } }

Liegt daran, dass 4 != Dienstag - oder anders geasgt 2 == Dienstag

Liegt daran, dass bei Perl die Woche am Sonntag beginnt und Perl (wie andere Programmiersprachen meisst auch) bei 0 zu zählen beginnt.

Sonntag == 0
Montag == 1
Dienstag == 2
...
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Otto123

#14
doch das wird "aufgerufen" -> (at_tes.) wird bei jedem Event mit at-tes. getriggert, also auch bei at-test  ;D ;D ;D

Aber Du musst mir das nicht glauben, dann schreib in das notify doch was anderes rein und nicht genau den Befehl für Dienstag  ;)

Noch besser wäre im notify das regExp .* - dann ist es immer HELL  ;D ;D ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz