Avatar for Coder2012

Coder2012

Member since Jan 2015 • Last active Mar 2024
  • 16 conversations
  • 57 comments

Most recent activity

  • in Pico / Wifi / Original Espruino
    Avatar for Coder2012

    After a little more digging, I noticed I was sending defaults to MQTT and nothing to tinyMQTT.

    wifi.dbg() throws unhandled exception

    tinyMQTT:

    mqtt = require("tinyMQTT").create(server);
    
    mosquitto logs:
    1709312245: New client connected from 192.168.1.100:15450 as 29004900-0c513532-39333638 (p2, c0, k65535).
    
    K = keep_alive
    

    MQTT:

    mqtt = require("MQTT").create(server, options);
    // tried different defaults in the options obj, nothing matters
    
    mosquitto logs:
    1709312100: New connection from 192.168.1.100:44568 on port 8883.
    1709312100: New client connected from 192.168.1.100:44568 as random (p2, c1, k10).
    

    Summary:

    tinyMQTT :
    Mosquitto says connected - YES
    Espruino says connected - YES
    Receive messages - YES

    MQTT
    Mosquitto says connected - YES
    Espruino says connected - NO (Connection Error)
    Receive messages - NO

    3rd part Android app
    Mosquitto says connected - YES
    Can publish messages - YES

    All using same server and port number

  • in Pico / Wifi / Original Espruino
    Avatar for Coder2012

    I am using my Espruino Wifi updated to 2v21. I have a strange problem, although I have used the MQTT library before without any problems, it seem to error for me now. I am able to connect and use tinyMQTT but I want to use QoS > 0 which is only available in MQTT.

    I am running mosquitto in a container on my raspberrypi. If I try to connect using the MQTT library I get the following output:

    Log from the mosquitto container:
    1708970867: New connection from 192.168.1.100:44538 on port 8883.
    1708970867: New client connected from 192.168.1.100:44538 as 29004900-0c513532-39333638 (p2, c1, k60, u'username').

    Log from Espruino IDE:
    Connection refused, unknown return code: NaN.

    Here is the code for the MQTT example:

    const WIFI_NAME = "BT-redacted";
    const WIFI_OPTIONS = { password : "redacted" };
    const wifi = require("Wifi");
    let mqtt;
    
    const server = "192.168.1.77"; // the ip of your MQTT broker
    const options = {
      client_id: getSerial(),
      keep_alive: 60,
      port: 8883,
      clean_session: true,
      username: "username",
      password: "password",
      protocol_name: "MQTT",
      protocol_level: 4,
    };
    
    const onInit = () => {
      connect();
    };
    
    const connect = () => {
      console.log("wifi connecting...");
      wifi.connect(WIFI_NAME, WIFI_OPTIONS, (err) => {
        if (err) {
          console.log("wifi error", err);
          return;
        }
        console.log("wifi connected");
        connectMQTT();
      });
    };
    
    const connectMQTT = () => {
      console.log("connecting to mqtt");
      mqtt = require("MQTT").create(server, options);
    
      mqtt.on("connected", () => {
        console.log("mqtt connected");
        mqtt.subscribe("espruino/rgb");
        mqtt.subscribe("espruino/speed");
      });
    
      mqtt.on("publish", (pub) => {
        console.log(pub.topic, pub.message);
      });
    
      mqtt.on("error", (err) => console.log("error", err));
      mqtt.connect();
    };
    

    Full output in Espruino IDE

     ____                 _
    |  __|___ ___ ___ _ _|_|___ ___
    |  __|_ -| . |  _| | | |   | . |
    |____|___|  _|_| |___|_|_|_|___|
             |_| espruino.com
     2v21 (c) 2023 G.Williams
    >
    >onInit()
    wifi connecting...
    =undefined
    wifi connected
    connecting to mqtt
    error Connection refused, unknown return code: NaN.
    > 
    

    What could be different about MQTT v tinyMQTT for me now?

    • 6 comments
    • 162 views
  • in Pico / Wifi / Original Espruino
    Avatar for Coder2012

    Good news @allObjects I was able to connect this to via macOs and flash latest firmware, now this recognises perfect on Windows.

  • in Pico / Wifi / Original Espruino
    Avatar for Coder2012

    Hi @allObjects and @Gordon thank you for your time with this, I got the notification for updating to 2v20 in the Espruino web ide this morning, and now the Wifi module is connecting as expected again!

  • in Pico / Wifi / Original Espruino
    Avatar for Coder2012

    Hey that's great to hear you were able to reproduce this issue and also have a fix. How would I flash the device with this firmware, hopefully it can be done with the web ide?

    @allObjects The link above to the espruino_2v19.123_wifi binary is 404 for me :(

    I checked in github but can't see it in any of your repos.

Actions