node-dymo is a Node.js wrapper that reads from a Dymo brand USB scale. The wrapper provides several events as well as methods to read measurements from the scale.
Libusb is included as a submodule. On Linux, you'll need libudev to build libusb. On Ubuntu/Debian: sudo apt-get install build-essential libudev-dev
Use Zadig to install the WinUSB driver for your USB device. Otherwise you will get LIBUSB_ERROR_NOT_SUPPORTED when attempting to open devices.
dymo.on('online', function() {
console.log('scale was connected/powered on'); // ## ounces(/grams);
});
dymo.on('weight-change', function(obj) {
console.log(obj.value + ' ' + obj.system); // ## ounces(/grams);
});
console.log(dymo.getWeight()); // { value: 10, system: 'grams' }node-dymo provides three methods you can call at any time:
connect()Connect to the driver, and if a scale isn't immediately online, establish listeners until it becomes online. This method is required in order to gain access to the below methods and listenersgetWeight()Get the current weight on the scale. Returns an object containing the propertiesvalue, andsystem, with the numerical weight and eitherouncesorgramsrespectivelygetOverweightStatus()In the event the scale is overweight, this method will returntrue, otherwisefalsegetStatus()returns eithertrueorfalseif a scale is available or not.
onlineA Dymo scale was connected and powered onofflineA Dymo scale was powered off/disconnectedweight-changeFires when the weight on the scale changes. Passes an object to the event listener containing a numericalvalueproperty and eitherouncesorgramsfor thesystemproperty.overweight-changeFires when the weight on the scale exceeds it's maximum capacity. Passes atrueorfalseboolean to the event listener depending on whether or not the scale is over or under weight respectively.weightFires when either the weight changes, or when the scale becomes overweight or underweight (combination of bothweight-changeandoverweight-changeevents)endFires when the scale errors or is powered off