API to get oil tank from Kingspan SENSiT sensors.
To make use of the API, you will need the credentials you used to register with the App. You do not need other details such as the tank ID as these are already associated with your account. The new KNECT Pro service is supported only from version 4.0.
python3 -m pip kingspan-connect-sensorReading documents:
from connectsensor import SensorClient
client = SensorClient()
client.login("test@example.com", "s3cret")
tanks = client.tanks
tank_level = tanks[0].levelThe tanks method returns a Tanks object which can be queried for the status of the specific tank.
async with AsyncSensorClient() as client:
await client.login("test@example.com", "s3cret")
tanks = await client.tanks
tank_level = await tanks[0].level
tank_capacity = await tanks[0].capacity
tank_percent = 100 * (tank_level / tank_percent)
print(f"Tank is {tank_percent:.1f}% full")As of version 3.0, history no longer returns a Pandas dataframe to simplify package dependencies. Instead, an list of dicts is returned, where each list element is a sample from the web API, sorted by logging time. There should be one record per day. Each dict has the following keys:
reading_date: a datetime object indicating the time a measurement was madelevel_percent: integer percentage fulllevel_litres: number of lites in the tank
You can construct a Pandas dataframe simply using:
tanks = await client.tanks
history = await tanks[0].history()
df = pd.DataFrame(history)The history method takes optional parameters start_date and end_date which are datetime.datetime objects specifying the range of dates to query from the API.
The package supports both the new JSON API used by the KNECT Pro app introduced in February 2026, and the legacy SOAP API. You can select the appropriate API using the api_version parameter passed to the SensorClient and AsyncSensorClient constructors. Valid version options are APIVersion.CONNECT_V1 and APIVersion.KNECT_V1.
NOTE: as of March 2026, the APIVersion.KNECT_V1 API uses HTTP without any password encryption as the TLS endpoint is unavailable.
As of version 4.0, the notifier and export script have been removed as integrations like Home Assistant provide much better functionality. Reporting on the current status of the tank can still be performed kingspan-status:
% kingspan-status --username=test@example.com --password=s3cret
Home Tank:
Capacity = 2000
Serial Number = 20001999
Model = Unknown
Level = 90% (1148 litres)
Last Read = 2021-10-09 00:42:47.947000
History:
Reading date %Full Litres
30-Jan-2021 00:29 94 1224
31-Jan-2021 00:59 80 1040
01-Feb-2021 00:29 78 1008
02-Feb-2021 00:59 76 986