diff --git a/fhem/FHEM/98_archetype.pm b/fhem/FHEM/98_archetype.pm index e99cfd4e1..810b746c4 100755 --- a/fhem/FHEM/98_archetype.pm +++ b/fhem/FHEM/98_archetype.pm @@ -543,7 +543,8 @@ sub archetype_attrCheck($$$$;$) { return $ret; } - CommandAttr(undef, "$name $attribute $desired"); + fhem("attr $name $attribute $desired"); + # CommandAttr(undef, "$name $attribute $desired"); } return; @@ -676,20 +677,26 @@ sub archetype_devspec($;$) { no warnings; $devspecs .= " a:actual_$attribute=.+"; + my $actual_attribute = AttrVal($SELF, "actual_$attribute", ""); - my $mandatory = join(" ", archetype_evalSpecials( - $SELF, AttrVal($SELF, "actual_$attribute", ""), "mandatory" - )); - - while($mandatory =~ m/[^\|]\|[^\|]/){ - my @parts = split("\\|\\|", $mandatory);; - $_ =~ s/(.* )?(\S+)\|(\S+)( .*)?/$1$2$4\|\|$1$3$4/ for(@parts);; - $mandatory = join("\|\|", @parts);; - } - - for my $mandatory (split("\\|\\|", $mandatory)){ + if($actual_attribute =~ m/^\{.*\}$/){ $devspecs .= " .+"; - $devspecs .= ":FILTER=a:$_=.+" for(split(" ", $mandatory)); + } + else{ + my $mandatory = join(" ", archetype_evalSpecials( + $SELF, $actual_attribute, "mandatory" + )); + + while($mandatory =~ m/[^\|]\|[^\|]/){ + my @parts = split("\\|\\|", $mandatory);; + $_ =~ s/(.* )?(\S+)\|(\S+)( .*)?/$1$2$4\|\|$1$3$4/ for(@parts);; + $mandatory = join("\|\|", @parts);; + } + + for my $mandatory (split("\\|\\|", $mandatory)){ + $devspecs .= " .+"; + $devspecs .= ":FILTER=a:$_=.+" for(split(" ", $mandatory)); + } } } } diff --git a/fhem/FHEM/98_monitoring.pm b/fhem/FHEM/98_monitoring.pm index 9d45d740e..3e693a2ee 100644 --- a/fhem/FHEM/98_monitoring.pm +++ b/fhem/FHEM/98_monitoring.pm @@ -398,6 +398,7 @@ sub monitoring_Notify($$) { } # module Fn ################################################################### +# stateFormat ################################################################# sub monitoring_modify($) { my ($SELF, $list, $operation, $value, $wait) = split("\\|", shift); my ($hash) = $defs{$SELF}; @@ -565,7 +566,7 @@ sub monitoring_setActive($) { Define
- define <name> <add-event> [<remove-event>]
+ define <name> monitoring <add-event> [<remove-event>]
- define <name> <add-event> [<remove-event>]
+ define <name> mointoring <add-event> [<remove-event>]