---
title: "Nanogreen Spot Prices"
description: "Nanogreen spot electricity prices for the Czech market. 24 hourly prices in CZK/kWh, cheapest-hour indicators, automation sensors and live OTE prices."
url: "https://taphome.com/en/compatibility/nanogreen-spot-prices/"
language: en
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["http","data-service","data-pp","spot-prices","energy","automation"]
  questions: ["How to get Nanogreen spot prices in TapHome?","How does the Nanogreen spot price template work?","What devices does the Nanogreen template expose?","How to automate heating based on Nanogreen cheapest hours?","What is the cheapest-hour binary sensor in TapHome?","How often does TapHome poll Nanogreen prices?"]
---

# Nanogreen Spot Prices

Communication: Packet Parser → HTTP

- [Nanogreen Website](https://www.nanogreen.cz)
- [Nanogreen Customer Portal](https://moje.nanogreen.cz)

## Integration guide

Nanogreen is a Czech green energy supplier that offers electricity at spot market prices. This template connects TapHome to the Nanogreen customer API (`moje.nanogreen.cz`) over HTTPS, fetching today's hourly spot prices and related indicators. No physical hardware is involved — the template is a pure data service that polls the API every 5 minutes.

The template provides 37 devices: 24 hourly price sensors, 6 cheapest-hour indicators (across off-peak, peak, and all-day windows), 6 binary sensors for real-time "is this the Nth cheapest hour" checks, and a live market price sensor.

## Configuration

During template import, enter the Nanogreen API endpoint (`moje.nanogreen.cz`) as the host. The template communicates over HTTPS (port 443). No API key or authentication is required — the pricing data is publicly accessible.

## Device capabilities

### Hourly prices (24 sensors)

The template exposes one sensor for each hour of the day (0:00–1:00 through 23:00–0:00). Each sensor reads the corresponding value from the `todayHourlyPrices` array in the API response. Prices are in CZK/kWh.

These sensors update with every poll cycle (5 minutes). In practice, daily prices are published once per day, so the values remain stable throughout the day.

### Cheapest-hour indicators (6 sensors)

Six sensors identify the cheapest and second-cheapest hours in three time windows:

- **Off-Peak Cheapest Hour** / **Off-Peak 2nd Cheapest Hour** — cheapest hours outside the energy peak period
- **Peak Cheapest Hour** / **Peak 2nd Cheapest Hour** — cheapest hours during the energy peak period
- **All-Day Cheapest Hour** / **All-Day 2nd Cheapest Hour** — cheapest hours across the entire day

Each sensor returns an hour index (0–23). For example, a value of `3` means the hour 3:00–4:00 is the cheapest in that window.

### Binary sensors (6 sensors)

Six binary (on/off) sensors indicate whether the current hour ranks among the cheapest of the day:

- **Is Cheapest Hour?** — true if the current hour is the cheapest
- **Is 2nd Cheapest Hour?** — true if the current hour is the 2nd cheapest
- **Is 3rd Cheapest Hour?** — true if the current hour is the 3rd cheapest
- **Is 4th Cheapest Hour?** — true if the current hour is the 4th cheapest
- **Is 5th Cheapest Hour?** — true if the current hour is the 5th cheapest
- **Is 6th Cheapest Hour?** — true if the current hour is the 6th cheapest

These sensors are implemented as reed contacts (PacketParserReedContact) that parse the boolean API response into 0/1 values. They are the primary tool for automation — use them as conditions in Smart Rules to trigger actions during the cheapest hours.

### Current market price (1 sensor)

The **Current Spot Price** sensor reads the live electricity market price from the OTE (Czech electricity market operator), converted to CZK using the CNB (Czech National Bank) exchange rate. This value reflects the real-time wholesale price in CZK/kWh.

## Automation examples

### Run appliances during cheapest hours

Use the binary sensors as conditions in a Smart Rule. For example, to heat a water boiler only during the 3 cheapest hours of the day:

1. Create a Smart Rule with the condition: **Is Cheapest Hour?** = ON **OR** **Is 2nd Cheapest Hour?** = ON **OR** **Is 3rd Cheapest Hour?** = ON
2. Set the action to turn on the boiler relay
3. The boiler runs only when electricity is at its cheapest

### Price threshold automation

Use the **Current Spot Price** sensor with a numeric condition. For example, turn on a heat pump only when the spot price drops below a threshold (e.g., 2.00 CZK/kWh).

## Troubleshooting

### Prices show zero or NaN

1. Verify that the Nanogreen API is reachable — open `https://moje.nanogreen.cz/api/prices/daily` in a browser
2. Check that TapHome CCU has internet access (the API is a cloud service, not a local device)
3. Prices for the next day are typically published in the afternoon — if queried too early, some fields may not be available yet

### Binary sensors not updating

The binary sensors compare the current hour against the day's price ranking. They update with each poll cycle (5 minutes). If a sensor stays in the wrong state, verify that the hourly price sensors contain valid data for today.

> [!NOTE]
> This template requires an active internet connection on the TapHome CCU. Unlike local device templates (Shelly, Modbus), the Nanogreen integration communicates with an external cloud API. Ensure your network firewall allows outbound HTTPS traffic to `moje.nanogreen.cz`.

## Available devices 37

These devices appear in TapHome after import.

Spot Prices Module

Custom Variables

Read (module)

```taphome
responseJson := "error";
VAR response := SENDHTTPREQUEST("/api/prices/daily");

  VAR content := response.Content;
  
IF response.IsSuccess
    responseJson := response.Content;
ELSE
    VAR contentJson := response.Content;
END
```

Price 0:00–1:00 Variable Read-only

Spot electricity price for the hour 0:00–1:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[0]");
```

Price 1:00–2:00 Variable Read-only

Spot electricity price for the hour 1:00–2:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[1]");
```

Price 2:00–3:00 Variable Read-only

Spot electricity price for the hour 2:00–3:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[2]");
```

Price 3:00–4:00 Variable Read-only

Spot electricity price for the hour 3:00–4:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[3]");
```

Price 4:00–5:00 Variable Read-only

Spot electricity price for the hour 4:00–5:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[4]");
```

Price 5:00–6:00 Variable Read-only

Spot electricity price for the hour 5:00–6:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[5]");
```

Price 6:00–7:00 Variable Read-only

Spot electricity price for the hour 6:00–7:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[6]");
```

Price 7:00–8:00 Variable Read-only

Spot electricity price for the hour 7:00–8:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[7]");
```

Price 8:00–9:00 Variable Read-only

Spot electricity price for the hour 8:00–9:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[8]");
```

Price 9:00–10:00 Variable Read-only

Spot electricity price for the hour 9:00–10:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[9]");
```

Price 10:00–11:00 Variable Read-only

Spot electricity price for the hour 10:00–11:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[10]");
```

Price 11:00–12:00 Variable Read-only

Spot electricity price for the hour 11:00–12:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[11]");
```

Price 12:00–13:00 Variable Read-only

Spot electricity price for the hour 12:00–13:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[12]");
```

Price 13:00–14:00 Variable Read-only

Spot electricity price for the hour 13:00–14:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[13]");
```

Price 14:00–15:00 Variable Read-only

Spot electricity price for the hour 14:00–15:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[14]");
```

Price 15:00–16:00 Variable Read-only

Spot electricity price for the hour 15:00–16:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[15]");
```

Price 16:00–17:00 Variable Read-only

Spot electricity price for the hour 16:00–17:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[16]");
```

Price 17:00–18:00 Variable Read-only

Spot electricity price for the hour 17:00–18:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[17]");
```

Price 18:00–19:00 Variable Read-only

Spot electricity price for the hour 18:00–19:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[18]");
```

Price 19:00–20:00 Variable Read-only

Spot electricity price for the hour 19:00–20:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[19]");
```

Price 20:00–21:00 Variable Read-only

Spot electricity price for the hour 20:00–21:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[20]");
```

Price 21:00–22:00 Variable Read-only

Spot electricity price for the hour 21:00–22:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[21]");
```

Price 22:00–23:00 Variable Read-only

Spot electricity price for the hour 22:00–23:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[22]");
```

Price 23:00–0:00 Variable Read-only

Spot electricity price for the hour 23:00–0:00 (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
PARSEJSON(responseJson,"$.todayHourlyPrices.[23]");
```

Off-Peak 2nd Cheapest Hour Variable Read-only

Hour index (0–23) of the second cheapest electricity hour outside peak hours

numeric json\_path

Read

```taphome
(PARSEJSON(responseJson, "todayOffpeakSecondCheapestHour"));
```

Peak 2nd Cheapest Hour Variable Read-only

Hour index (0–23) of the second cheapest electricity hour during peak hours

numeric json\_path

Read

```taphome
(PARSEJSON(responseJson, "todayPeakSecondCheapestHour"));
```

All-Day 2nd Cheapest Hour Variable Read-only

Hour index (0–23) of the second cheapest electricity hour across the entire day

numeric json\_path

Read

```taphome
(PARSEJSON(responseJson, "todayBaseSecondCheapestHour"));
```

Off-Peak Cheapest Hour Variable Read-only

Hour index (0–23) of the cheapest electricity hour outside peak hours

numeric json\_path

Read

```taphome
(PARSEJSON(responseJson, "todayOffpeakCheapestHour"));
```

Peak Cheapest Hour Variable Read-only

Hour index (0–23) of the cheapest electricity hour during peak hours

numeric json\_path

Read

```taphome
(PARSEJSON(responseJson, "todayPeakCheapestHour"));
```

All-Day Cheapest Hour Variable Read-only

Hour index (0–23) of the cheapest electricity hour across the entire day

numeric json\_path

Read

```taphome
(PARSEJSON(responseJson, "todayBaseCheapestHour"));
```

Is 4th Cheapest Hour? Reed Contact Read-only

Binary sensor — ON when the current hour is the 4th cheapest of the day

boolean

Read

```taphome
VAR state := (PARSEJSON(responseJson, "isCurrentlyFourthCheapestHour"));
If state = false
  RETURN(0);
ELSEif state = true
  RETURN(1);
else 
  RETURN(NaN);
END
```

Is 2nd Cheapest Hour? Reed Contact Read-only

Binary sensor — ON when the current hour is the 2nd cheapest of the day

boolean

Read

```taphome
VAR state := (PARSEJSON(responseJson, "isCurrentlySecondCheapestHour"));
If state = false
  RETURN(0);
ELSEif state = true
  RETURN(1);
else 
  RETURN(NaN);
END
```

Is Cheapest Hour? Reed Contact Read-only

Binary sensor — ON when the current hour is the cheapest of the day

boolean

Read

```taphome
VAR state := (PARSEJSON(responseJson, "isCurrentlyCheapestHour"));
If state = false
  RETURN(0);
ELSEif state = true
  RETURN(1);
else 
  RETURN(NaN);
END
```

Is 5th Cheapest Hour? Reed Contact Read-only

Binary sensor — ON when the current hour is the 5th cheapest of the day

boolean

Read

```taphome
VAR state := (PARSEJSON(responseJson, "isCurrentlyFifthCheapestHour"));
If state = false
  RETURN(0);
ELSEif state = true
  RETURN(1);
else 
  RETURN(NaN);
END
```

Is 6th Cheapest Hour? Reed Contact Read-only

Binary sensor — ON when the current hour is the 6th cheapest of the day

boolean

Read

```taphome
VAR state := (PARSEJSON(responseJson, "isCurrentlySixthCheapestHour"));
If state = false
  RETURN(0);
ELSEif state = true
  RETURN(1);
else 
  RETURN(NaN);
END
```

Is 3rd Cheapest Hour? Reed Contact Read-only

Binary sensor — ON when the current hour is the 3rd cheapest of the day

boolean

Read

```taphome
VAR state := (PARSEJSON(responseJson, "isCurrentlyThirdCheapestHour"));
If state = false
  RETURN(0);
ELSEif state = true
  RETURN(1);
else 
  RETURN(NaN);
END
```

Current Spot Price Variable Read-only

Live electricity market price from OTE, converted to CZK via CNB exchange rate (CZK/kWh)

numeric Unit: CZK/kWh json\_path

Read

```taphome
(PARSEJSON(responseJson, "currentPrice"));
```

**Connection:** Packet Parser → HTTP

## Related Documentation

- [Packet Parser Integration](https://taphome.com/en/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/en/docs/integration/packet-parser/)
- [Packet parser functions](https://taphome.com/en/docs/script/packet-parser/)
- [Parsing functions](https://taphome.com/en/docs/script/parsing-functions/)

