C code, here is my app init. I have a MQTT server on my private network that I am trying to get this talking to. credentials and address are in my mos.yml already
enum mgos_app_init_result mgos_app_init(void) {
char buf[8];
s_strip = mgos_neopixel_create(PIN, NUM_PIXELS, ORDER);
mgos_set_timer(150 /* ms */, MGOS_TIMER_REPEAT, pixel_timer_cb, NULL);
/* Simple repeating timer */
mgos_set_timer(1000, MGOS_TIMER_REPEAT, timer_cb, NULL);
/* Publish to MQTT on button press */
int btn_pin = mgos_sys_config_get_board_btn1_pin();
if (btn_pin >= 0) {
enum mgos_gpio_pull_type btn_pull;
enum mgos_gpio_int_mode btn_int_edge;
if (mgos_sys_config_get_board_btn1_pull_up()) {
btn_pull = MGOS_GPIO_PULL_UP;
btn_int_edge = MGOS_GPIO_INT_EDGE_NEG;
} else {
btn_pull = MGOS_GPIO_PULL_DOWN;
btn_int_edge = MGOS_GPIO_INT_EDGE_POS;
}
LOG(LL_INFO, ("Button pin %s, active %s", mgos_gpio_str(btn_pin, buf),
(mgos_sys_config_get_board_btn1_pull_up() ? "low" : "high")));
mgos_gpio_set_button_handler(btn_pin, btn_pull, btn_int_edge, 20, button_cb,
NULL);
}
/* Network connectivity events */
mgos_event_add_group_handler(MGOS_EVENT_GRP_NET, net_cb, NULL);
#ifdef MGOS_HAVE_WIFI
mgos_event_add_group_handler(MGOS_WIFI_EV_BASE, wifi_cb, NULL);
#endif
mgos_event_add_handler(MGOS_EVENT_CLOUD_CONNECTED, cloud_cb, NULL);
mgos_event_add_handler(MGOS_EVENT_CLOUD_DISCONNECTED, cloud_cb, NULL);
mgos_mqtt_sub("my/#", handler, NULL); /* Subscribe */
mgos_mqtt_pub("my/topic", "hi", 2, 1, 0); /* Publish */
return MGOS_APP_INIT_SUCCESS;
}