Update data field from companion app

I've just gotten started with Garmin app development so bear with me.

I'm trying to update a data field on my Edge 540 with data from a companion app. I've got it to work in the simulator with the following code:

import Toybox.Activity;
import Toybox.Lang;
import Toybox.Time;
import Toybox.WatchUi;
import Toybox.Communications;

class dexView extends WatchUi.SimpleDataField {
    private var _current = -1;

    function phoneMessageCallback(message as Message) as Void {
        System.println("Got a messagee");
        System.println(message);
        self._current = message.data["current"];
    }

    function initialize() {
        SimpleDataField.initialize();
        Communications.registerForPhoneAppMessages(method(:phoneMessageCallback));
    }

    function compute(info as Activity.Info) as Numeric or Duration or String or Null {
        return _current;
    }
}


In the simulator I can then use the "Phone App Message" to send an object {"current": 0.5} which then updates the data field.

With this working I moved on to trying to make it work on device, but no luck so far. I gotten the Connect IQ app onto the Edge 540, but I can't send a message from my companion app to the device. I've successfully listed the devices and got a hold of my device id. Then I took the app id from my Connect IQ app setup. When running the app it asked for Bluetooth permission which I granted, it logs "Sent" but then the message gets lost. Here is the source of the relevant parts of the companion app:

import SwiftUI
import ConnectIQ

struct Msg: Codable {
    var current: Float
}

let device = IQDevice(id: UUID(uuidString: "0EC74F14-CFF4-46CF-0E7E-510DAD830A06"), modelName: "Edge 540", friendlyName: "Edge 540")

let uuid = "7d968ef6-d048-418e-85fd-dc9367623260"

let store = "7d968ef6-d048-418e-85fd-dc9367623261"
                
let app = IQApp(uuid: UUID(uuidString: uuid), store: UUID(uuidString: store), device: device)

struct ContentView: View {
    var body: some View {
        VStack {
            Button("List devices") {
                ConnectIQ.sharedInstance().showDeviceSelection()
            }
            Button("Send message") {
                let msg = Msg(current: 2)
                
                ConnectIQ.sharedInstance().sendMessage(msg, to: app) { x, y in
                    print("Sending...")
                    print(x)
                    print(y)
                } completion: { res in
                    print("Sent!", msg)
                    print(res.rawValue)
                }
            }
        }
        .padding()
    }
}

Is there something obvious that I'm missing? One thing that struck me that I need to run past you all is if it's even possible to update a data field from a companion app, or is it only for apps? FSlight smilend some old threads in the forum, but perhaps things have changed over the last 8 years.