Pythonic access to the OpenSenseMap API
SenseMAPI - Pythonic access to the OpenSenseMap API
sensemapi is a Python package to access the OpenSenseMap
sensemapi, you can do the most important things that you can also do via
the OpenSenseMap user interface.
See some examples:
Access an OpenSenseMap account
account = sensemapi.account.SenseMapAccount( email = "SENSEMAP_EMAIL", password = os.environ.get("SENSEMAP_PASSWORD") )
Create new senseBoxes
# set up a senseBox (offline) box = sensemapi.senseBox.senseBox( exposure = "outdoor", name="My senseBox", current_lat=50.5, current_lon=10.1) # add a temperature sensor to the box (offline) box.new_sensor( title="temperature", unit="°C", type="SHT31", icon="osem-temperature-celsius") # create the senseBox (online) account.new_box(box)
Modify senseBoxes and sensors
# retreive the account's boxes account.get_own_boxes() # choose the first box box = account.boxes # change the box box.name = "My supercool senseBox" # ... do anything with the box object ... # upload the changes box.upload_metadata()
# select the box's first sensor sensor = box.sensors # reset the time to use the current time sensor.last_time = None # specify measurement value sensor.last_value = 25.2 # upload the measurement sensor.upload_measurement()
Delete a senseBox
# delete the account's first senseBox account.delete_box(account.boxes.id, really=True)
Retreive any senseBox by its ID
# with an account account.get_box(id = "57000b8745fd40c8196ad04c") # without an account sensemapi.client.SenseMapClient().get_box(id = "57000b8745fd40c8196ad04c")
Retreive measurements of a senseBox sensor
# get a box box = sensemapi.client.SenseMapClient().get_box(id="57000b8745fd40c8196ad04c") # the box' first sensor sensor = box.sensors # get the sensor's latest measurements as pandas.Series series = sensor.get_measurements().series
More features are likely to follow...
sensemapi package is best installed via
pip3. Run from anywhere:
pip3 install --user sensemapi pip3 install --user pandas # if you want pandas support
This downloads and installs the package from the Python Package Index.
You may also install
pip3 from the repository root:
pip3 install --user .
Documentation of the
sensemapi package can be found here on
The following might only be interesting for developers
Since this is an API library, you need to specify an account to run the tests:
export SENSEMAP_EMAIL="email@example.com" # specify either the email... export SENSEMAP_USER="username" # or the username export SENSEMAP_PASSWORD="5uP3rP45sW0Rd"
You may also specifiy this sensitive data in a file which can then be
To run the test suite, run from the repository root
To get a test coverage, run