mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
fix: changes for state
git-svn-id: https://svn.fhem.de/fhem/trunk@17282 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
25b5320119
commit
baa6fca3b3
@ -29,7 +29,7 @@ use warnings;
|
|||||||
|
|
||||||
#my $DEBUG = 1;
|
#my $DEBUG = 1;
|
||||||
my $cvsid = '$Id$';
|
my $cvsid = '$Id$';
|
||||||
my $VERSION = "version 0.9.4 by hexenmeister\n$cvsid";
|
my $VERSION = "version 0.9.5 by hexenmeister\n$cvsid";
|
||||||
|
|
||||||
my %sets = (
|
my %sets = (
|
||||||
);
|
);
|
||||||
@ -136,8 +136,12 @@ BEGIN {
|
|||||||
defs
|
defs
|
||||||
AttrVal
|
AttrVal
|
||||||
ReadingsVal
|
ReadingsVal
|
||||||
|
ReadingsTimestamp
|
||||||
|
ReadingsAge
|
||||||
|
deviceEvents
|
||||||
AssignIoPort
|
AssignIoPort
|
||||||
addToDevAttrList
|
addToDevAttrList
|
||||||
|
delFromDevAttrList
|
||||||
devspec2array
|
devspec2array
|
||||||
gettimeofday
|
gettimeofday
|
||||||
InternalTimer
|
InternalTimer
|
||||||
@ -1242,28 +1246,43 @@ sub Notify() {
|
|||||||
return "" unless ($size>0);
|
return "" unless ($size>0);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach my $event (@{$dev->{CHANGED}}) {
|
#Log3($hash->{NAME},1,"Notify for $dev->{NAME}>>>>>>>> ".Dumper($dev)) if $dev->{NAME} eq 'sonoff_8';
|
||||||
#Log3($hash->{NAME},5,"Notify for $dev->{NAME} event: $event STATE: $dev->{STATE}");
|
#Log3($hash->{NAME},1,"Notify for $dev->{NAME}>>>>>>>> ".Dumper(deviceEvents($dev,1))) if $dev->{NAME} eq 'sonoff_8';
|
||||||
|
|
||||||
|
#foreach my $event (@{$dev->{CHANGED}}) {
|
||||||
|
foreach my $event (@{deviceEvents($dev,1)}) {
|
||||||
|
#Log3($hash->{NAME},1,"Notify for $dev->{NAME} event: $event STATE: $dev->{STATE}");
|
||||||
$event =~ /^([^:]+)(: )?(.*)$/;
|
$event =~ /^([^:]+)(: )?(.*)$/;
|
||||||
#Log3($hash->{NAME},1,"MQTT-GB:DEBUG:> event: $event, '".((defined $1) ? $1 : "-undef-")."', '".((defined $3) ? $3 : "-undef-")."'");
|
#Log3($hash->{NAME},1,"MQTT-GB:DEBUG:> event: $event, '".((defined $1) ? $1 : "-undef-")."', '".((defined $3) ? $3 : "-undef-")."'");
|
||||||
my $devreading = undef;
|
my $devreading = undef;
|
||||||
my $devval = undef;
|
my $devval = undef;
|
||||||
# pruefen, ob der neue Wert dem 'state' des Devices entspricht
|
# pruefen, ob der neue Wert dem 'state' des Devices entspricht
|
||||||
# {$defs{$dev}{STATE}}
|
# {$defs{$dev}{STATE}}
|
||||||
if ($dev->{STATE} ne $event) {
|
#Log3($hash->{NAME},1,"Notify for $dev->{NAME} : state: ".ReadingsVal($dev->{NAME},'state','nö'));
|
||||||
|
# Wenn Readings 'state' existiert. Nicht STATE! Wenn der Wert dem neuen 'change' gleich ist. Wenn der ReadingsTimestamp frisch ist => dann state annehmen.
|
||||||
|
#my $vState = ReadingsVal($dev->{NAME},'state',undef);
|
||||||
|
#my $tState = ReadingsTimestamp($dev->{NAME},'state',undef);
|
||||||
|
#my $aState = ReadingsAge($dev->{NAME},'state',-1);
|
||||||
|
#Log3($hash->{NAME},1,"Notify for $dev->{NAME}>>>>>>>> vState: $vState, tState: $tState, age: $aState ");# if $hash->{NAME} eq 'sonoff_8';
|
||||||
|
#unless (defined ($vState) and ($vState eq $event) and ($aState <= 1)) {
|
||||||
|
#if (!defined ($vState) or ($vState ne $event)) {
|
||||||
|
#if ($dev->{STATE} ne $event) {
|
||||||
#if (defined $3 and $3 ne "") {
|
#if (defined $3 and $3 ne "") {
|
||||||
|
# $vState = 'undef' unless defined $vState;
|
||||||
|
#Log3($hash->{NAME},1,"Notify recognise state change = no : event: $event, old_state: $vState, state age: $aState");
|
||||||
#send reading=$1 value=$3
|
#send reading=$1 value=$3
|
||||||
#publishDeviceUpdate($hash, $dev, $1, $3);
|
#publishDeviceUpdate($hash, $dev, $1, $3);
|
||||||
$devreading = $1;
|
$devreading = $1;
|
||||||
$devval = $3;
|
$devval = $3;
|
||||||
} else {
|
# } else {
|
||||||
#send reading=state value=$1
|
# #Log3($hash->{NAME},1,"Notify recognise state change = yes : event: $event, old_state: $vState, state age: $aState");
|
||||||
#publishDeviceUpdate($hash, $dev, 'state', $1);
|
# #send reading=state value=$1
|
||||||
$devreading = 'state';
|
# #publishDeviceUpdate($hash, $dev, 'state', $1);
|
||||||
#$devval = $1;
|
# $devreading = 'state';
|
||||||
$devval = $event;
|
# #$devval = $1;
|
||||||
}
|
# $devval = $event;
|
||||||
#Log3($hash->{NAME},5,"Notify for $dev->{NAME} reading: $devreading, val: $devval");
|
# }
|
||||||
|
#Log3($hash->{NAME},1,"Notify for $dev->{NAME} reading: $devreading, val: $devval");
|
||||||
if(defined $devreading and defined $devval) {
|
if(defined $devreading and defined $devval) {
|
||||||
# wenn ueberwachtes device and reading
|
# wenn ueberwachtes device and reading
|
||||||
publishDeviceUpdate($hash, $dev, $devreading, $devval);
|
publishDeviceUpdate($hash, $dev, $devreading, $devval);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user