Hauptmenü

notify & Value()

Begonnen von Markus Hermann, 28 April 2013, 10:35:41

Vorheriges Thema - Nächstes Thema

Markus Hermann

Hallo Forum,

ich habe mehrere HM-SEC-SC (sec_1 bis sec_7) und einen HM-SEC-MDIR (HM_PIRI) die per notify den Dummy-Schalter "Alarm" auf "on"
setzen soll, aber nur wenn ein weiterer Dummy "Alarm_sw" schon auf auf "on" steht.

Bei dem 1.) notify klappt das auch, aber beim 2. nicht. Was mache ich falsch?
Im Log steht leider nichts. Ich vermute mein Value("sec_.*) eq "open" ist nicht korrekt, oder?

1.)
define AlarmPIRI notify HM_PIRI.*:* {if (  Value("Alarm_sw") eq "on" && Value("HM_PIRI") eq "motion") {fhem("set Alarm on") }}

2.)
define AlarmSEC notify sec_.*:open  {if (  Value("Alarm_sw") eq "on" && Value("sec_.*")  eq "open")   {fhem("set Alarm on") }}

Gruß
Markus
CUL/CUL-RFR/HM-LAN an Cubietruck

FS20/FHT/TFK/UTS/KS300/HM-SEC-SC/HMS100/HM-OU-CFM-PL/HM-RC-SEC3/

FLOORPLAN auf Android-Tablet und VDR

justme1968

Value() funktioniert mit einem device namen nicht mit einem regulären ausdruck. du fragst damit den zustand von genau einem device ab. wenn du mehrere devices zusammen fassen möchtest kannst du das z.b. mit einer structure machen und dann den zusammen gefasten status der structure abfragen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

UliM

Zitat von: Markus Hermann schrieb am So, 28 April 2013 10:35Ich vermute mein Value("sec_.*) eq "open" ist nicht korrekt, oder?
Hiho,
sehe ich auch so. Es soll der Value eines device geprüft werden, dessen Name "sec_.*" lautet.

M.E. musst Du die secs durch-loopen mit sowas wie
my $alarm=0;
my $dev="";
foreach (1..7) {
   $dev="sec_".$_;
   if (Value("$dev") eq "open") {
     $alarm=1;
   }
}
if ( Value("Alarm_sw") eq "on" && $alarm == 1) {
   fhem("set Alarm on") }
}


Ungetestet.

Viel Erfolg,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

stromer-12

Hi,

Zitat von: Markus Hermann schrieb am So, 28 April 2013 10:35define AlarmSEC notify sec_.*:open  {if (  Value("Alarm_sw") eq "on" && Value("sec_.*")  eq "open")   {fhem("set Alarm on") }}

ich habe zwar kein HM aber es sollte mit:

define AlarmSEC notify sec_.*:open  {if (  Value("Alarm_sw") eq "on" && Value("$NAME")  eq "open")   {fhem("set Alarm on") }}

funktionieren.

Edit:
Bzw das notify löst ja bei "open" aus, also brauchst du ja nur auf "Alarm_sw" testen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Zrrronggg!

define AlarmSEC notify sec_.*:open ...


funktioniert defintiv. Benutze ich an diversen Stellen. Die Art des Devices ist unerheblich.


Vergleiche hierzu auch den Artikel Alarmanlage im Wiki
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

stromer-12

Ich meinte das er innerhalb des notify auf den Test "open" verzichten kann.

define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" ) {fhem("set Alarm on") }}
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Markus Hermann

ZitatIch meinte das er innerhalb des notify auf den Test "open" verzichten kann.

define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" ) {fhem("set Alarm on") }}


jupp, so geht es auch :-)

Danke an alle für die Tipps
CUL/CUL-RFR/HM-LAN an Cubietruck

FS20/FHT/TFK/UTS/KS300/HM-SEC-SC/HMS100/HM-OU-CFM-PL/HM-RC-SEC3/

FLOORPLAN auf Android-Tablet und VDR