use of me.retrodaredevil.solarthing.packets.collection.PacketGroup in project solarthing by wildmountainfarms.
the class ACModeActionNode method createAction.
@Override
public Action createAction(ActionEnvironment actionEnvironment) {
LatestPacketGroupEnvironment latestPacketGroupEnvironment = actionEnvironment.getInjectEnvironment().get(LatestPacketGroupEnvironment.class);
PacketGroupProvider packetGroupProvider = latestPacketGroupEnvironment.getPacketGroupProvider();
return new SimpleAction(false) {
@Override
protected void onUpdate() {
super.onUpdate();
PacketGroup packetGroup = packetGroupProvider.getPacketGroup();
if (packetGroup == null) {
LOGGER.warn("packetGroup is null!");
return;
}
FXStatusPacket fxStatusPacket = OutbackUtil.getMasterFX(packetGroup);
if (fxStatusPacket == null) {
LOGGER.warn("No master FX Status Packet!");
} else {
setDone((fxStatusPacket.getACMode() == acMode) == !not);
}
}
};
}
use of me.retrodaredevil.solarthing.packets.collection.PacketGroup in project solarthing by wildmountainfarms.
the class CouchDbMillisDatabase method jsonDataToStoredPacketGroup.
private VersionedPacket<StoredPacketGroup> jsonDataToStoredPacketGroup(JsonData jsonData) throws SolarThingDatabaseException {
final JsonNode jsonNode;
try {
jsonNode = CouchDbJacksonUtil.getNodeFrom(jsonData);
} catch (JsonProcessingException e) {
throw new SolarThingDatabaseException("We couldn't parse some of the data into JSON. This should never happen", e);
}
if (!jsonNode.isObject()) {
throw new SolarThingDatabaseException("Something must be wrong with the packet millis view because we got this jsonNode: " + jsonNode);
}
ObjectNode objectNode = (ObjectNode) jsonNode;
final PacketGroup packetGroup;
try {
packetGroup = parser.parse(objectNode);
} catch (PacketParseException e) {
throw new SolarThingDatabaseException(e);
}
String documentId = objectNode.get("_id").asText();
String documentRevision = objectNode.get("_rev").asText();
StoredPacketGroup storedPacketGroup = PacketGroups.createStoredPacketGroup(packetGroup, new CouchDbStoredIdentifier(packetGroup.getDateMillis(), documentId, documentRevision));
return new VersionedPacket<>(storedPacketGroup, new RevisionUpdateToken(documentRevision));
}
use of me.retrodaredevil.solarthing.packets.collection.PacketGroup in project solarthing by wildmountainfarms.
the class FXOperationalModeActionNode method createAction.
@Override
public Action createAction(ActionEnvironment actionEnvironment) {
LatestPacketGroupEnvironment latestPacketGroupEnvironment = actionEnvironment.getInjectEnvironment().get(LatestPacketGroupEnvironment.class);
PacketGroupProvider packetGroupProvider = latestPacketGroupEnvironment.getPacketGroupProvider();
return new SimpleAction(false) {
@Override
protected void onUpdate() {
super.onUpdate();
PacketGroup packetGroup = packetGroupProvider.getPacketGroup();
if (packetGroup == null) {
// packetGroup will only be null in the automation program if a query fails or something. This should never happen in the mate program
LOGGER.warn("packetGroup is null!");
return;
}
FXStatusPacket fxStatusPacket = OutbackUtil.getMasterFX(packetGroup);
if (fxStatusPacket == null) {
LOGGER.warn("No master FX Status Packet!");
} else {
setDone((fxStatusPacket.getOperationalMode() == operationalMode) == !not);
}
}
};
}
use of me.retrodaredevil.solarthing.packets.collection.PacketGroup in project solarthing by wildmountainfarms.
the class AuxStateActionNode method createAction.
@Override
public Action createAction(ActionEnvironment actionEnvironment) {
LatestPacketGroupEnvironment latestPacketGroupEnvironment = actionEnvironment.getInjectEnvironment().get(LatestPacketGroupEnvironment.class);
PacketGroupProvider packetGroupProvider = latestPacketGroupEnvironment.getPacketGroupProvider();
return new SimpleAction(false) {
/**
* A simple variable to prevent spamming of the log file
*/
private boolean hadFX = true;
@Override
protected void onUpdate() {
super.onUpdate();
PacketGroup packetGroup = packetGroupProvider.getPacketGroup();
if (packetGroup == null) {
LOGGER.warn("packetGroup is null!");
return;
}
FXStatusPacket fxStatusPacket = OutbackUtil.getMasterFX(packetGroup);
if (fxStatusPacket == null) {
if (hadFX) {
LOGGER.warn("No master FX Status Packet!");
}
hadFX = false;
} else {
setDone(fxStatusPacket.isAuxOn() == on);
if (!hadFX) {
LOGGER.info("We now have a master FX Status Packet");
}
hadFX = true;
}
}
};
}
Aggregations