public class EnergyManagement
extends java.lang.Object
// reads powers (best effort)
OpenWebNet
.newClient(gateway("x.x.x.x", 20000, "12345"))
.send(asList(
EnergyManagement.requestInstantaneousPower("1", EnergyManagement.Version.MODEL_F523),
EnergyManagement.requestDailyPower("1", EnergyManagement.Version.MODEL_F520),
EnergyManagement.requestMonthlyPower("1", EnergyManagement.Version.MODEL_F522_A)))
.map(EnergyManagement.handlePowers(System.out::println, () -> System.out.println("error")))
.subscribe(System.out::println);
Modifier and Type | Class and Description |
---|---|
static class |
EnergyManagement.Version |
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
FORMAT_BUS |
protected static java.lang.String |
FORMAT_DIMENSION |
protected static java.lang.String |
FORMAT_PREFIX_DIMENSION |
protected static java.lang.String |
FORMAT_PREFIX_DIMENSION_WHO |
protected static java.lang.String |
FORMAT_PREFIX_REQUEST_WHO |
protected static java.lang.String |
FORMAT_PREFIX_RESPONSE |
protected static java.lang.String |
FORMAT_PREFIX_STATUS_WHO |
protected static java.lang.String |
FORMAT_REQUEST |
protected static java.lang.String |
FORMAT_STATUS |
static java.lang.String |
NO_BUS |
static java.lang.String |
WHERE_GENERAL_VALUE |
protected static java.lang.String |
WHERE_GROUP_PREFIX |
protected static int |
WHERE_MAX_VALUE |
protected static int |
WHERE_MIN_VALUE |
ACK, FRAME_END, FRAME_START, NACK
Modifier and Type | Method and Description |
---|---|
protected static java.lang.String |
checkBus(java.lang.String bus) |
protected static int |
checkIsInteger(java.lang.String value) |
protected static void |
checkRange(java.lang.Integer from,
java.lang.Integer to,
java.lang.Integer value) |
java.lang.String |
getValue()
Raw message value.
|
static rx.functions.Func1<java.util.List<OpenSession>,java.util.List<OpenSession>> |
handlePowers(rx.functions.Action1<java.util.List<java.lang.String>> onSuccess,
rx.functions.Action0 onError)
Handle response from
requestInstantaneousPower(String, Version) ,
requestDailyPower(String, Version) and
requestMonthlyPower(String, Version) . |
protected static rx.functions.Func1<OpenSession,OpenSession> |
handleResponse(rx.functions.Action0 onSuccess,
rx.functions.Action0 onFail,
int who) |
protected static boolean |
isInRange(java.lang.Integer from,
java.lang.Integer to,
java.lang.Integer value) |
protected static java.lang.Boolean |
isValidBus(java.lang.String bus) |
protected static void |
isValidPrefixType(OpenMessage request,
java.lang.String format,
int who) |
static EnergyManagement |
requestDailyPower(java.lang.String where,
EnergyManagement.Version version)
OpenWebNet message request daily power in Watt.
|
static EnergyManagement |
requestInstantaneousPower(java.lang.String where,
EnergyManagement.Version version)
OpenWebNet message request instantaneous power in Watt.
|
static EnergyManagement |
requestMonthlyPower(java.lang.String where,
EnergyManagement.Version version)
OpenWebNet message request monthly power in Watt.
|
protected static final java.lang.String FORMAT_PREFIX_REQUEST_WHO
protected static final java.lang.String FORMAT_PREFIX_DIMENSION_WHO
protected static final java.lang.String FORMAT_PREFIX_STATUS_WHO
protected static final java.lang.String FORMAT_REQUEST
protected static final java.lang.String FORMAT_DIMENSION
protected static final java.lang.String FORMAT_STATUS
protected static final java.lang.String FORMAT_PREFIX_RESPONSE
protected static final java.lang.String FORMAT_PREFIX_DIMENSION
protected static final java.lang.String FORMAT_BUS
protected static final int WHERE_MIN_VALUE
protected static final int WHERE_MAX_VALUE
protected static final java.lang.String WHERE_GROUP_PREFIX
public static final java.lang.String WHERE_GENERAL_VALUE
public static final java.lang.String NO_BUS
public static EnergyManagement requestInstantaneousPower(java.lang.String where, EnergyManagement.Version version)
where
- Value between 1 and 255version
- Energy management EnergyManagement.Version
public static EnergyManagement requestDailyPower(java.lang.String where, EnergyManagement.Version version)
where
- Value between 1 and 255version
- Energy management EnergyManagement.Version
public static EnergyManagement requestMonthlyPower(java.lang.String where, EnergyManagement.Version version)
where
- Value between 1 and 255version
- Energy management EnergyManagement.Version
public static rx.functions.Func1<java.util.List<OpenSession>,java.util.List<OpenSession>> handlePowers(rx.functions.Action1<java.util.List<java.lang.String>> onSuccess, rx.functions.Action0 onError)
requestInstantaneousPower(String, Version)
,
requestDailyPower(String, Version)
and
requestMonthlyPower(String, Version)
.
This is a best effort: often the responses are incomplete or impossible to parse.onSuccess
- invoked if the powers have been read correctlyonError
- invoked otherwiseObservable<List<OpenSession>>
public java.lang.String getValue()
OpenMessage
getValue
in interface OpenMessage
protected static void checkRange(java.lang.Integer from, java.lang.Integer to, java.lang.Integer value)
protected static boolean isInRange(java.lang.Integer from, java.lang.Integer to, java.lang.Integer value)
protected static int checkIsInteger(java.lang.String value)
protected static void isValidPrefixType(OpenMessage request, java.lang.String format, int who)
protected static rx.functions.Func1<OpenSession,OpenSession> handleResponse(rx.functions.Action0 onSuccess, rx.functions.Action0 onFail, int who)
protected static java.lang.String checkBus(java.lang.String bus)
protected static java.lang.Boolean isValidBus(java.lang.String bus)