add first code for pressure pump

This commit is contained in:
Marko Oldenburg 2019-05-01 18:00:24 +02:00
parent 766e50bbb6
commit fcac1b39de
2 changed files with 39 additions and 8 deletions

View File

@ -386,10 +386,10 @@ sub Write($@) {
} }
); );
Log3 $name, 4, # Log3($name, 4,
"GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: secret!, DATA: secret!, METHOD: $method"; # "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: secret!, DATA: secret!, METHOD: $method");
# Log3 $name, 3, Log3($name, 3,
# "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: $header, DATA: $payload, METHOD: $method"; "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: $header, DATA: $payload, METHOD: $method");
} }
sub ErrorHandling($$$) { sub ErrorHandling($$$) {
@ -986,6 +986,21 @@ sub createHttpValueStrings($@) {
. '/properties/watering_timer_' . '/properties/watering_timer_'
. $valve_id; . $valve_id;
}
elsif ( defined($abilities)
and defined($payload)
and $abilities eq 'manual_watering' )
{
my $valve_id;
$method = 'PUT';
$uri .=
'/devices/'
. $deviceId
. '/abilities/'
. $abilities
. '/properties/manual_watering_timer';
} }
elsif ( defined($abilities) elsif ( defined($abilities)
and defined($payload) and defined($payload)

View File

@ -75,7 +75,7 @@ sub GardenaSmartDevice_Initialize($) {
$hash->{AttrFn} = "FHEM::GardenaSmartDevice::Attr"; $hash->{AttrFn} = "FHEM::GardenaSmartDevice::Attr";
$hash->{AttrList} = $hash->{AttrList} =
"readingValueLanguage:de,en " "readingValueLanguage:de,en "
. "model:watering_computer,sensor,mower,ic24,power " . "model:watering_computer,sensor,mower,ic24,power,electronic_pressure_pump "
. "IODev " . "IODev "
. $readingFnAttributes; . $readingFnAttributes;
@ -243,8 +243,16 @@ sub Set($@) {
SetPredefinedStartPoints( $hash, @args ); SetPredefinedStartPoints( $hash, @args );
return $err if ( defined($err) ); return $err if ( defined($err) );
### watering_computer
} }
### electronic_pressure_pump
elsif ( lc $cmd eq 'pumptimer' ) {
my $duration = join( " ", @args );
$payload = '"name":"pump_manual_watering_timer","parameters":{"duration":'
. $duration . '}';
}
### watering_computer
elsif ( lc $cmd eq 'manualoverride' ) { elsif ( lc $cmd eq 'manualoverride' ) {
my $duration = join( " ", @args ); my $duration = join( " ", @args );
@ -281,9 +289,8 @@ sub Set($@) {
. $duration . $duration
. ',"valve_id":' . ',"valve_id":'
. $valve_id . '}}'; . $valve_id . '}}';
### Sensors
} }
### Sensors
elsif ( lc $cmd eq 'refresh' ) { elsif ( lc $cmd eq 'refresh' ) {
my $sensname = join( " ", @args ); my $sensname = join( " ", @args );
@ -309,13 +316,20 @@ sub Set($@) {
$list .= $list .=
'parkUntilFurtherNotice:noArg parkUntilNextTimer:noArg startResumeSchedule:noArg startOverrideTimer:slider,0,60,1440 startpoint' 'parkUntilFurtherNotice:noArg parkUntilNextTimer:noArg startResumeSchedule:noArg startOverrideTimer:slider,0,60,1440 startpoint'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'mower' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'mower' );
$list .= 'manualOverride:slider,0,1,59 cancelOverride:noArg' $list .= 'manualOverride:slider,0,1,59 cancelOverride:noArg'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' );
$list .= 'pumpTimer:slider,0,1,59'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' );
$list .= $list .=
'manualDurationValve1:slider,1,1,59 manualDurationValve2:slider,1,1,59 manualDurationValve3:slider,1,1,59 manualDurationValve4:slider,1,1,59 manualDurationValve5:slider,1,1,59 manualDurationValve6:slider,1,1,59' 'manualDurationValve1:slider,1,1,59 manualDurationValve2:slider,1,1,59 manualDurationValve3:slider,1,1,59 manualDurationValve4:slider,1,1,59 manualDurationValve5:slider,1,1,59 manualDurationValve6:slider,1,1,59'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' );
$list .= 'refresh:temperature,light,humidity' $list .= 'refresh:temperature,light,humidity'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'sensor' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'sensor' );
$list .= 'on:noArg off:noArg on-for-timer:slider,0,1,60' $list .= 'on:noArg off:noArg on-for-timer:slider,0,1,60'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' );
@ -331,6 +345,8 @@ sub Set($@) {
if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' );
$abilities = 'power' $abilities = 'power'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' ); if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' );
$abilities = 'manual_watering'
if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' );
$hash->{helper}{deviceAction} = $payload; $hash->{helper}{deviceAction} = $payload;
readingsSingleUpdate( $hash, "state", "send command to gardena cloud", 1 ); readingsSingleUpdate( $hash, "state", "send command to gardena cloud", 1 );