49_SSCam: contrib 9.5.0

git-svn-id: https://svn.fhem.de/fhem/trunk@22423 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
DS_Starter
2020-07-18 12:34:49 +00:00
parent 61139a893d
commit 4aef54281d
2 changed files with 23 additions and 21 deletions

View File

@@ -7477,12 +7477,12 @@ sub roomRefresh {
my @spgs = devspec2array("TYPE=SSCamSTRM"); my @spgs = devspec2array("TYPE=SSCamSTRM");
my $room = ""; my $room = "";
for(@spgs) { for my $sd (@spgs) {
if($defs{$_}{PARENT} eq $name) { if($defs{$sd}{LINKPARENT} eq $name) {
next if(IsDisabled($defs{$_}{NAME}) || !$hash->{HELPER}{INFORM} || $hash->{HELPER}{INFORM} ne $defs{$_}{FUUID}); next if(IsDisabled($defs{$sd}{NAME}) || !$hash->{HELPER}{INFORM} || $hash->{HELPER}{INFORM} ne $defs{$sd}{FUUID});
$fpr = AttrVal($defs{$_}{NAME},"forcePageRefresh",0); $fpr = AttrVal($defs{$sd}{NAME},"forcePageRefresh",0);
$room = AttrVal($defs{$_}{NAME},"room",""); $room = AttrVal($defs{$sd}{NAME},"room","");
Log3($name, 4, "$name - roomRefresh - pagerefresh: $defs{$_}{NAME}") if($fpr); Log3($name, 4, "$name - roomRefresh - pagerefresh: $defs{$sd}{NAME}") if($fpr);
} }
} }
@@ -7491,8 +7491,7 @@ sub roomRefresh {
if(!$fpr) { if(!$fpr) {
# nur Räume mit dem SSCamSTRM-Device reloaden # nur Räume mit dem SSCamSTRM-Device reloaden
my @rooms = split(",",$room); my @rooms = split(",",$room);
for (@rooms) { for my $r (@rooms) {
my $r = $_;
{ map { FW_directNotify("FILTER=room=$r", "#FHEMWEB:$_", "location.reload('true')", "") } devspec2array("TYPE=FHEMWEB") } { map { FW_directNotify("FILTER=room=$r", "#FHEMWEB:$_", "location.reload('true')", "") } devspec2array("TYPE=FHEMWEB") }
} }
} }
@@ -7511,19 +7510,19 @@ sub roomRefresh {
readingsSingleUpdate($hash,"state", $st, 0); readingsSingleUpdate($hash,"state", $st, 0);
} }
# parentState des SSCamSTRM-Device updaten # parentState des SSCamSTRM-Device updaten ($hash->{HELPER}{INFORM} des LINKPARENT Devices muss FUUID des Streaming Devices haben)
if($lpoll_strm) { if($lpoll_strm) {
$st = ReadingsVal($name, "state", "initialized"); $st = ReadingsVal($name, "state", "initialized");
for(@spgs) { for my $sp (@spgs) {
if($defs{$_}{PARENT} eq $name) { if($defs{$sp}{LINKPARENT} eq $name) {
next if(IsDisabled($defs{$_}{NAME}) || !$hash->{HELPER}{INFORM} || $hash->{HELPER}{INFORM} ne $defs{$_}{FUUID}); next if(IsDisabled($defs{$sp}{NAME}) || !$hash->{HELPER}{INFORM} || $hash->{HELPER}{INFORM} ne $defs{$sp}{FUUID});
readingsBeginUpdate($defs{$_}); readingsBeginUpdate($defs{$sp});
readingsBulkUpdate ($defs{$_},"parentState", $st); readingsBulkUpdate ($defs{$sp},"parentState", $st);
readingsBulkUpdate ($defs{$_},"state", "updated"); readingsBulkUpdate ($defs{$sp},"state", "updated");
readingsEndUpdate ($defs{$_}, 1); readingsEndUpdate ($defs{$sp}, 1);
Log3($name, 4, "$name - roomRefresh - caller: $_, FUUID: $hash->{HELPER}{INFORM}"); Log3($name, 4, "$name - roomRefresh - caller: $sp, FUUID: $hash->{HELPER}{INFORM}");
delete $hash->{HELPER}{INFORM}; delete $hash->{HELPER}{INFORM};
} }
} }

View File

@@ -314,7 +314,6 @@ sub Set {
return qq{The command "$opt" needs a valid SSCamSTRM device as argument} if(!$valid); return qq{The command "$opt" needs a valid SSCamSTRM device as argument} if(!$valid);
# Übernahme der Readings # Übernahme der Readings
my @r; my @r;
delReadings($hash); delReadings($hash);
@@ -326,14 +325,16 @@ sub Set {
# Übernahme Link-Parameter # Übernahme Link-Parameter
my $link = "{$defs{$strmd}{LINKFN}('$defs{$strmd}{LINKPARENT}','$defs{$strmd}{LINKNAME}','$defs{$strmd}{LINKMODEL}')}"; my $link = "{$defs{$strmd}{LINKFN}('$defs{$strmd}{LINKPARENT}','$defs{$strmd}{LINKNAME}','$defs{$strmd}{LINKMODEL}')}";
# readingsSingleUpdate($hash,"clientLink", $link, 0); explodeLinkData ($hash, $link, 0);
push @r, "clientLink:$link"; push @r, "clientLink:$link";
if(@r) { if(@r) {
setReadings($hash, \@r, 0); setReadings($hash, \@r, 0);
} }
webRefresh($hash); my $camname = $hash->{LINKPARENT};
$defs{$camname}{HELPER}{INFORM} = $hash->{FUUID};
FHEM::SSCam::roomRefresh ("$camname,1,0,0");
} elsif ($opt eq "reset") { } elsif ($opt eq "reset") {
delReadings($hash); delReadings($hash);
@@ -345,7 +346,9 @@ sub Set {
setReadings($hash, \@r, 0); setReadings($hash, \@r, 0);
webRefresh($hash); my $camname = $hash->{LINKPARENT};
$defs{$camname}{HELPER}{INFORM} = $hash->{FUUID};
FHEM::SSCam::roomRefresh ("$camname,1,0,0");
} else { } else {
return "$setlist"; return "$setlist";