Skip to content

Commit b099f56

Browse files
authored
Merge pull request #3 from hap-java/master
merge with upstream
2 parents d2b2f4f + 58d068a commit b099f56

File tree

7 files changed

+51
-21
lines changed

7 files changed

+51
-21
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
language: java
2-
jdk: oraclejdk8
2+
jdk: openjdk8
33
after_success:
44
- openssl aes-256-cbc -pass pass:$ENCRYPTION_PASSWORD -in deploy/pubring.gpg.enc -out
55
deploy/pubring.gpg -d

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
<plugin>
130130
<groupId>com.coveo</groupId>
131131
<artifactId>fmt-maven-plugin</artifactId>
132-
<version>2.6.0</version>
132+
<version>2.9</version>
133133
<executions>
134134
<execution>
135135
<goals>

src/main/java/io/github/hapjava/accessories/TemperatureSensor.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,24 @@ default Collection<Service> getServices() {
6060
default TemperatureUnit getTemperatureUnit() {
6161
return TemperatureUnit.CELSIUS;
6262
}
63+
64+
/**
65+
* set default temperature unit of the thermostat. this is the unit thermostat use to display
66+
* temprature. the homekit interface uses celsius.
67+
*
68+
* @param unit the temperature unit of the thermostat.
69+
*/
70+
default void setTemperatureUnit(TemperatureUnit unit) {
71+
// override depending on the thermostat if required.
72+
}
73+
74+
/**
75+
* subscribe to unit changes.
76+
*
77+
* @param callback callback
78+
*/
79+
default void subscribeTemperatureUnit(final HomekitCharacteristicChangeCallback callback) {}
80+
81+
/** unsubscribe from unit changes. */
82+
default void unsubscribeTemperatureUnit() {}
6383
}

src/main/java/io/github/hapjava/impl/characteristics/garage/CurrentDoorStateCharacteristic.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import io.github.hapjava.HomekitCharacteristicChangeCallback;
44
import io.github.hapjava.accessories.GarageDoor;
5-
import io.github.hapjava.accessories.properties.DoorState;
65
import io.github.hapjava.characteristics.EnumCharacteristic;
76
import io.github.hapjava.characteristics.EventableCharacteristic;
87
import java.util.concurrent.CompletableFuture;
@@ -13,27 +12,27 @@ public class CurrentDoorStateCharacteristic extends EnumCharacteristic
1312
private final GarageDoor door;
1413

1514
public CurrentDoorStateCharacteristic(GarageDoor door) {
16-
super("00000032-0000-1000-8000-0026BB765291", true, true, "Target Door State", 1);
15+
super("0000000E-0000-1000-8000-0026BB765291", false, true, "Current Door State", 4);
1716
this.door = door;
1817
}
1918

2019
@Override
2120
protected void setValue(Integer value) throws Exception {
22-
door.setTargetDoorState(DoorState.fromCode(value));
21+
// Read Only
2322
}
2423

2524
@Override
2625
protected CompletableFuture<Integer> getValue() {
27-
return door.getTargetDoorState().thenApply(s -> s.getCode());
26+
return door.getCurrentDoorState().thenApply(s -> s.getCode());
2827
}
2928

3029
@Override
3130
public void subscribe(HomekitCharacteristicChangeCallback callback) {
32-
door.subscribeTargetDoorState(callback);
31+
door.subscribeCurrentDoorState(callback);
3332
}
3433

3534
@Override
3635
public void unsubscribe() {
37-
door.unsubscribeTargetDoorState();
36+
door.unsubscribeCurrentDoorState();
3837
}
3938
}

src/main/java/io/github/hapjava/impl/characteristics/garage/TargetDoorStateCharacteristic.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.github.hapjava.HomekitCharacteristicChangeCallback;
44
import io.github.hapjava.accessories.GarageDoor;
5+
import io.github.hapjava.accessories.properties.DoorState;
56
import io.github.hapjava.characteristics.EnumCharacteristic;
67
import io.github.hapjava.characteristics.EventableCharacteristic;
78
import java.util.concurrent.CompletableFuture;
@@ -12,27 +13,27 @@ public class TargetDoorStateCharacteristic extends EnumCharacteristic
1213
private final GarageDoor door;
1314

