# `Jido.Sensors.Heartbeat`
[🔗](https://github.com/agentjido/jido/blob/v2.3.3/lib/jido/sensors/heartbeat_sensor.ex#L1)

A sensor that emits heartbeat signals at configurable intervals.

## Configuration

- `interval` - Interval between heartbeats in milliseconds (default: 5000)
- `message` - Message to include in heartbeat signal (default: "heartbeat")

## Example

    # Start via SensorServer
    {:ok, pid} = Jido.Sensor.Runtime.start_link(
      sensor: Jido.Sensors.Heartbeat,
      config: %{interval: 1000, message: "alive"}
    )

# `__sensor_metadata__`

```elixir
@spec __sensor_metadata__() :: map()
```

Returns metadata for Jido.Discovery integration.

This function is used by `Jido.Discovery` to index sensors
for fast lookup and filtering.

# `description`

```elixir
@spec description() :: String.t() | nil
```

Returns the sensor's description.

# `name`

```elixir
@spec name() :: String.t()
```

Returns the sensor's name.

# `schema`

```elixir
@spec schema() :: Zoi.schema() | nil
```

Returns the Zoi schema for sensor configuration.

# `spec`

```elixir
@spec spec() :: Jido.Sensor.Spec.t()
```

Returns the sensor specification.

The spec contains all metadata needed to configure and run the sensor.

