https://github.com/numat/sartorius
Python driver and command line tool for Sartorius and Minebea Intec ethernet scales.
https://github.com/numat/sartorius
driver ethernet-scale
Last synced: 6 months ago
JSON representation
Python driver and command line tool for Sartorius and Minebea Intec ethernet scales.
- Host: GitHub
- URL: https://github.com/numat/sartorius
- Owner: numat
- License: gpl-2.0
- Created: 2019-03-27T18:16:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-12-12T04:43:48.000Z (7 months ago)
- Last Synced: 2025-12-13T12:43:39.779Z (7 months ago)
- Topics: driver, ethernet-scale
- Language: Python
- Homepage:
- Size: 113 KB
- Stars: 6
- Watchers: 5
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
sartorius
=========
Asynchronous python ethernet interface and command-line tool for Sartorius and
Minebea Intec scales.

Compatibility
=============
This driver should work for any ethernet scale that uses the standardized communications
protocol of the Scale Manufacturers Association. However, it has only been tested
on the following models:
* Minebea Intec Signum
* Sartorius Entris
* Sartorius Miras
Installation
============
```
pip install sartorius
```
Scale Setup
===========
For Minebea scale setup, navigate to `SETUP` - `UNICOM` - `DATAPROT` - `ETHER`.
* Make sure `SRC.IP` is set to a valid LAN address
* Ensure `MODE` - `SBI-SRV` - `6.1.1` is set (manual says this should be default but it is not)
* All other defaults are good
This driver is intended to be stable to disconnects, so operators should be
able to unplug and reposition the device without affecting any long polling.
Command Line
============
```
$ sartorius scale-ip.local
{
"mass": 0.0,
"units": "kg",
"stable": true,
"info": {
"model": "SIWADCP-1-",
"serial": "37454321",
"software": "00-37-09"
}
}
```
If using a port other than the default of 49155 e.g. for a MODBUS gateway, use `--port`
or a colon between the IP address and port.
`sartorius 192.168.1.1 --port 10000` or `sartorius 192.168.1.1:12345`
You can tare and zero with `--zero` and remove the info field with `--no-info`.
See `sartorius --help` for more.
To use in shell scripts, parse the json output with something like
[jq](https://stedolan.github.io/jq/). For example,
`sartorius scale-ip.local | jq .mass` will return the mass.
Python
======
If you'd like to link this to more complex behavior, consider using a Python
script. This driver exclusively supports asynchronous Python ≥3.7.
```python
import asyncio
import sartorius
async def get():
async with sartorius.Scale('scale-ip.local') as scale:
await scale.zero() # Zero and tare the scale
print(await scale.get()) # Get mass, units, stability
print(await scale.get_info()) # Get model, serial, software version
asyncio.run(get())
```