Sending notification will not work in Homeyscript

On HomeyPro early 2023 version 10.0.0-rc.122, I found it necessary to give both “athomID” and “id” parameters for a successful push_text.

Example code:

// Tested using versions:
// - Homey Pro (Early 2023), version 10.0.0-rc.122
// - Homey Web App version 1.9.58

// Status as of 15-July-2023: working
// send message to specified user, or if none specified, then first user in getUsers list

var user_name = (typeof args[0] === 'string')
  ? args[0]
  : '';

var user_athom_id = null;
var user_id = null;

if (user_name.length) {
  log('Looking-up user:', user_name);
} else {
  log('No user name specified, so will take first user from getUsers list');
}

log('Get user details');
users = await Homey.users.getUsers();
var found_user = false;
for (const user of Object.values(users)) {
  log(user.name, '; id=', user.id, '; athomId=', user.athomId);
  if ( (!user_name.length || (user.name == user_name)) && ! found_user) {
    if (!user_name.length) {
      user_name = user.name;
      log('Using first user from getUsers list:', user_name)
    }
    user_athom_id = user.athomId;
    user_id = user.id;
    found_user = true;
  }
}

var notification_text = `'Saying hello to ${user_name}'`

if (!user_id) {
  log('Failed to find user: ', user_name);
} else { // user found
    log('Sending push message to:', user_name, '; id=', user_id, '; athomId=', user_athom_id);
    await Homey.flow.runFlowCardAction(
      {
        uri: 'homey:manager:mobile',
        id: 'homey:manager:mobile:push_text',
        args: {
          user: {
            athomId: user_athom_id,
            id: user_id
          },
          text: notification_text
        },
      }
    )
    .then(() => log('runFlowCardAction OK'))
    .catch(error => log(`runFlowCardAction Error:`, error));
}
2 Likes