New: the AI firewall watches every module and explains each incident in plain words. See how it works

Message quota and usage

What counts as an IoT message, the monthly allowance of each IoT tier, the usage page, quota warnings, and why going over never stops your devices.

Your IoT plan includes a monthly allowance of device messages. This page explains what counts, where you see the count, who is warned and what happens when the allowance is used up.

What counts as a message

Counts as one messageDoes not count
A telemetry message a device sends, whatever its size up to the payload limit and however many records or keys it holdsConnection, disconnection and activity events
An attribute message a device sendsCommands to devices and their answers
One poll result of a polled deviceAlarms and alarm notifications
Shared attribute updates the platform sends to devices
A message the platform refused (for example over a rate limit): the device was not acknowledged and sends again

A message is counted when it enters the platform, before any flow runs. It counts even if your root flow does not store it. A batch of 50 records in one message is one message; 50 separate messages are 50.

Allowance by tier

IoT tierMessages per month
Starter1,150,000
Growth4,260,000
Scale28,810,000

The month is the calendar month. For sizing: one device that sends one message a minute uses 43,200 messages in a 30-day month; one message every 15 minutes, 2,880. See Plans and the IoT add-on.

Going over never stops your devices

The message allowance is a soft limit. Past it, Hermetry keeps accepting, storing and processing your devices’ messages. The extra messages are billed as overage. Nothing is refused, delayed or dropped because of the allowance.

Other limits do stop single messages, independently of the allowance:

LimitEffect
Per-device rate limits of the device profile (by default 10 messages a second and 300 a minute, and 200 values a second and 6,000 a minute)Messages over the limit are dropped; administrators get a notice
Payload size (64 KiB by default)The message is refused
Connected-device limit of the planNew devices cannot connect beyond it

See Device profiles.

Where you see the count

Open Usage (Owners and Admins). It lists the metered values of the current period against your plan:

MetricUnitPeriodQuota
IoT messagesmessagesmonthYour tier’s allowance
IoT data points storedpointsmonthNone: for information
Automation messagesmessagesmonthOnly when your plan sets one (flows on the General host)

The count is updated every few seconds. It is best effort: if a processing worker stops, a few seconds of counts can be lost, which counts in your favour.

IoT data points stored counts the values the store actually inserted: a message no flow saves is no point, and a duplicate the store dropped is not counted twice. Compare it with IoT messages to see how many keys an average message stores.

See Usage and quotas.

Warnings

Hermetry checks the usage periodically and warns once per month, metric and threshold:

WhenWhat happens
The count passes a threshold (by default 80 % and 95 %)The usage.threshold webhook is sent, and Owners and Admins get a notification “IoT messages: n% of this month’s allowance used”
The count reaches 100 %Owners and Admins get “this month’s allowance is used up”
The count goes overThe usage.overage webhook is sent, and Owners and Admins get “over this month’s allowance”

The notification text is shared by all metered allowances and says that what needs the allowance “is refused until next month”. For IoT messages this does not apply: nothing is refused.

Change the thresholds under Usage > Usage settings: Quota alert thresholds (%), a comma-separated list of 1 to 5 whole percentages from 1 to 99 (default 80, 95). Going over the allowance always sends the overage webhook.

See Webhooks and Webhook event reference.

Reducing message use

ApproachHow
Send less oftenReport on change with a deadband in the device firmware, plus a heartbeat (for example every 15 minutes)
Batch recordsSend several timestamped records in one message: [{"ts":…,"values":{…}}, …]. One message, many records.
Combine keysSend all keys of a moment in one object, not one message per key
Avoid attribute chatterSend client attributes only when they change

Filtering in a flow (for example the Only changes block) reduces what is stored, not what is counted: the message is counted when it arrives.

Automation messages

Flows on the General host count every message they accept (schedule ticks, webhook calls, events) as Automation messages. Your plan may set a monthly quota for them. Unlike IoT messages, this quota is enforced: over it, new entries are refused and webhook calls answer 429 with Retry-After. Device messages on the IoT host do not count here. See Flow limits.