final RemoteNode rn = (RemoteNode) event.getSource();
if (event.getNewValue() instanceof RxTxRemoteNodeReadingDTO) {
final RxTxRemoteNodeReadingDTO sr = (RxTxRemoteNodeReadingDTO) event.getNewValue();
ServiceProvider.IMPL.getRemoteNodeService().saveReading(sr.getRemoteNodeReading());
} else if (event.getNewValue() instanceof RxTxRemoteNodeDTO) {
final RxTxRemoteNodeDTO ndto = (RxTxRemoteNodeDTO) event.getNewValue();
if (!RemoteNodeType.remoteEquivalent(rn, ndto.getRemoteNode())) {
// remote device values do not match the local device values
rn.setDeviceSynchronized(false);
ndto.getRemoteNode().setDeviceSynchronized(false);
if (rn.getDeviceAutoSynchronize() == 1) {
// automatically send the changes to the remote node
// (consume event so no other notifications for the
// event will be processed)
event.setConsumed(true);