mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-09 20:57:11 +00:00
HMtemplate:introduce unassign - rename apply to assign
git-svn-id: https://svn.fhem.de/fhem/trunk@16604 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
11ece76d68
commit
0696f44fea
@ -17,11 +17,11 @@ sub HMtemplate_noDup(@);
|
||||
use Blocking;
|
||||
use HMConfig;
|
||||
my %HtState =(
|
||||
s0=>{name=>"init" ,cmd=>["select" ,"defTmpl","delete","edit"] ,info=>[ "delete to remove a template definition"
|
||||
s0=>{name=>"init" ,cmd=>["select" ,"defTmpl","delete","edit"] ,info=>[ "delete to unassign a template definition"
|
||||
,"defTmpl to greate a template"
|
||||
,"- use an entity as default"
|
||||
,"edit to modify a template definition"
|
||||
,"select to apply a template to a entity"
|
||||
,"select to assign a template to a entity"
|
||||
]}
|
||||
,s1=>{name=>"edit" ,cmd=>["dismiss","save" ,"saveAs","importReg"] ,info=>[ "change attr Reg_ as desired"
|
||||
,"change attr tpl_params ':' separated"
|
||||
@ -29,7 +29,7 @@ my %HtState =(
|
||||
,"saveAs to create a copy"
|
||||
,"dismiss will reset HMtemplate"
|
||||
]}
|
||||
,s2=>{name=>"defTmpl",cmd=>["dismiss","save","saveAs"] ,info=>[ "1)set attr tpl_type"
|
||||
,s2=>{name=>"defTmpl",cmd=>["dismiss","save" ,"saveAs"] ,info=>[ "1)set attr tpl_type"
|
||||
,"2)set attr tpl_source"
|
||||
,"3)set attr tpl_peer if peer required"
|
||||
,"4)set attr tpl_params ':' separated"
|
||||
@ -37,12 +37,12 @@ my %HtState =(
|
||||
]}
|
||||
,s3=>{name=>"defTmpl",cmd=>["defTmpl","edit" ,"delete"] ,info=>[ "delete"
|
||||
]}
|
||||
,s4=>{name=>"select" ,cmd=>["dismiss","apply" ,"select"] ,info=>[ "apply the selected template to an entity"
|
||||
,s4=>{name=>"select" ,cmd=>["dismiss","assign" ,"select","unassign"] ,info=>[ "assign/unassign the selected template to an entity"
|
||||
,"1) choose target entity"
|
||||
,"2) select a peer if required"
|
||||
,"3) select type if required"
|
||||
,"4) fill all attr tpl_param_"
|
||||
,"5) set apply to execute and write the register"
|
||||
,"5) set assign to execute and write the register"
|
||||
]}
|
||||
,s5=>{name=>"defTmpl",cmd=>["defTmpl","edit" ,"delete"] ,info=>[ "s5 info1"
|
||||
,"s5 info2"
|
||||
@ -269,7 +269,7 @@ sub HMtemplate_GetFn($@) {#####################################################
|
||||
return "template unknown $tN" if(!defined $culHmTpl->{$tN});
|
||||
|
||||
return "set hm templateDef $tN "
|
||||
.join(":",split(" ",$culHmTpl->{$tN}{p}))
|
||||
.join(":",split(" ",($culHmTpl->{$tN}{p} ? $culHmTpl->{$tN}{p} : "0")))
|
||||
." \"$culHmTpl->{$tN}{t}\""
|
||||
." ".join(" ",map{$_.=":".$culHmTpl->{$tN}{reg}{$_}} keys %{$culHmTpl->{$tN}{reg}})
|
||||
;
|
||||
@ -399,7 +399,7 @@ sub HMtemplate_SetFn($@) {#####################################################
|
||||
}
|
||||
}
|
||||
}
|
||||
elsif ($cmd eq "apply" ) {#
|
||||
elsif ($cmd eq "assign" ) {#
|
||||
my @p = split(" ",$culHmTpl->{$hash->{tpl_Name}}{p});## get params in correct order
|
||||
$_ = $attr{$name}{"tpl_param_$_"} foreach (@p);
|
||||
return HMinfo_templateSet( $attr{$name}{tpl_entity}
|
||||
@ -409,6 +409,13 @@ sub HMtemplate_SetFn($@) {#####################################################
|
||||
,@p
|
||||
);
|
||||
}
|
||||
elsif ($cmd eq "unassign" ) {# General - still open
|
||||
my ($entityName,$entityPeer) = split(";",$a[0]);
|
||||
|
||||
return HMinfo_templateDel( $entityName
|
||||
,$hash->{tpl_Name}
|
||||
,$entityPeer);
|
||||
}
|
||||
elsif ($cmd eq "importReg" ){#
|
||||
my ($eName) = @a;
|
||||
|
||||
@ -419,27 +426,6 @@ sub HMtemplate_SetFn($@) {#####################################################
|
||||
return "template not assigned to $eName" if (scalar(@fnd) != 1);
|
||||
|
||||
HMtemplate_import($name,$eName,InternalVal($name,"tpl_type",""),InternalVal($name,"tpl_peer",""));
|
||||
|
||||
# my @fnd = map { $_ =~ s/ .*//g; $_ }
|
||||
# map {$hash->{READINGS}{$_}{VAL}}
|
||||
# grep /^usage_/,keys %{$hash->{READINGS}};
|
||||
# my @reg;
|
||||
# my $first = 1;
|
||||
# foreach my $d(@fnd){
|
||||
# my $dHash = CUL_HM_getDeviceHash($defs{$d});
|
||||
# my $st = AttrVal($dHash->{NAME},"subType","");
|
||||
# my $md = AttrVal($dHash->{NAME},"model","");
|
||||
# my @dr = (CUL_HM_getRegN($st,$md,"01"));
|
||||
#
|
||||
# if ($first){
|
||||
# @reg = @dr;
|
||||
# $first = 0;
|
||||
# }
|
||||
# else{
|
||||
# @reg = HMtemplate_intersection(\@reg,\@dr);
|
||||
# }
|
||||
# }
|
||||
# return join("\n",sort @reg);
|
||||
}
|
||||
elsif ($cmd eq "edit" ) {#
|
||||
my ($templ) = @a;
|
||||
@ -502,18 +488,25 @@ sub HMtemplate_SetFn($@) {#####################################################
|
||||
return HMtemplate_save($name,$tName);
|
||||
}
|
||||
else{
|
||||
#"select","edit","delete", "defTmpl","dismiss","save","saveAs","importReg","apply"]
|
||||
#"select","edit","delete", "defTmpl","dismiss","save","saveAs","importReg","assign"]
|
||||
my @cmdLst = @{$HtState{${$eSt}}{cmd}};
|
||||
my $tList = ":".join(",",sort keys%{$culHmTpl});
|
||||
$_ .=$tList foreach(grep/^(edit|delete|select)$/,@cmdLst);
|
||||
|
||||
$tList = ":". join(",",map{(my $foo = $_) =~ s/^(.*?)\s*\|(.*?)\s*\|.*/$1;$2/;$foo}
|
||||
map{$defs{ht}{READINGS}{$_}{VAL}}
|
||||
grep /^usage/,keys %{$defs{$name}{READINGS}});
|
||||
$tList =~ s/ //g;
|
||||
$_ .= $tList foreach(grep/^(unassign)$/,@cmdLst);
|
||||
|
||||
if (grep/^importReg$/,@cmdLst){
|
||||
my @fnd = map { $_ =~ s/ .*//g; $_ }
|
||||
map {$hash->{READINGS}{$_}{VAL}}
|
||||
grep /^usage_/,keys %{$hash->{READINGS}};
|
||||
my $eList = ":".join(",",sort @fnd);
|
||||
$_ .=$eList foreach(grep/^(importReg)$/,@cmdLst);
|
||||
$_ .= $eList foreach(grep/^(importReg)$/,@cmdLst);
|
||||
}
|
||||
$_ .=":noArg" foreach(grep/^(save|dismiss|apply)$/,@cmdLst);# no arguments
|
||||
$_ .= ":noArg" foreach(grep/^(save|dismiss|assign)$/,@cmdLst);# no arguments
|
||||
|
||||
$ret = "Unknown argument $cmd, choose one of ".join (" ",sort @cmdLst);
|
||||
}
|
||||
@ -621,7 +614,6 @@ sub HMtemplate_setUsageReading($){
|
||||
if (eval "defined(&HMinfo_templateUsg)" && $hash->{tpl_Name}){
|
||||
my $tu = HMinfo_templateUsg("","",$hash->{tpl_Name});
|
||||
$tu =~ s/\|$hash->{tpl_Name}//g;
|
||||
$tu =~ s/.\|/|/g;
|
||||
my $usgCnt = 1;
|
||||
readingsBeginUpdate($hash);
|
||||
readingsBulkUpdate($hash,"usage_".$usgCnt++,$_) foreach(split("\n",$tu));
|
||||
@ -684,11 +676,17 @@ sub HMtemplate_setUsageReading($){
|
||||
Apply an existing template to a entity<br>
|
||||
Once the command is issued it is necessary to select the entity, peer and short/long which the entity shall be applied to.<br>
|
||||
If the template has parameter the value needs to be set. <br>
|
||||
Finally <B>apply</B> the template to teh entity.
|
||||
Finally <B>assign</B> the template to teh entity.
|
||||
</li>
|
||||
<li><B>dismiss</B><a name="HMtemplate_dismiss"></a><br>
|
||||
reset HMtemplate and come back to init status
|
||||
</li>
|
||||
<li><B>assign</B><a name="HMtemplate_assign"></a><br>
|
||||
assign a template to an entity
|
||||
</li>
|
||||
<li><B>unassign <entity> <peer></B><a name="HMtemplate_unassign"></a><br>
|
||||
unassign an entity from an entity
|
||||
</li>
|
||||
<li><B>save, saveAs</B><a name="HMtemplate_save"></a><br>
|
||||
save a template once it is defined
|
||||
</li>
|
||||
|
Loading…
x
Reference in New Issue
Block a user