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 eitherounces
orgrams
respectivelygetOverweightStatus()
In the event the scale is overweight, this method will returntrue
, otherwisefalse
getStatus()
returns eithertrue
orfalse
if a scale is available or not.
online
A Dymo scale was connected and powered onoffline
A Dymo scale was powered off/disconnectedweight-change
Fires when the weight on the scale changes. Passes an object to the event listener containing a numericalvalue
property and eitherounces
orgrams
for thesystem
property.overweight-change
Fires when the weight on the scale exceeds it's maximum capacity. Passes atrue
orfalse
boolean to the event listener depending on whether or not the scale is over or under weight respectively.weight
Fires when either the weight changes, or when the scale becomes overweight or underweight (combination of bothweight-change
andoverweight-change
events)end
Fires when the scale errors or is powered off