1415
public TargetDoorStateCharacteristic(GarageDoor door) {
15-
super("0000000E-0000-1000-8000-0026BB765291", false, true, "Current Door State", 4);
16+
super("00000032-0000-1000-8000-0026BB765291", true, true, "Target Door State", 1);
1617
this.door = door;
1718
}
1819

1920
@Override
2021
protected void setValue(Integer value) throws Exception {
21-
// Read Only
22+
door.setTargetDoorState(DoorState.fromCode(value));
2223
}
2324

2425
@Override
2526
protected CompletableFuture<Integer> getValue() {
26-
return door.getCurrentDoorState().thenApply(s -> s.getCode());
27+
return door.getTargetDoorState().thenApply(s -> s.getCode());
2728
}
2829

2930
@Override
3031
public void subscribe(HomekitCharacteristicChangeCallback callback) {
31-
door.subscribeCurrentDoorState(callback);
32+
door.subscribeTargetDoorState(callback);
3233
}
3334

3435
@Override
3536
public void unsubscribe() {
36-
door.unsubscribeCurrentDoorState();
37+
door.unsubscribeTargetDoorState();
3738
}
3839
}
Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,40 @@
11
package io.github.hapjava.impl.characteristics.thermostat;
22

3+
import io.github.hapjava.HomekitCharacteristicChangeCallback;
4+
import io.github.hapjava.accessories.properties.TemperatureUnit;
35
import io.github.hapjava.accessories.thermostat.BasicThermostat;
46
import io.github.hapjava.characteristics.EnumCharacteristic;
7+
import io.github.hapjava.characteristics.EventableCharacteristic;
58
import java.util.concurrent.CompletableFuture;
69

7-
public class TemperatureUnitsCharacteristic extends EnumCharacteristic {
10+
public class TemperatureUnitsCharacteristic extends EnumCharacteristic
11+
implements EventableCharacteristic {
812

913
private final BasicThermostat thermostat;
1014

1115
public TemperatureUnitsCharacteristic(BasicThermostat thermostat) {
12-
super("00000036-0000-1000-8000-0026BB765291", false, true, "The temperature unit", 1);
16+
super("00000036-0000-1000-8000-0026BB765291", true, true, "The temperature unit", 1);
1317
this.thermostat = thermostat;
1418
}
1519

1620
@Override
1721
protected void setValue(Integer value) throws Exception {
18-
// Not writable
22+
thermostat.setTemperatureUnit(
23+
value == 1 ? TemperatureUnit.FAHRENHEIT : TemperatureUnit.CELSIUS);
1924
}
2025

2126
@Override
2227
protected CompletableFuture<Integer> getValue() {
2328
return CompletableFuture.completedFuture(thermostat.getTemperatureUnit().getCode());
2429
}
30+
31+
@Override
32+
public void subscribe(final HomekitCharacteristicChangeCallback callback) {
33+
thermostat.subscribeTemperatureUnit(callback);
34+
}
35+
36+
@Override
37+
public void unsubscribe() {
38+
thermostat.unsubscribeTemperatureUnit();
39+
}
2540
}

src/main/java/io/github/hapjava/impl/connections/SubscriptionManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ public synchronized void addSubscription(
4949
LOGGER.info(
5050
"Added subscription to " + characteristic.getClass() + " for " + connection.hashCode());
5151
}
52-
try {
53-
connection.outOfBand(new EventController().getMessage(aid, iid, characteristic));
54-
} catch (Exception e) {
55-
LOGGER.error("Could not send initial state in response to subscribe event", e);
56-
}
5752
}
5853

5954
public synchronized void removeSubscription(

0 commit comments

Comments
 (0)