mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-04 11:26:55 +00:00
22_HOMEMODE: rename readings alarm_smoke to alarmSmoke, add placeholders \%SENSORSSMOKE\%, \%SMOKE\%, \%SMOKECT\% and \%SMOKEHR\%
git-svn-id: https://svn.fhem.de/fhem/trunk@15645 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
56aa4fb0b5
commit
9374f7d7aa
@ -16,7 +16,7 @@ use Time::HiRes qw(gettimeofday);
|
|||||||
use HttpUtils;
|
use HttpUtils;
|
||||||
use vars qw{%attr %defs %modules $FW_CSRF};
|
use vars qw{%attr %defs %modules $FW_CSRF};
|
||||||
|
|
||||||
my $HOMEMODE_version = "1.2.0";
|
my $HOMEMODE_version = "1.2.1";
|
||||||
my $HOMEMODE_Daytimes = "05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night";
|
my $HOMEMODE_Daytimes = "05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night";
|
||||||
my $HOMEMODE_Seasons = "03.01|spring 06.01|summer 09.01|autumn 12.01|winter";
|
my $HOMEMODE_Seasons = "03.01|spring 06.01|summer 09.01|autumn 12.01|winter";
|
||||||
my $HOMEMODE_UserModes = "gotosleep,awoken,asleep";
|
my $HOMEMODE_UserModes = "gotosleep,awoken,asleep";
|
||||||
@ -1240,12 +1240,12 @@ sub HOMEMODE_Attributes($)
|
|||||||
push @attribs,"HomeCMDalarmSmoke:textField-long";
|
push @attribs,"HomeCMDalarmSmoke:textField-long";
|
||||||
push @attribs,"HomeCMDalarmSmoke-on:textField-long";
|
push @attribs,"HomeCMDalarmSmoke-on:textField-long";
|
||||||
push @attribs,"HomeCMDalarmSmoke-off:textField-long";
|
push @attribs,"HomeCMDalarmSmoke-off:textField-long";
|
||||||
push @attribs,"HomeCMDalarmTriggered:textField-long";
|
|
||||||
push @attribs,"HomeCMDalarmTriggered-off:textField-long";
|
|
||||||
push @attribs,"HomeCMDalarmTriggered-on:textField-long";
|
|
||||||
push @attribs,"HomeCMDalarmTampered:textField-long";
|
push @attribs,"HomeCMDalarmTampered:textField-long";
|
||||||
push @attribs,"HomeCMDalarmTampered-off:textField-long";
|
push @attribs,"HomeCMDalarmTampered-off:textField-long";
|
||||||
push @attribs,"HomeCMDalarmTampered-on:textField-long";
|
push @attribs,"HomeCMDalarmTampered-on:textField-long";
|
||||||
|
push @attribs,"HomeCMDalarmTriggered:textField-long";
|
||||||
|
push @attribs,"HomeCMDalarmTriggered-off:textField-long";
|
||||||
|
push @attribs,"HomeCMDalarmTriggered-on:textField-long";
|
||||||
push @attribs,"HomeCMDanyoneElseAtHome:textField-long";
|
push @attribs,"HomeCMDanyoneElseAtHome:textField-long";
|
||||||
push @attribs,"HomeCMDanyoneElseAtHome-on:textField-long";
|
push @attribs,"HomeCMDanyoneElseAtHome-on:textField-long";
|
||||||
push @attribs,"HomeCMDanyoneElseAtHome-off:textField-long";
|
push @attribs,"HomeCMDanyoneElseAtHome-off:textField-long";
|
||||||
@ -1354,8 +1354,8 @@ sub HOMEMODE_Attributes($)
|
|||||||
push @attribs,"HomeSpecialModes";
|
push @attribs,"HomeSpecialModes";
|
||||||
push @attribs,"HomeTextAndAreIs";
|
push @attribs,"HomeTextAndAreIs";
|
||||||
push @attribs,"HomeTextClosedOpen";
|
push @attribs,"HomeTextClosedOpen";
|
||||||
push @attribs,"HomeTextRisingConstantFalling";
|
|
||||||
push @attribs,"HomeTextNosmokeSmoke";
|
push @attribs,"HomeTextNosmokeSmoke";
|
||||||
|
push @attribs,"HomeTextRisingConstantFalling";
|
||||||
push @attribs,"HomeTextTodayTomorrowAfterTomorrow";
|
push @attribs,"HomeTextTodayTomorrowAfterTomorrow";
|
||||||
push @attribs,"HomeTextWeatherForecastToday:textField-long";
|
push @attribs,"HomeTextWeatherForecastToday:textField-long";
|
||||||
push @attribs,"HomeTextWeatherForecastTomorrow:textField-long";
|
push @attribs,"HomeTextWeatherForecastTomorrow:textField-long";
|
||||||
@ -1953,7 +1953,7 @@ sub HOMEMODE_Attr(@)
|
|||||||
}
|
}
|
||||||
elsif ($attr_name eq "HomeSensorsSmoke")
|
elsif ($attr_name eq "HomeSensorsSmoke")
|
||||||
{
|
{
|
||||||
CommandDeleteReading(undef,"$name alarm_smoke");
|
CommandDeleteReading(undef,"$name alarmSmoke");
|
||||||
HOMEMODE_updateInternals($hash);
|
HOMEMODE_updateInternals($hash);
|
||||||
}
|
}
|
||||||
elsif ($attr_name eq "HomeSensorsPowerEnergy")
|
elsif ($attr_name eq "HomeSensorsPowerEnergy")
|
||||||
@ -2033,6 +2033,9 @@ sub HOMEMODE_replacePlaceholders($$;$)
|
|||||||
my $alarm = ReadingsVal($name,"alarmTriggered",0);
|
my $alarm = ReadingsVal($name,"alarmTriggered",0);
|
||||||
my $alarmc = ReadingsVal($name,"alarmTriggered_ct",0);
|
my $alarmc = ReadingsVal($name,"alarmTriggered_ct",0);
|
||||||
my $alarmhr = ReadingsVal($name,"alarmTriggered_hr",0);
|
my $alarmhr = ReadingsVal($name,"alarmTriggered_hr",0);
|
||||||
|
my $smoke = ReadingsVal($name,"alarmSmoke",0);
|
||||||
|
my $smokec = ReadingsVal($name,"alarmSmoke_ct",0);
|
||||||
|
my $smokehr = ReadingsVal($name,"alarmSmoke_hr",0);
|
||||||
my $daytime = HOMEMODE_DayTime($hash);
|
my $daytime = HOMEMODE_DayTime($hash);
|
||||||
my $mode = ReadingsVal($name,"mode","");
|
my $mode = ReadingsVal($name,"mode","");
|
||||||
my $amode = ReadingsVal($name,"modeAlarm","");
|
my $amode = ReadingsVal($name,"modeAlarm","");
|
||||||
@ -2074,6 +2077,7 @@ sub HOMEMODE_replacePlaceholders($$;$)
|
|||||||
my $sensorscontact = $hash->{SENSORSCONTACT};
|
my $sensorscontact = $hash->{SENSORSCONTACT};
|
||||||
my $sensorsenergy = $hash->{SENSORSENERGY};
|
my $sensorsenergy = $hash->{SENSORSENERGY};
|
||||||
my $sensorsmotion = $hash->{SENSORSMOTION};
|
my $sensorsmotion = $hash->{SENSORSMOTION};
|
||||||
|
my $sensorssmoke = $hash->{SENSORSSMOKE};
|
||||||
my $ure = $hash->{RESIDENTS};
|
my $ure = $hash->{RESIDENTS};
|
||||||
$ure =~ s/,/\|/g;
|
$ure =~ s/,/\|/g;
|
||||||
my $arrivers = HOMEMODE_makeHR($hash,0,devspec2array("$ure:FILTER=location=arrival"));
|
my $arrivers = HOMEMODE_makeHR($hash,0,devspec2array("$ure:FILTER=location=arrival"));
|
||||||
@ -2148,6 +2152,10 @@ sub HOMEMODE_replacePlaceholders($$;$)
|
|||||||
$cmd =~ s/%SENSORSCONTACT%/$sensorscontact/g;
|
$cmd =~ s/%SENSORSCONTACT%/$sensorscontact/g;
|
||||||
$cmd =~ s/%SENSORSENERGY%/$sensorsenergy/g;
|
$cmd =~ s/%SENSORSENERGY%/$sensorsenergy/g;
|
||||||
$cmd =~ s/%SENSORSMOTION%/$sensorsmotion/g;
|
$cmd =~ s/%SENSORSMOTION%/$sensorsmotion/g;
|
||||||
|
$cmd =~ s/%SENSORSSMOKE%/$sensorssmoke/g;
|
||||||
|
$cmd =~ s/%SMOKE%/$smoke/g;
|
||||||
|
$cmd =~ s/%SMOKECT%/$smokec/g;
|
||||||
|
$cmd =~ s/%SMOKEHR%/$smokehr/g;
|
||||||
$cmd =~ s/%TAMPERED%/$sensorsTampered/g;
|
$cmd =~ s/%TAMPERED%/$sensorsTampered/g;
|
||||||
$cmd =~ s/%TEMPERATURE%/$temp/g;
|
$cmd =~ s/%TEMPERATURE%/$temp/g;
|
||||||
$cmd =~ s/%TEMPERATURETREND%/$temptrend/g;
|
$cmd =~ s/%TEMPERATURETREND%/$temptrend/g;
|
||||||
@ -2964,7 +2972,7 @@ sub HOMEMODE_HomebridgeMapping($)
|
|||||||
$mapping .= "\nStatusTampered=sensorsTampered_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"sensorsTampered_ct",undef));
|
$mapping .= "\nStatusTampered=sensorsTampered_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"sensorsTampered_ct",undef));
|
||||||
$mapping .= "\nMotionDetected=motionsInside_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"motionsInside_ct",undef));
|
$mapping .= "\nMotionDetected=motionsInside_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"motionsInside_ct",undef));
|
||||||
$mapping .= "\nStatusLowBattery=batteryLow_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"batteryLow_ct",undef));
|
$mapping .= "\nStatusLowBattery=batteryLow_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"batteryLow_ct",undef));
|
||||||
$mapping .= "\nSmokeDetected=alarm_smoke_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"alarm_smoke_ct",undef));
|
$mapping .= "\nSmokeDetected=alarmSmoke_ct,values=0:0;/.*/:1" if (defined ReadingsVal($name,"alarmSmoke_ct",undef));
|
||||||
$mapping .= "\nE863F10F-079E-48FF-8F27-9C2605A29F52=pressure,name=AirPressure,format=UINT16" if (defined ReadingsVal($name,"wind",undef));
|
$mapping .= "\nE863F10F-079E-48FF-8F27-9C2605A29F52=pressure,name=AirPressure,format=UINT16" if (defined ReadingsVal($name,"wind",undef));
|
||||||
addToDevAttrList($name,"genericDeviceType") if (!grep /^genericDeviceType/,split(" ",AttrVal("global","userattr","")));
|
addToDevAttrList($name,"genericDeviceType") if (!grep /^genericDeviceType/,split(" ",AttrVal("global","userattr","")));
|
||||||
addToDevAttrList($name,"homebridgeMapping:textField-long") if (!grep /^homebridgeMapping/,split(" ",AttrVal("global","userattr","")));
|
addToDevAttrList($name,"homebridgeMapping:textField-long") if (!grep /^homebridgeMapping/,split(" ",AttrVal("global","userattr","")));
|
||||||
@ -3048,9 +3056,9 @@ sub HOMEMODE_Smoke($;$$)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
readingsBeginUpdate($hash);
|
readingsBeginUpdate($hash);
|
||||||
readingsBulkUpdate($hash,"alarm_smoke",join(",",@sensors));
|
readingsBulkUpdate($hash,"alarmSmoke",join(",",@sensors));
|
||||||
readingsBulkUpdate($hash,"alarm_smoke_ct",scalar @sensors);
|
readingsBulkUpdate($hash,"alarmSmoke_ct",scalar @sensors);
|
||||||
readingsBulkUpdate($hash,"alarm_smoke_hr",HOMEMODE_makeHR($hash,0,@sensors));
|
readingsBulkUpdate($hash,"alarmSmoke_hr",HOMEMODE_makeHR($hash,0,@sensors));
|
||||||
readingsEndUpdate($hash,1);
|
readingsEndUpdate($hash,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3312,7 +3320,7 @@ sub HOMEMODE_Details($$$)
|
|||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<a name="HOMEMODE_set"></a>
|
<a name="HOMEMODE_set"></a>
|
||||||
<p><b>set <required></b></p>
|
<p><b>set <required> [optional]</b></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<b><i>anyoneElseAtHome <on/off></i></b><br>
|
<b><i>anyoneElseAtHome <on/off></i></b><br>
|
||||||
@ -4709,6 +4717,25 @@ sub HOMEMODE_Details($$$)
|
|||||||
<b><i>%SENSORSMOTION%</i></b><br>
|
<b><i>%SENSORSMOTION%</i></b><br>
|
||||||
all motion sensors from internal SENSORSMOTION
|
all motion sensors from internal SENSORSMOTION
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<b><i>%SENSORSSMOKE%</i></b><br>
|
||||||
|
all smoke sensors from internal SENSORSSMOKE
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<b><i>%SMOKE%</i></b><br>
|
||||||
|
value of the alarmSmoke reading of the HOMEMODE device<br>
|
||||||
|
will return 0 if no smoke alarm is triggered or a list of triggered sensors if smoke alarm is triggered
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<b><i>%SMOKECT%</i></b><br>
|
||||||
|
value of the alarmSmoke_ct reading of the HOMEMODE device
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<b><i>%SMOKEHR%</i></b><br>
|
||||||
|
value of the alarmSmoke_hr reading of the HOMEMODE device<br>
|
||||||
|
will return 0 if no smoke alarm is triggered or a (human readable) list of triggered sensors if smoke alarm is triggered<br>
|
||||||
|
can be used for sending msg e.g.
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b><i>%TAMPERED%</i></b><br>
|
<b><i>%TAMPERED%</i></b><br>
|
||||||
will return all tampered sensors
|
will return all tampered sensors
|
||||||
|
Loading…
x
Reference in New Issue
Block a user