Code Monkey home page Code Monkey logo

nordpool's Introduction

Nord Pool integration for Home Assistant

Donate "Buy Me A Coffee"

Nord Pool is a service provider that operates an electricity market and power system services, including the exchange of electricity on a spot market Nordics and Baltic countries.

This integration provides the spot market (hourly) electricity prices for the Nordic, Baltic and part of Western Europe.

The Nordpool sensor provides the current price with today's and tomorrow's prices as attributes. Prices become available around 13:00.

ApexCharts card is recommended for visualization of the data in Home Assistant.

Table of Contents

Installation
Usage
Other
Troubleshooting

Getting started

Installation

Option 1: HACS

  • Follow Open your Home Assistant instance and open a repository inside the Home Assistant Community Store. and install it

  • Restart Home Assistant

    or

  • Go to HACS -> Integrations,

  • Select +,

  • Search for nordpool and install it,

  • Restart Home Assistant

Option 2: Manual

Download the latest release

cd YOUR_HASS_CONFIG_DIRECTORY    # same place as configuration.yaml
mkdir -p custom_components/nordpool
cd custom_components/nordpool
unzip nordpool-X.Y.Z.zip
mv nordpool-X.Y.Z/custom_components/nordpool/* .  

Usage

Configuration Variables

Configuration Required Description
Region yes Country/region to get the energy prices for. See Country/region codes below for details.
Currency no Default: local currency
Currency used to fetch the prices from the API.
Include VAT no Default: true
Add Value Added Taxes (VAT) or not.
Decimal precision no Default: 3
Energy price rounding precision.
Low price percentage no Default: 1
Percentage of average price to set the low price attribute.
IF hour_price < average * low_price_cutoff
THEN low_price = True
ELSE low_price = False
Price in cents no Default: false
Display price in cents in stead of (for example) Euros.
Energy scale no Default: kWh
Price displayed for MWh, kWh or Wh.
Additional Cost no default {{0.0|float}}
Template to specify additional cost to be added. See Additional Costs for more details.

Option 1: UI

  • Go to Settings -> Devices & Services
  • Select + Add Integration
  • Search for nordpool and select it
  • Fill in the required values and press Submit

Tip: By default, the integration will create a device with the name nordpool_<energy_scale>_<region>_<currency>_<some-numbers>. It is recommended to rename the device and all its entities to nordpool. If you need to recreate your sensor (for example, to change the additional cost), all automations and dashboards keep working.

Option 2: YAML

Set up the sensor using in configuration.yaml.

Minimal configuration:

sensor:
  - platform: nordpool
    region: "Kr.sand" 

Example configuration:

sensor:
  - platform: nordpool
    # Country/region to get the energy prices for. 
    region: "Kr.sand"
    
    # Override HA local currency used to fetch the prices from the API.
    currency: "EUR"
    
    # Add Value Added Taxes (VAT)?
    VAT: True
    
    # Energy price rounding precision.
    precision: 3
    
    # Percentage of average price to set the low price attribute
    # low_price = hour_price < average * low_price_cutoff
    low_price_cutoff: 0.95

    # Display price in cents in stead of (for example) Euros.
    price_in_cents: false

    # Price displayed for MWh, kWh or Wh
    price_type: kWh

    # Template to specify additional cost to be added to the tariff.
    # The template price is in EUR, DKK, NOK or SEK (not in cents).
    # For example: "{{ current_price * 0.19 + 0.023 | float}}" 
    additional_costs: "{{0.0|float}}"

Regions

See the Nord Pool region map for details

Country Region code
Austria AT
Belgium BE
Denmark DK1,
DK2
Estonia EE
Finland FI
France FR
Germany DE-LU
Great-Britain Not yet available in this version
Latvia LV
Lithuania LT
Luxenburg DE-LU
Netherlands NL
Norway Oslo (NO1)
Kr.sand (NO2)
Tr.heim / Molde (NO3)
Tromso (NO4)
Bergen (NO5)
Poland Not yet available in this version
Sweden SE1,
SE2,
SE3,
SE4

Additional costs

The idea behind additional_costs is to allow the users to add costs related to the official price from Nordpool:

  • Add simple or complex tariffs
  • Calculate VAT

There are two special special arguments in that can be used in the template (in addition to all default from Homeassistant):

  • now(): this always refer to the current hour of the price
  • current_price: price for the current hour. This can be used for example be used to calculate your own VAT or add overhead cost.

Note: When configuring Nordpool using the UI, things like VAT and additional costs cannot be changed. If your energy supplier or region changes the additional costs or taxes on a semi-regular basis, the YAML configuration or a helper (example 4) work best.

Example 1: Overhead per kWh

Add 1,3 cents per kWh overhead cost to the current hour's price

{{ 0.013 | float }}

Example 2: Percentage (VAT)

Add 19 % VAT of the current hour's price

{{ (current_price * 0.19) | float }}

Example 3: Overhead and VAT

Add 1,3 cents per kWh overhead cost, 0.002 flat tax and 19% VAT to the current hour's price

{{ (0.013 + 0.002 + (current_price * 0.19)) | float }}

Example 4: Helper

Add 21% tax and overhead cost stored in a helper

'''{{ (current_price * 0.21) + states('input_number.additionele_kosten') | float(0) }}'''

Example 5: Seasonal peek and off-peek overhead

{% set s = {
    "hourly_fixed_cost": 0.5352,
    "winter_night": 0.265,
    "winter_day": 0.465,
    "summer_day": 0.284,
    "summer_night": 0.246,
    "cert": 0.01
}
%}
{% if now().month >= 5 and now().month < 11 %}
    {% if now().hour >= 6 and now().hour < 23 %}
        {{ s.summer_day + s.hourly_fixed_cost + s.cert | float }}
    {% else %}
        {{ s.summer_night + s.hourly_fixed_cost + s.cert|float }}
    {% endif %}
{% else %}
    {% if now().hour >= 6 and now().hour < 23 %}
        {{ s.winter_day + s.hourly_fixed_cost + s.cert | float }}
    {% else %}
        {{ s.winter_night + s.hourly_fixed_cost + s.cert | float }}
    {% endif %}
{% endif %}

Other

One sensor per hour

By default, one sensor is created with the current energy price. The prices for other hours are stored in the attributes of this sensor. Most example code you will find uses the default one sensor option, but you can run the create_template script to create separate sensors for every hour. See the help options with python create_template --help. You can run the script on any system where Python is installed (install the required packages pyyaml and click using pip install pyyaml click)

Troubleshooting

Debug logging

Add this to your configuration.yaml and restart Home Assistant to debug the component.

logger:
  logs:
    nordpool: debug
    custom_components.nordpool: debug
    custom_components.nordpool.sensor: debug
    custom_components.nordpool.aio_price: debug

nordpool's People

Contributors

ajediiam avatar cnrd avatar covid10 avatar elden1337 avatar hellowlol avatar hhjuhl avatar hmmbob avatar ilya-demidovich avatar imfredde avatar jnrksv avatar jtfidje avatar ljungqvist avatar mariogrip avatar matlimatli avatar melheim avatar mookkari avatar nexemjail avatar nppc avatar orrpan avatar phpersson avatar priiduonu avatar rasssta avatar repsionu avatar scop avatar sdktr avatar stenrose avatar tarmor1 avatar tubalainen avatar wjaceh avatar zipperten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nordpool's Issues

Sensor data will jam after running 2 days near midnight

Hello

I had this issue now several times and it always appears to happen near midnight. The sensor data will jam and not updating. After homeassistant reboot it will work again couple of days. After jam there is In log file every hour this error message:
2020-10-31 22:00:02 ERROR (MainThread) [homeassistant.util.logging] Exception in check_stuff when dispatching 'nordpool_update': ()
Traceback (most recent call last):
File "/config/custom_components/nordpool/sensor.py", line 404, in check_stuff
await self._update_current_price()
File "/config/custom_components/nordpool/sensor.py", line 356, in _update_current_price
data = await self._api.today(self._area, self._currency)
File "/config/custom_components/nordpool/init.py", line 109, in today
res = await self._someday(area, currency, "today")
File "/config/custom_components/nordpool/init.py", line 102, in _someday
return self._data.get(currency, {}).get(day, {}).get(area)
AttributeError: 'NoneType' object has no attribute 'get'

2020-10-31 23:00:00 ERROR (MainThread) [homeassistant.util.logging] Exception in check_stuff when dispatching 'nordpool_update': ()
Traceback (most recent call last):
File "/config/custom_components/nordpool/sensor.py", line 404, in check_stuff
await self._update_current_price()
File "/config/custom_components/nordpool/sensor.py", line 356, in _update_current_price
data = await self._api.today(self._area, self._currency)
File "/config/custom_components/nordpool/init.py", line 109, in today
res = await self._someday(area, currency, "today")
File "/config/custom_components/nordpool/init.py", line 102, in _someday
return self._data.get(currency, {}).get(day, {}).get(area)
AttributeError: 'NoneType' object has no attribute 'get'

System info:
Home Assistant 0.115.6

ValueError: Invalid Timezone

Having successfully installed this component, no data shows. Looking at the logs I see the following traceback:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 279, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 476, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/nordpool/sensor.py", line 375, in update
    self._update_current_price()
  File "/config/custom_components/nordpool/sensor.py", line 330, in _update_current_price
    for item in self._someday(data):
  File "/config/custom_components/nordpool/sensor.py", line 269, in _someday
    "start": pendulum.instance(item["start"]).in_timezone(tz),
  File "/usr/local/lib/python3.7/site-packages/pendulum/datetime.py", line 315, in in_timezone
    tz = pendulum._safe_timezone(tz)
  File "/usr/local/lib/python3.7/site-packages/pendulum/__init__.py", line 96, in _safe_timezone
    return timezone(obj)
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/__init__.py", line 36, in timezone
    tz = _Timezone(name, extended=extended)
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/timezone.py", line 30, in __init__
    tz = read(name, extend=extended)
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/zoneinfo/__init__.py", line 9, in read
    return Reader(extend=extend).read_for(name)
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/zoneinfo/reader.py", line 42, in read_for
    file_path = pytzdata.tz_path(timezone)
  File "/usr/local/lib/python3.7/site-packages/pytzdata/__init__.py", line 63, in tz_path
    raise ValueError('Invalid timezone')
ValueError: Invalid timezone

EDIT 1: Added a couple of logger-lines to check what timezone it's passing around - seems it can't find any?

2020-03-02 10:58:52 INFO (SyncWorker_3) [custom_components.nordpool.sensor] Pendulum now: 2020-03-02T10:58:52.799498+01:00
2020-03-02 10:58:52 INFO (SyncWorker_3) [custom_components.nordpool.sensor] Pendulum tz: Timezone('')
2020-03-02 10:58:52 INFO (SyncWorker_3) [custom_components.nordpool.sensor] Pendulum timezone: Timezone('')
2020-03-02 10:58:52 INFO (SyncWorker_3) [custom_components.nordpool.sensor] Pendulum timezone_name: 

I haven't used pendulum before so I don't really know where to start debuging my self :-(

EDIT 2: Docker container did not have /etc/timezone. Mounted the one from the host system and now it works. Closing issue!

My sensor dont work.

The entity id will be change. You need to update the entity_id in your sensors and/or automations.

Seems like only 23 "hours" gets collected

Prices are correct but I'm missing price from 0:00 - 1:00 :(

{{ utcnow() }}
{{ now() }}
{{ utcnow().astimezone() }}
{{ now().astimezone() }}
{{ utcnow().tzinfo }}
{{ now().tzinfo }}
{{ now().astimezone().tzinfo }}

->

2020-11-24 12:49:00.000964+00:00
2020-11-24 13:49:00.001076+01:00
2020-11-24 13:49:00.001203+01:00
2020-11-24 13:49:00.001422+01:00
UTC
Europe/Copenhagen
CET

Screenshot from 2020-11-24 13-43-07
Screenshot from 2020-11-24 13-50-24
Screenshot from 2020-11-24 13-50-36

Maybe it's related to #31

question

Possible values: "DK1", "DK2", "FI", "LT", "LV", "Oslo", "Kr.sand", "Bergen", "Molde", "Tr.heim", "Tromsø", "SE1", "SE2", "SE3","SE4", "SYS"

EE (Estonia) is not possible?

Error on newer Hassio

After updating Home Assistant i now get this error when validating config:

Component error: nordpool - Requirements for nordpool not found: ['pendulum>=2.0'].
Platform error sensor.nordpool - Requirements for nordpool not found: ['pendulum>=2.0'].

Anyone else?

Error "adding entities for domain sensor with platform nordpool" after update to 0.0.3

Version of the custom_component

0.0.3

Configuration

Configured in UI, no yaml.

Describe the bug

The initial error was exactly as descrived in issue #65 .
However reinstalling does not fix my issue.
It results in the error below.

Debug log

Logger: homeassistant.components.sensor
Source: custom_components/nordpool/sensor.py:277
Integration: Sensor (documentation, issues)
First occurred: 9:24:32 PM (2 occurrences)
Last logged: 9:24:32 PM

Error adding entities for domain sensor with platform nordpool
Error while setting up nordpool platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 314, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 505, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 530, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/config/custom_components/nordpool/sensor.py", line 485, in async_added_to_hass
    await self.check_stuff()
  File "/config/custom_components/nordpool/sensor.py", line 446, in check_stuff
    self._update(today)
  File "/config/custom_components/nordpool/sensor.py", line 297, in _update
    self._average = self._calc_price(data.get("Average"))
  File "/config/custom_components/nordpool/sensor.py", line 277, in _calc_price
    price = template_value + value / _PRICE_IN[self._price


Nordpool sensor is empty - "Error adding entities for domain sensor with platform nordpool"

I get this error this afternoon:

`Logger: homeassistant.components.sensor
Source: custom_components/nordpool/aio_price.py:255
Integration: Sensor (documentation, issues)
First occurred: 6:36:55 PM (2 occurrences)
Last logged: 6:36:55 PM

Error adding entities for domain sensor with platform nordpool
Error while setting up nordpool platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 322, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 514, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 546, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/nordpool/sensor.py", line 485, in async_added_to_hass
await self.check_stuff()
File "/config/custom_components/nordpool/sensor.py", line 443, in check_stuff
today = await self._api.today(self._area, self._currency)
File "/config/custom_components/nordpool/init.py", line 107, in today
res = await self._someday(area, currency, "today")
File "/config/custom_components/nordpool/init.py", line 97, in _someday
await self.update_today(None)
File "/config/custom_components/nordpool/init.py", line 78, in update_today
await self._update("today")
File "/config/custom_components/nordpool/init.py", line 69, in _update
data = await spot.hourly(end_date=dt)
File "/config/custom_components/nordpool/aio_price.py", line 260, in hourly
return await self.fetch(self.HOURLY, end_date, areas)
File "/config/custom_components/nordpool/aio_price.py", line 255, in fetch
raw = [self._parse_json(i, areas) for i in res]
File "/config/custom_components/nordpool/aio_price.py", line 255, in
raw = [self._parse_json(i, areas) for i in res]
File "/usr/local/lib/python3.8/site-packages/nordpool/elspot.py", line 41, in _parse_json
raise CurrencyMismatch
nordpool.base.CurrencyMismatch
`

It has worked fine until now. When I check the sensor, it does not have any values. It seems like it cant get any information from the nordpool internet source.

High prices not supported?

In south Sweden the prices are currently very high. Tomorrow the price will be almost 200 öre/kWh. This seems to not be handled properly by the component.
My prices for tomorrow (SE3) look like this:

tomorrow: 39.879, 35.354, 34.025, 33.052, 32.645, 35.644, 65.696, 89.779, , , , , , , , 81.164, 78.191, 84.767, 95.948, 88.174, 59.568, 52.926, 49.98, 42.916
unit_of_measurement: Öre/kWh

All prices above 100 appear to be discarded.

Summer time is not handled correctly

Version 0.0.3
Summer time is not handled correctly: state value is -1h compared to actual.

Nordpool dayahead prices:
nordpool prices

Current time:
current time

state: value and attributes:

sensor.nordpool_kwh_ee_eur_5_10_0nordpool_kwh_ee_eur_5_10_0 0.10876 current_price: 0.10876 average: 0.10255 off peak 1: 0.08309 off peak 2: 0.09772 peak: 0.12122 min: 0.07572 max: 0.13008 unit: kWh currency: EUR country: Estonia region: EE low price: false tomorrow_valid: true today: 0.0796, 0.08051, 0.07683, 0.07581, 0.07572, 0.078, 0.09537, 0.10284, 0.10512, 0.10944, 0.12884, 0.12884, 0.1289, 0.13008, 0.12882, 0.10876, 0.10607, 0.10964, 0.10897, 0.11217, 0.10323, 0.0963, 0.09825, 0.09308 tomorrow: 0.08517, 0.07914, 0.05395, 0.07313, 0.05308, 0.05312, 0.07673, 0.09388, 0.10187, 0.10159, 0.10704, 0.10512, 0.10464, 0.10376, 0.10224, 0.10195, 0.10264, 0.10346, 0.10215, 0.10461, 0.10254, 0.09693, 0.0961, 0.09117 raw_today: - start: '2021-07-15T00:00:00+03:00' end: '2021-07-15T01:00:00+03:00' value: 0.0796 - start: '2021-07-15T01:00:00+03:00' end: '2021-07-15T02:00:00+03:00' value: 0.08051 - start: '2021-07-15T02:00:00+03:00' end: '2021-07-15T03:00:00+03:00' value: 0.07683 - start: '2021-07-15T03:00:00+03:00' end: '2021-07-15T04:00:00+03:00' value: 0.07581 - start: '2021-07-15T04:00:00+03:00' end: '2021-07-15T05:00:00+03:00' value: 0.07572 - start: '2021-07-15T05:00:00+03:00' end: '2021-07-15T06:00:00+03:00' value: 0.078 - start: '2021-07-15T06:00:00+03:00' end: '2021-07-15T07:00:00+03:00' value: 0.09537 - start: '2021-07-15T07:00:00+03:00' end: '2021-07-15T08:00:00+03:00' value: 0.10284 - start: '2021-07-15T08:00:00+03:00' end: '2021-07-15T09:00:00+03:00' value: 0.10512 - start: '2021-07-15T09:00:00+03:00' end: '2021-07-15T10:00:00+03:00' value: 0.10944 - start: '2021-07-15T10:00:00+03:00' end: '2021-07-15T11:00:00+03:00' value: 0.12884 - start: '2021-07-15T11:00:00+03:00' end: '2021-07-15T12:00:00+03:00' value: 0.12884 - start: '2021-07-15T12:00:00+03:00' end: '2021-07-15T13:00:00+03:00' value: 0.1289 - start: '2021-07-15T13:00:00+03:00' end: '2021-07-15T14:00:00+03:00' value: 0.13008 - start: '2021-07-15T14:00:00+03:00' end: '2021-07-15T15:00:00+03:00' value: 0.12882 - start: '2021-07-15T15:00:00+03:00' end: '2021-07-15T16:00:00+03:00' value: 0.10876 - start: '2021-07-15T16:00:00+03:00' end: '2021-07-15T17:00:00+03:00' value: 0.10607 - start: '2021-07-15T17:00:00+03:00' end: '2021-07-15T18:00:00+03:00' value: 0.10964 - start: '2021-07-15T18:00:00+03:00' end: '2021-07-15T19:00:00+03:00' value: 0.10897 - start: '2021-07-15T19:00:00+03:00' end: '2021-07-15T20:00:00+03:00' value: 0.11217 - start: '2021-07-15T20:00:00+03:00' end: '2021-07-15T21:00:00+03:00' value: 0.10323 - start: '2021-07-15T21:00:00+03:00' end: '2021-07-15T22:00:00+03:00' value: 0.0963 - start: '2021-07-15T22:00:00+03:00' end: '2021-07-15T23:00:00+03:00' value: 0.09825 - start: '2021-07-15T23:00:00+03:00' end: '2021-07-16T00:00:00+03:00' value: 0.09308 raw_tomorrow: - start: '2021-07-16T00:00:00+03:00' end: '2021-07-16T01:00:00+03:00' value: 0.08517 - start: '2021-07-16T01:00:00+03:00' end: '2021-07-16T02:00:00+03:00' value: 0.07914 - start: '2021-07-16T02:00:00+03:00' end: '2021-07-16T03:00:00+03:00' value: 0.05395 - start: '2021-07-16T03:00:00+03:00' end: '2021-07-16T04:00:00+03:00' value: 0.07313 - start: '2021-07-16T04:00:00+03:00' end: '2021-07-16T05:00:00+03:00' value: 0.05308 - start: '2021-07-16T05:00:00+03:00' end: '2021-07-16T06:00:00+03:00' value: 0.05312 - start: '2021-07-16T06:00:00+03:00' end: '2021-07-16T07:00:00+03:00' value: 0.07673 - start: '2021-07-16T07:00:00+03:00' end: '2021-07-16T08:00:00+03:00' value: 0.09388 - start: '2021-07-16T08:00:00+03:00' end: '2021-07-16T09:00:00+03:00' value: 0.10187 - start: '2021-07-16T09:00:00+03:00' end: '2021-07-16T10:00:00+03:00' value: 0.10159 - start: '2021-07-16T10:00:00+03:00' end: '2021-07-16T11:00:00+03:00' value: 0.10704 - start: '2021-07-16T11:00:00+03:00' end: '2021-07-16T12:00:00+03:00' value: 0.10512 - start: '2021-07-16T12:00:00+03:00' end: '2021-07-16T13:00:00+03:00' value: 0.10464 - start: '2021-07-16T13:00:00+03:00' end: '2021-07-16T14:00:00+03:00' value: 0.10376 - start: '2021-07-16T14:00:00+03:00' end: '2021-07-16T15:00:00+03:00' value: 0.10224 - start: '2021-07-16T15:00:00+03:00' end: '2021-07-16T16:00:00+03:00' value: 0.10195 - start: '2021-07-16T16:00:00+03:00' end: '2021-07-16T17:00:00+03:00' value: 0.10264 - start: '2021-07-16T17:00:00+03:00' end: '2021-07-16T18:00:00+03:00' value: 0.10346 - start: '2021-07-16T18:00:00+03:00' end: '2021-07-16T19:00:00+03:00' value: 0.10215 - start: '2021-07-16T19:00:00+03:00' end: '2021-07-16T20:00:00+03:00' value: 0.10461 - start: '2021-07-16T20:00:00+03:00' end: '2021-07-16T21:00:00+03:00' value: 0.10254 - start: '2021-07-16T21:00:00+03:00' end: '2021-07-16T22:00:00+03:00' value: 0.09693 - start: '2021-07-16T22:00:00+03:00' end: '2021-07-16T23:00:00+03:00' value: 0.0961 - start: '2021-07-16T23:00:00+03:00' end: '2021-07-17T00:00:00+03:00' value: 0.09117 unit_of_measurement: EUR/kWh friendly_name: nordpool_kwh_ee_eur_5_10_0 icon: mdi:flash

Price in NOK for Oslo area is too low after latest release

Version of the custom_component

2b371ee

Configuration

image

Describe the bug

The value seems to be divided with a "ten too low" (not sure how to describe this in English, in Norwegian I would say "prisen er delt på ti for mye").

The hourly price should be around 0.58 for my selected setup, but it is 0.058. This worked correctly before tonights update. I have looked at the different things that was merged tonight without beeing able to find what causes this behaviour.

I am aware that the issue template say that a debug log is needed. I think the issue should be easily reproducible by using the attached setup and therefore no debug log is attached. I have removed and added the integration several times tonight (trying with/without VAT and displaying as cent) but regardless of these different options, the price is always "ten too low".

Thank you for working on this great component!

Possible bug in sensor.py

For "Oslo" it looks like a , has been used as a decimal delimiter instead of a . for VAT
Is this by design?

_REGIONS = {
    "DK1": ["DKK", "Denmark", 0.25],
    "DK2": ["DKK", "Denmark", 0.25],
    "FI": ["EUR", "Finland", 0.24],
    "EE": ["EUR", "Estonia", 0.20],
    "LT": ["EUR", "Lithuania", 0.21],
    "LV": ["EUR", "Latvia", 0.21],
    "Oslo": ["NOK", "Norway", 0, 25],
    "Kr.sand": ["NOK", "Norway", 0.25],
    "Bergen": ["NOK", "Norway", 0.25],
    "Molde": ["NOK", "Norway", 0.25],
    "Tr.heim": ["NOK", "Norway", 0.25],
    "Tromsø": ["NOK", "Norway", 0.25],
    "SE1": ["SEK", "Sweden", 0.25],
    "SE2": ["SEK", "Sweden", 0.25],
    "SE3": ["SEK", "Sweden", 0.25],
    "SE4": ["SEK", "Sweden", 0.25],
    # What zone is this?
    "SYS": ["EUR", "System zone", 0.25],
}

Todo

  • send PR so the nordpool sensor can be async
  • fix typing issues
  • add option handler so we can edit a sensor for webui
  • fix bug when when it’s a new day the sensor displays the old tomorrow values.

Bug: raw_tomorrow value is null on all hours

The sensor.nordpool is returning null as value for tomorrows values when they show up sometime after 12:30. Todays values are okay. Is this a bug?

`raw_tomorrow:

  • start: '2021-06-15T00:00:00+02:00'
    end: '2021-06-15T01:00:00+02:00'
    value: null
  • start: '2021-06-15T01:00:00+02:00'
    end: '2021-06-15T02:00:00+02:00'
    value: null
  • start: '2021-06-15T02:00:00+02:00'
    end: '2021-06-15T03:00:00+02:00'
    value: null`

raw_today is okay:

`raw_today:

  • start: '2021-06-14T00:00:00+02:00'
    end: '2021-06-14T01:00:00+02:00'
    value: 0.592
  • start: '2021-06-14T01:00:00+02:00'
    end: '2021-06-14T02:00:00+02:00'
    value: 0.547
  • start: '2021-06-14T02:00:00+02:00'
    end: '2021-06-14T03:00:00+02:00'
    value: 0.531`

Off Peak1 & 2

Hi.

Only a suggestion - add the definition of what off peak 1 and off peak 2 are

Docs

  • Apex card example
  • Template example
  • Real costs

When are prices for tomorrow valid?

At least in the morning, it seems like the price data for "tomorrow" is only a copy of the values for today. I suppose Nordpool does not make the data for the next day available until some time around noon or so. Is there any way of knowing if the tomorrow-values are valid? A simple boolean for this would be nice.

No new tomorrow values fetched

Hi,

I have been played around with Nordpool component couple of weeks and everything seemed to work until I left it alone, ie. do not modify anything and don't need to restart HA. It seems that nordpool fetches prices (today and tomorrow) once when started, then on the next day it transfers tomorrow prices to today prices, but does not fetch new prices. After two days it has lost all prices.

From which log I should start looking for, why it does not automatically retrieve new values daily?

If I restart HA, it fixes everything until next day.

VAT rate

Hello!
Running this via HACS and if you select "Include VAT" code always assumes 25% VAT.
In Finland we have 24% for example.

Unable to install v0.0.2 via HACS

HACS reports version 0.0.2 available to be installed via HACS. Nothing happens when you click install, and the following is logged:

2021-02-10 13:18:00 INFO (MainThread) [custom_components.hacs] Running pre installation steps
2021-02-10 13:18:00 INFO (MainThread) [custom_components.hacs] Pre installation steps completed
2021-02-10 13:18:00 INFO (MainThread) [custom_components.hacs] Running installation steps
2021-02-10 13:18:01 ERROR (MainThread) [custom_components.hacs] No content to download

Need manifiest version for Home Assistant 2021.6

Version of the custom_component

0.0.3

Describe the bug

A manifest.json file with a version is mandatory with Home Assistant version 2021.6 and this component no more loads without it. Greatly appreciated if this can be fixed, thanks!

Setup fails with "template value is None" after update to 0.0.3

Version of the custom_component

Version 0.0.3

Configuration

Configured using Integration, nothing in yaml.
Two instances, one for EUR and one for SEK since there were issues with SEK earlier. Both are for region SE3.

Describe the bug

After update 0.0.3 the integration does not load, I get Error while setting up nordpool platform for sensor. See log below.
I did the install (and update) through HACS, may be useful information.

Debug log


Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 198, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/nordpool/sensor.py", line 121, in async_setup_entry
    _dry_setup(hass, config, async_add_devices)
  File "/config/custom_components/nordpool/sensor.py", line 96, in _dry_setup
    sensor = NordpoolSensor(
  File "/config/custom_components/nordpool/sensor.py", line 178, in __init__
    self._ad_template = cv.template(self._ad_template)
  File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 554, in template
    raise vol.Invalid("template value is None")
voluptuous.error.Invalid: template value is None

translations directory should be renamed

running home-assistant v 0.109.2, the following warnings appear in the log:

nordpool: the '.translations' directory has been moved, the new name is 'translations', starting with Home Assistant 0.111 your translations will no longer load if you do not move/rename this

Price_type parameter causes error when set

I'm having trouble with the Nordpool sensor configuration. I'm currently running HASS v0.100.2 in Docker and the latest version of the custom component, dated Oct 11 2019.

My sensor configuration:

  - platform: nordpool
    region: "SE3"
    currency: "SEK"
    precision: 3
#    price_type: kwh
    friendly_name: "Nordpool"

After restarting HASS it takes about two minutes for it to come back online, compared to <30 sec without the sensor.

When enabling # price_type: kwh I get the following error message:

2019-10-25 20:59:18 ERROR (MainThread) [homeassistant.config] Invalid config for [sensor.nordpool]: value is not allowed for dictionary value @ data['price_type']. Got 'kwh'. (See /config/sensors/nordpool.yaml, line 0). Please check the docs at https://home-assistant.io/integrations/sensor.nordpool/

When following this link I get a 404 error. I get the same error when using mwh, "mwh" and w.

Check return currency before accepting data

Version of the custom_component

Configuration

sensor:

  - platform: nordpool
    VAT: true
    currency: SEK
    low_price_cutoff: 0.95
    region: SE3
    precision: 3
    price_type: kWh

Describe the bug

The component currently assumes that if you query for currency X, the result will contain prices in currency X. For several reasons, including kipe/nordpool#17, this may not be true and it would be most useful if the component could reject data in the wrong currency. No further information should be required.

Fixing this would not have prevented, but would have mitigated, #51

Is todays sportprice correct

No direct error, but it looks like today's prise is off with a factor of 10.
Attached a picture from today's values reported by this add-on, which is great by the way. And a snapshot from Nordpol website.

image
image

Tomorrows figures do looks to be correct.

Additional cost: yearly/monthly fixed cost + kwh variable cost

So this just me thinking out loud; but it would be nice if we somehow could add these addiational costs in a sane and correct way:

  • Yearly cost (for example grid rent)
  • Monthly cost (for example monthly cost regarding the power subscription)
  • Additonal kwh cost (for example additional kwh cost due to the power subscription)

The above in addition to the current kwh spot would be ideal which would boild down to an nice total kwh price

I did notice the tariff example in the README.md, however I can't wrap my head around the yearly/monthly costs if at all possible?

As an example I have:

Yearly grid rent: 2345 NOK
Monthly power subscription: 9 NOK
kwh charge grid rent: 0,452 NOK
kwh charge power subscription: 0,035 NOK
+ spot price

Template for additional costs

Is your feature request related to a problem? Please describe. no

Describe the solution you'd like
A clear and concise description of what you want to happen. Additional cost as a template. This way is easy to get the correct total cost. The only thing it can’t handle is fees related to usage.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Unable to find any timezone configuration

HASS 0.98.5 in docker
nordpool via HACS: Installed commit: 8435dcf
timezone set to: time_zone: Europe/Oslo

config:

 - platform: nordpool
   currency: 'NOK'
   region: 'Oslo'
   friendly_name: Strømpris

Traceback:

Update for sensor.elspot_kwhoslonok310 fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 261, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 441, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/nordpool/sensor.py", line 292, in update
    self._last_tick = pendulum.now()
  File "/usr/local/lib/python3.7/site-packages/pendulum/__init__.py", line 215, in now
    dt = _datetime.datetime.now(local_timezone())
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/__init__.py", line 59, in local_timezone
    return get_local_timezone()
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 31, in get_local_timezone
    tz = _get_system_timezone()
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 59, in _get_system_timezone
    return _get_unix_timezone()
  File "/usr/local/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 238, in _get_unix_timezone
    raise RuntimeError("Unable to find any timezone configuration")
RuntimeError: Unable to find any timezone configuration```

Can't use MWh unit

error:
Sat Nov 02 2019 17:16:05 GMT+0200 (Eastern European Standard Time) Update for sensor.nordpool_mwh_ee_eur_3_10_0 fails Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 270, in async_update_ha_state await self.async_device_update() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 450, in async_device_update await self.hass.async_add_executor_job(self.update) File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/nordpool/sensor.py", line 349, in update self._update(today) File "/config/custom_components/nordpool/sensor.py", line 242, in _update self._average = self._calc_price(data.get("Average")) File "/config/custom_components/nordpool/sensor.py", line 229, in _calc_price price = value / _PRICE_IN[self._price_type] * (float(1 + self._vat)) ZeroDivisionError: float division by zero

works with kWh

Exception in check_stuff when dispatching 'nordpool_update

Version of the custom_component

0.0.3

Configuration

sensor:
- platform: nordpool
    VAT: true
    currency: "NOK"
    low_price_cutoff: 0.90
    region: "Bergen"
    precision: 2
    friendly_name: "Nordpool"


Exception in check_stuff when dispatching 'nordpool_update': () Traceback (most recent call last): File "/config/custom_components/nordpool/sensor.py", line 477, in check_stuff self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 296, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 320, in _async_write_ha_state sstate = self.state File "/config/custom_components/nordpool/sensor.py", line 239, in state return self.current_price File "/config/custom_components/nordpool/sensor.py", line 324, in current_price res = self._calc_price() File "/config/custom_components/nordpool/sensor.py", line 277, in _calc_price price = template_value + value / _PRICE_IN[self._price_type] * ( TypeError: can only concatenate str (not "float") to str

Describe the bug

Sensor 'Unavailable'

Debug log


run script in hassio

hi,

how do you run the script when you are running hassio? You don't have access to stuff like installing python the same way.

Reload buggy if multiple np sensors

Version of the custom_component

Configuration

Add your logs here.

Describe the bug

Reload does not work correctly if multiple nordpool sensors is active

Debug log


Add your logs here.

[Question] Is it possible to get all 48 price values into one graph?

This may very well be my own negligence, but is it possible to get a graph in HA with all 48 price values ( todays price and tomorrows price )?
I've tried to use th create_template.py script, but can't really figure out how to merge all the sensors. If I try and add all the sensors in a History Graph they show up as individual points ( which I guess is expected ), and if I try to add an entity with the entityID ( sensor.[entity_ID] ) that was used with the script it shows up as a completely flat graph with value 0.

Clarification in readme how to use create_template script

I am having trouble understand how to use the create_template script in HA. Where and how should you execute the script? Just a bit more explanation in the readme.md file would be much appreciated.
Thank you for your good work

Sensor not showing up in HA

Copied all files into [ha_config_folder]/custom_components/nordpool/

Using the following config in configuration.yaml:

sensor:
  - platform: nordpool
    currency: "NOK"
    region: "Kr.sand"
    name: "Nordpool Spotpris"

Sensor does not show up in Home Assistant.

Sensor not initializing and updating

I'm having trouble with the Nordpool sensor not updating. I'm currently running HASS v0.100.2 in Docker and the latest version of the custom component, dated Oct 11 2019.

My sensor configuration:

  - platform: nordpool
    region: "SE3"
    currency: "SEK"
    precision: 3
    friendly_name: "Nordpool"
2019-10-25 20:29:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded nordpool from custom_components.nordpool
2019-10-25 20:31:46 INFO (SyncWorker_7) [custom_components.nordpool] async_setup nordpool
2019-10-25 20:31:46 INFO (SyncWorker_6) [custom_components.nordpool.sensor] setup_platform OrderedDict([('platform', 'nordpool'), ('currency', 'SEK'), ('region', 'SE3'), ('precision', 3), ('friendly_name', 'Nordpool'), ('VAT', <function Boolean at 0x7fc71db8a8c0>), ('price_type', 'kWh'), ('low_price_cutoff', 1.0)])
2019-10-25 20:31:46 INFO (SyncWorker_6) [custom_components.nordpool.sensor] pendulum default timezone Europe/Stockholm
2019-10-25 20:31:46 INFO (SyncWorker_6) [custom_components.nordpool.sensor] timezone set in ha <DstTzInfo 'Europe/Stockholm' LMT+1:12:00 STD>
2019-10-25 20:31:46 INFO (MainThread) [custom_components.nordpool.sensor] api returned junk infinty None
2019-10-25 20:31:46 INFO (MainThread) [custom_components.nordpool.sensor] api returned junk infinty None
2019-10-25 20:31:46 INFO (MainThread) [custom_components.nordpool.sensor] api returned junk infinty None
2019-10-25 20:32:17 INFO (SyncWorker_6) [custom_components.nordpool.sensor] NordpoolSensor _data_today is none, trying to fetch it.
2019-10-25 20:32:18 INFO (SyncWorker_6) [custom_components.nordpool.sensor] Called _update setting attrs for the day
2019-10-25 20:32:18 INFO (SyncWorker_6) [custom_components.nordpool.sensor] NordpoolSensor _data_tomorrow is none, trying to fetch it.
2019-10-25 20:32:18 INFO (SyncWorker_6) [custom_components.nordpool.sensor] Updated _current_price!
2019-10-25 20:32:48 INFO (SyncWorker_2) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.

On the second to last line, the sensor claims to have updated current_price but nothing shows in the GUI. After restarting HASS it takes about two minutes for it to come back online, compared to <30 sec without the sensor.

Nordpool Lovelace card?

The Nordpool sensor has attributes for today and tomorrow el- price. Displaying these prices over the 48 hours period, in a graph would be a beneficial card.

Any chance someone have the knowledge to make a card like this?

image

Spamming the log

My log is quickly filling up with entries like these:

2019-10-29 22:28:58 INFO (SyncWorker_5) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:29:29 INFO (SyncWorker_14) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:30:00 INFO (SyncWorker_17) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:30:31 INFO (SyncWorker_9) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:31:02 INFO (SyncWorker_3) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:31:33 INFO (SyncWorker_3) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:32:04 INFO (SyncWorker_4) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:32:35 INFO (SyncWorker_11) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:33:06 INFO (SyncWorker_17) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:33:37 INFO (SyncWorker_4) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:34:08 INFO (SyncWorker_11) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:34:39 INFO (SyncWorker_5) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:35:10 INFO (SyncWorker_10) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:35:41 INFO (SyncWorker_10) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:36:12 INFO (SyncWorker_19) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:36:43 INFO (SyncWorker_0) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:37:14 INFO (SyncWorker_1) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:37:45 INFO (SyncWorker_1) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:38:16 INFO (SyncWorker_6) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:38:47 INFO (SyncWorker_18) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:39:18 INFO (SyncWorker_2) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:39:49 INFO (SyncWorker_18) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:40:20 INFO (SyncWorker_4) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:40:51 INFO (SyncWorker_19) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:41:22 INFO (SyncWorker_16) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:41:53 INFO (SyncWorker_14) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.
2019-10-29 22:42:24 INFO (SyncWorker_6) [custom_components.nordpool.sensor] Tried to update the hourly price but it wasnt a new hour.

What is causing this?

First hour price lost in Finland

Hi,

I found that there is inconsistency when tomorrow prices are copied to today prices. Please see the pictures.

In the first picture there is fetched prices for today and tomorrow tables on Thu 16.4. and the third picture shows same prices on Fingrid's app in Finland. If we compare pictures there is actually one hour error through the day and error can be clearly seen on the last hour. According the Nordpool app the last hour price is 1.53, but actually that should be the price for the first hour of the next day.

The picture in the middle shows what happens right after midnight. Tomorrow prices are copied to today prices and the first hour is wrong in the table. The value 1.53 is never used.

What happens in the nordpool component? For time of the first hour the 'current price' field is showing yesterday's last hour price (1.74). When time in Finland passes 01.00, it start showing right 'current price' value. The issue is only during the first hour of the day.

nordpool_day_change

Friendly name not used when configured using config_flow

Version of the custom_component

Version 0.0.3

Configuration

Installed from HACS, using configuration flow, so no YAML to copy.

Region: SE3
Currency: SEK
Friendly name: Elpris

Other values are left at default.

Describe the bug

A clear and concise description of what the bug is.

Setting friendly name during configuration flow (adding through Integrations) does not apply to sensor.
I have not tried if it works with yaml.

Debug log


No relevant log. Last lines of sensor:

unit_of_measurement: SEK/kWh
friendly_name: nordpool_kwh_se3_sek_3_10_025
icon: mdi:flash

No longer works after upgrade to home assistant 0.103.4

Upgraded to v0.103.4 of Home Assistant and the nordpool component no longer works.

ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-xgg969dl/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.10/armv7/ -- 'poetry>=0.12' Check the logs for full command output.
2019-12-25 19:47:04 ERROR (MainThread) [homeassistant.config] Platform error: sensor - Requirements for nordpool not found: ['pendulum>=2.0'].
2019-12-25 19:48:52 ERROR (SyncWorker_3) [homeassistant.util.package] Unable to install package pendulum>=2.0: ERROR: Command errored out with exit status 1:
   command: /usr/local/bin/python3 /usr/local/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-15yeug4r/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.10/armv7/ -- 'poetry>=0.12'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.