Most recent activity
-
I've been using a single strip of 50 LEDs for years, but now I've connected a second string of 50 to the first set.
I've got a problem where green doesn't work on the second set, but red and blue work fine...
I tried the second set on their own and all colours were fine...
I'm using my EspWiFi for this.
-
-
Ahh good shout, seem I can use the standard MQTT library even if there's an error. So now instead of waiting for a successful connection (which never comes) I just run my subscribes in the on error handler instead.
mqtt.on("error", (err) => { console.log("error", err); console.log("mqtt connected"); lightsOff(); lightsOn({r: 0, g: 128, b: 0}, speed); mqtt.subscribe("espruino/rgb"); mqtt.subscribe("espruino/speed"); });
Doesn't matter that I receive an error NaN, everything works as expected afterwards. Thanks for supporting me on this Gordon its good enough for a home automation project I'm working on. Looking forward to getting the next Espruino you put out in the future.
-
c stands for clean session apparently.
c0: This indicates the clean session status. "c0" means that the clean session is set to false. When a client connects with a clean session set to true (c1), it means the broker should not store any subscriptions or undelivered messages for the client when it disconnects. With clean session set to false (c0), the broker will store subscriptions and undelivered messages for the client.
p stand for QoS. So p2 would be QoS level 2.
Take it with a pinch of salt until I've verified this as it's a quick ChatGPT search
-
After a little more digging, I noticed I was sending defaults to MQTT and nothing to tinyMQTT.
wifi.dbg()
throws unhandled exceptiontinyMQTT:
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 - YESMQTT
Mosquitto says connected - YES
Espruino says connected - NO (Connection Error)
Receive messages - NO3rd part Android app
Mosquitto says connected - YES
Can publish messages - YESAll using same server and port number
-
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?
Oh that's an idea, I'll try the second strip at the beginning...
When you say to use a different pin for the second set, how would this work in code? Would I just keep an index and switch the pin number when I'm in the range of that strip?
Finally, do you have any ideas when new products are being launched as I think the WiFi is getting updated correct?