Add laundry weight channel for washing machine (#16514)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>pull/16515/head
parent
79e9e96ae6
commit
8d6ce024ef
|
@ -370,6 +370,7 @@ See oven.
|
|||
| spinningspeed | String | Read | Spinning speed in the program running on the appliance |
|
||||
| energyConsumption | Number:Energy | Read | Energy consumption by the currently running program on the appliance |
|
||||
| waterConsumption | Number:Volume | Read | Water consumption by the currently running program on the appliance |
|
||||
| laundryWeight | Number:Mass | Read | Weight of the laundry inside the appliance |
|
||||
|
||||
##### Programs
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ public class MieleBindingConstants {
|
|||
public static final String FINISH_CHANNEL_ID = "finish";
|
||||
public static final String ENERGY_CONSUMPTION_CHANNEL_ID = "energyConsumption";
|
||||
public static final String WATER_CONSUMPTION_CHANNEL_ID = "waterConsumption";
|
||||
public static final String LAUNDRY_WEIGHT_CHANNEL_ID = "laundryWeight";
|
||||
|
||||
// List of all Thing Type UIDs
|
||||
public static final ThingTypeUID THING_TYPE_XGW3000 = new ThingTypeUID(BINDING_ID, "xgw3000");
|
||||
|
|
|
@ -143,7 +143,8 @@ public enum WashingMachineChannelSelector implements ApplianceChannelSelector {
|
|||
ENERGY_CONSUMPTION(EXTENDED_DEVICE_STATE_PROPERTY_NAME, ENERGY_CONSUMPTION_CHANNEL_ID, QuantityType.class, false,
|
||||
true),
|
||||
WATER_CONSUMPTION(EXTENDED_DEVICE_STATE_PROPERTY_NAME, WATER_CONSUMPTION_CHANNEL_ID, QuantityType.class, false,
|
||||
true);
|
||||
true),
|
||||
LAUNDRY_WEIGHT(EXTENDED_DEVICE_STATE_PROPERTY_NAME, LAUNDRY_WEIGHT_CHANNEL_ID, QuantityType.class, false, true);
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(WashingMachineChannelSelector.class);
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.openhab.core.i18n.TimeZoneProvider;
|
|||
import org.openhab.core.i18n.TranslationProvider;
|
||||
import org.openhab.core.library.types.OnOffType;
|
||||
import org.openhab.core.library.types.QuantityType;
|
||||
import org.openhab.core.library.unit.SIUnits;
|
||||
import org.openhab.core.library.unit.Units;
|
||||
import org.openhab.core.thing.ChannelUID;
|
||||
import org.openhab.core.thing.Thing;
|
||||
|
@ -47,6 +48,7 @@ import com.google.gson.JsonElement;
|
|||
public class WashingMachineHandler extends MieleApplianceHandler<WashingMachineChannelSelector>
|
||||
implements ExtendedDeviceStateListener {
|
||||
|
||||
private static final int LAUNDRY_WEIGHT_BYTE_POSITION = 44;
|
||||
private static final int ENERGY_CONSUMPTION_BYTE_POSITION = 51;
|
||||
private static final int WATER_CONSUMPTION_BYTE_POSITION = 53;
|
||||
private static final int EXTENDED_STATE_MIN_SIZE_BYTES = 54;
|
||||
|
@ -136,5 +138,11 @@ public class WashingMachineHandler extends MieleApplianceHandler<WashingMachineC
|
|||
var litres = new QuantityType<>(BigDecimal.valueOf(extendedDeviceState[WATER_CONSUMPTION_BYTE_POSITION] & 0xff),
|
||||
Units.LITRE);
|
||||
updateExtendedState(WATER_CONSUMPTION_CHANNEL_ID, litres);
|
||||
|
||||
var weight = new QuantityType<>(
|
||||
BigDecimal.valueOf(256 * (extendedDeviceState[LAUNDRY_WEIGHT_BYTE_POSITION] & 0xff)
|
||||
+ (extendedDeviceState[LAUNDRY_WEIGHT_BYTE_POSITION + 1] & 0xff)),
|
||||
SIUnits.GRAM);
|
||||
updateExtendedState(LAUNDRY_WEIGHT_CHANNEL_ID, weight);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,6 +85,8 @@ channel-type.miele.heat.label = Remaining Heat
|
|||
channel-type.miele.heat.description = Remaining heat level of the heating zone/plate
|
||||
channel-type.miele.info.label = Signal Information
|
||||
channel-type.miele.info.description = Signals information, check appliance for details
|
||||
channel-type.miele.laundry-weight.label = Laundry Weight
|
||||
channel-type.miele.laundry-weight.description = Weight of the laundry inside the appliance
|
||||
channel-type.miele.phase.label = Phase
|
||||
channel-type.miele.phase.description = Current phase of the program running on the appliance
|
||||
channel-type.miele.plates.label = Plates
|
||||
|
|
|
@ -263,4 +263,11 @@
|
|||
<state readOnly="true" pattern="%.1f l"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="laundry-weight" advanced="true">
|
||||
<item-type>Number:Mass</item-type>
|
||||
<label>Laundry Weight</label>
|
||||
<description>Weight of the laundry inside the appliance</description>
|
||||
<state readOnly="true" pattern="%.3f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
</thing:thing-descriptions>
|
||||
|
|
|
@ -37,10 +37,11 @@
|
|||
<channel id="spinningspeed" typeId="spinningspeed"/>
|
||||
<channel id="energyConsumption" typeId="energy-consumption"/>
|
||||
<channel id="waterConsumption" typeId="water-consumption"/>
|
||||
<channel id="laundryWeight" typeId="laundry-weight"/>
|
||||
</channels>
|
||||
|
||||
<properties>
|
||||
<property name="thingTypeVersion">2</property>
|
||||
<property name="thingTypeVersion">3</property>
|
||||
</properties>
|
||||
|
||||
<representation-property>uid</representation-property>
|
||||
|
|
|
@ -96,6 +96,11 @@
|
|||
<type>miele:failure</type>
|
||||
</add-channel>
|
||||
</instruction-set>
|
||||
<instruction-set targetVersion="3">
|
||||
<add-channel id="laundryWeight">
|
||||
<type>miele:laundry-weight</type>
|
||||
</add-channel>
|
||||
</instruction-set>
|
||||
</thing-type>
|
||||
|
||||
</update:update-descriptions>
|
||||
|
|
Loading…
Reference in New Issue