mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-21 20:06:18 +00:00
73_AutoShuttersControl: add ASC API for get ASC intern values
git-svn-id: https://svn.fhem.de/fhem/trunk@19420 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
62ee08747e
commit
0455e651b9
@ -1,5 +1,6 @@
|
||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||
# Do not insert empty lines here, update check depends on it.
|
||||
- feature: 73_AutoShuttersControl: add ASC API for get ASC intern values
|
||||
- feature: 73_AutoShuttersControl: add set commands and readings for
|
||||
aktivate shadding, add drive in shading position then
|
||||
come home and shading mode is home and asc is in shading
|
||||
|
@ -45,7 +45,7 @@ use strict;
|
||||
use warnings;
|
||||
use FHEM::Meta;
|
||||
|
||||
my $version = '0.6.11';
|
||||
my $version = '0.6.12';
|
||||
|
||||
sub AutoShuttersControl_Initialize($) {
|
||||
my ($hash) = @_;
|
||||
@ -96,6 +96,12 @@ sub AutoShuttersControl_Initialize($) {
|
||||
return FHEM::Meta::InitMod( __FILE__, $hash );
|
||||
}
|
||||
|
||||
sub ascAPIget($;$) {
|
||||
my ( $getCommand, $shutterDev ) = @_;
|
||||
|
||||
return FHEM::AutoShuttersControl::ascAPIget( $getCommand, $shutterDev );
|
||||
}
|
||||
|
||||
## unserer packagename
|
||||
package FHEM::AutoShuttersControl;
|
||||
|
||||
@ -225,6 +231,19 @@ my %posSetCmds = (
|
||||
my $shutters = new ASC_Shutters();
|
||||
my $ascDev = new ASC_Dev();
|
||||
|
||||
sub ascAPIget($;$) {
|
||||
my ( $getCommand, $shutterDev ) = @_;
|
||||
|
||||
my $getter = 'get' . $getCommand;
|
||||
if ( defined($shutterDev) and $shutterDev ) {
|
||||
$shutters->setShuttersDev($shutterDev);
|
||||
return $shutters->$getter;
|
||||
}
|
||||
else {
|
||||
return $ascDev->$getter;
|
||||
}
|
||||
}
|
||||
|
||||
sub Define($$) {
|
||||
my ( $hash, $def ) = @_;
|
||||
my @a = split( '[ \t][ \t]*', $def );
|
||||
@ -248,6 +267,8 @@ sub Define($$) {
|
||||
; # eine Ein Eindeutige ID für interne FHEM Belange / nicht weiter wichtig
|
||||
$hash->{NOTIFYDEV} = 'global,'
|
||||
. $name; # Liste aller Devices auf deren Events gehört werden sollen
|
||||
#$hash->{shutters} = $shutters;
|
||||
#$hash->{ascDev} = $ascDev;
|
||||
$ascDev->setName($name);
|
||||
|
||||
readingsSingleUpdate(
|
||||
@ -932,13 +953,7 @@ sub EventProcessingWindowRec($@) {
|
||||
elsif ( $shutters->getStatus != $shutters->getOpenPos ) {
|
||||
$shutters->setLastDrive('window closed at day');
|
||||
$shutters->setNoOffset(1);
|
||||
$shutters->setDriveCmd(
|
||||
(
|
||||
$shutters->getLastPos != $shutters->getClosedPos
|
||||
? $shutters->getLastPos
|
||||
: $shutters->getOpenPos
|
||||
)
|
||||
);
|
||||
$shutters->setDriveCmd( $shutters->getOpenPos );
|
||||
}
|
||||
}
|
||||
|
||||
@ -1866,13 +1881,13 @@ sub ShadingProcessing($@) {
|
||||
. ' - Alle Werte für die weitere Verarbeitung sind korrekt vorhanden und es wird nun mit der Beschattungsverarbeitung begonnen'
|
||||
);
|
||||
|
||||
# minimalen und maximalen Winkel des Fensters bestimmen. wenn die aktuelle Sonnenposition z.B. bei 205° läge und der Wert für angleMin/Max 85° wäre, dann würden zwischen 120° und 290° beschattet.
|
||||
# minimalen und maximalen Winkel des Fensters bestimmen. wenn die aktuelle Sonnenposition z.B. bei 205° läge und der Wert für angleMin/Max 85° wäre, dann würden zwischen 120° und 290° beschattet.
|
||||
my $winPosMin = $winPos - $angleMinus;
|
||||
my $winPosMax = $winPos + $anglePlus;
|
||||
|
||||
if (
|
||||
(
|
||||
$outTemp < $shutters->getShadingMinOutsideTemperature - 3
|
||||
$outTemp < $shutters->getShadingMinOutsideTemperature - 3
|
||||
or not IsDay($shuttersDev)
|
||||
or $azimuth < $winPosMin
|
||||
or $azimuth > $winPosMax
|
||||
@ -5235,6 +5250,52 @@ sub getblockAscDrivesAfterManual {
|
||||
<li><strong>ASC_WindowRec_subType</strong> - Typ des verwendeten Fensterkontaktes: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt) (default: twostate)</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</p>
|
||||
<strong><u>Beschreibung der AutoShuttersControl API</u></strong>
|
||||
</br>Mit dem Aufruf der API Funktion und Übergabe der entsprechenden Parameter ist es möglich auf interne Daten zu zu greifen.
|
||||
</p>
|
||||
<u>Übersicht für das Rolllo Device</u>
|
||||
<ul>
|
||||
<code>ascAPIget('Getter','ROLLODEVICENAME')</code><br>
|
||||
</ul>
|
||||
<table border="1">
|
||||
<th>Getter</th><th>Erläuterung</th>
|
||||
<tr><td>FreezeStatus</td><td>1=soft, 2=Daytime, 3=hard</td></tr>
|
||||
<tr><td>NoOffset</td><td>Wurde die Behandlung von Offset deaktiviert (Beispiel bei Fahrten über Fensterevents)</td></tr>
|
||||
<tr><td>LastDrive</td><td>Grund des letzten Fahrens</td></tr>
|
||||
<tr><td>LastPos</td><td>die letzte Position des Rolllos</td></tr>
|
||||
<tr><td>LastPosTimestamp</td><td>Timestamp der letzten festgestellten Position</td></tr>
|
||||
<tr><td>LastManPos</td><td>Position der letzten manuellen Fahrt</td></tr>
|
||||
<tr><td>LastManPosTimestamp</td><td>Timestamp der letzten manuellen Position</td></tr>
|
||||
<tr><td>SunsetUnixTime</td><td>berechnete Unixzeit für Abends (Sonnenuntergang)</td></tr>
|
||||
<tr><td>Sunset</td><td>1=Abendfahrt wurde durchgeführt, 0=noch keine Abendfahrt durchgeführt</td></tr>
|
||||
<tr><td>SunriseUnixTime</td><td>berechnete Unixzeit für Morgens (Sonnenaufgang)</td></tr>
|
||||
<tr><td>Sunrise</td><td>1=Morgenfahrt wurde durchgeführt, 0=noch keine Morgenfahrt durchgeführt</td></tr>
|
||||
<tr><td>RoommatesStatus</td><td>aktueller Status der/des Roommate/s für das Rolllo</td></tr>
|
||||
<tr><td>RoommatesLastStatus</td><td>letzter Status der/des Roommate/s für das Rolllo</td></tr>
|
||||
<tr><td>ShadingStatus</td><td>Ausgabe des aktuellen Shading Status, „in“, „out“, „in reserved“, „out reserved“</td></tr>
|
||||
<tr><td>ShadingStatusTimestamp</td><td>Timestamp des letzten Beschattungsstatus</td></tr>
|
||||
<tr><td>IfInShading</td><td>Befindet sich das Rolllo, in Abhängigkeit des Shading Mode, in der Beschattung</td></tr>
|
||||
<tr><td>WindProtectionStatus</td><td>aktueller Status der Wind Protection „protection“ oder „unprotection“</td></tr>
|
||||
<tr><td>RainProtectionStatus</td><td>aktueller Status der Regen Protection „protection“ oder „unprotection“</td></tr>
|
||||
<tr><td>DelayCmd</td><td>letzter Fahrbefehl welcher in die Warteschlange kam. Grund z.B. Partymodus.</td></tr>
|
||||
<tr><td>Status</td><td>Position des Rolllos</td></tr>
|
||||
<tr><td>ASCenable</td><td>Abfrage ob für das Rolllo die ASC Steuerung aktiv ist.</td></tr>
|
||||
<table/>
|
||||
</p>
|
||||
<u>Übersicht für das ASC Device</u>
|
||||
<ul>
|
||||
<code>ascAPIget('Getter')</code><br>
|
||||
</ul>
|
||||
<table border="1">
|
||||
<th>Getter</th><th>Erläuterung</th>
|
||||
<tr><td>outTemp </td><td>aktuelle Außentemperatur sofern Sensor definiert</td></tr>
|
||||
<tr><td>ResidentsStatus</td><td>aktueller Status des Residents Devices</td></tr>
|
||||
<tr><td>ResidentsLastStatus</td><td>letzter Status des Residents Devices</td></tr>
|
||||
<tr><td>Azimuth</td><td>Azimut Wert</td></tr>
|
||||
<tr><td>Elevation</td><td>Elevation Wert</td></tr>
|
||||
<tr><td>ASCenable</td><td>ist die ASC Steuerung global aktiv?</td></tr>
|
||||
<table/>
|
||||
</ul>
|
||||
|
||||
=end html_DE
|
||||
|
Loading…
x
Reference in New Issue
Block a user