Acasă

Articole în directorul de descărcări

Directorul de descărcări este gol
articol(e) în directorul de descărcări

!

Vizualizare director de descărcări
Către centrul de descărcări

Articole în coșul dvs.

Coșul este gol.
articol(e) în coș

Solution

Cantitate:
Vizualizare coș/listă proiect
Deschideți o altă listă de proiect
Exportare ca .xlsx Exportare ca .csv Importare din .csv
Produs scos din fabricație
  • Bun venit, {0} - Contul meu

    Contul meu


    • Deconectare
    Conectare/Înregistrare
  • Produse

    Servomotoare

    • Dimensionare și selecție servomotoare
    • Servomotoare fără funcție de siguranță
    • Servomotoare cu funcție de siguranță
    • Servomotoare pentru condiții de mediu dure
    • Servomotoare rapide
    • Servomotoare liniare
    • Servomotoare pentru clapete de foc
    • Servomotoare pentru clapete de fum
    • Volum de aer variabil (VAV)
    • Servomotoare pentru vană

    Vane

    • Dimensionarea și selectarea vanelor
    • Belimo Energy Valve™
    • Vane de reglaj independente de presiune
    • Vane de zonă
    • Vane de control liniarizate
    • Vane cu sferă
    • Vane fluture
    • Vane cu ventil
    • Vane pentru apă potabilă
    • Refrigeration Valves
    • Servomotoare pentru vană

    Senzori/Contoare

    • Selectarea senzorilor/contoarelor
    • Senzori de tubulatură (aer)
    • Senzori de țeavă (apă)
    • Senzori de exterior (aer)
    • Unități de cameră
    • Contoare de energie termică (TEM)
    • Belimo Energy Valve™ cu TEM

    Sisteme

    • Belimo Energy Valve™
    • Soluții cameră
    • Integrare sistem și magistrală
    • Foc și fum
    • Distribuitor încălzire
    • Belimo ZoneEase™ VAV

    RetroFIT+

    • RetroFIT+ Tool Inlocuire produs
    • Maximizați potențialul sistemului
    • Modernizați-vă sistemul
    • Optimizarea sistemelor HVAC existente
    • RetroFIT+ Produse de înlocuire

    Aplicații

    • Aplicații de răcire a centrelor de date
    • Centrale de tratare a aerului (AHUs)
    • Aplicații de interior și de zonă
  • Suport

    Servicii

    • Dimensionare și selecție servomotoare
    • Dimensionarea și selectarea vanelor
    • Selectarea senzorilor/contoarelor
    • RetroFIT+ Tool Inlocuire produs
    • Produse specifice clienților
    • Centru de descărcări
    • Instrumente de service/aplicații
    • Software/Plug-in-uri/CAD
    • Arhivă fișiere (integrarea sistemului și a magistralei)
    • Catalogul de produse și prețuri
    • Condiții generale de vânzare și livrare
    • Belimo Cloud: Autentificare / Înregistrare
    • Activarea contorului de energie termică
    • Videoclipuri

    Belimo Education

    • Belimo Experience Center (Hinwil, Elveția)
    • Turul companiei (Hinwil, Elveția)
    • Webinarii
    • Instruire

    Aplicații

    • Aplicații de răcire a centrelor de date
    • Centrale de tratare a aerului (AHUs)
    • Aplicații de interior și de zonă
  • Despre noi

    Belimo

    • Profil
    • Valorile noastre
    • Sustenabilitate
    • Istoric
    • Premii și recunoașteri
    • Furnizori
    • Organizații afiliate
    • Calitate @ Belimo
    MKT-IMG_belimo_video_block

    Mass-media

    • Știri
    • Puncte forte
    • Povești de succes
    • Videos
    • Imagini și logo-uri
    • Expoziții și evenimente
    • Contacte
    lower_pic
  • Contactați-ne
  • România

    America

    • Brazilia
    • Canada
    • Caraibe, America Latină și Statele Unite ale Americii

    Europa, Orientul Mijlociu și Africa

    • Africa de Sud
    • Albania
    • Arabia Saudită
    • Austria
    • Belarus
    • Belgia
    • Bosnia și Herțegovina
    • Bulgaria
    • Croația
    • Danemarca
    • Egipt
    • Elveția
    • Emiratele Arabe Unite (FZE)
    • Estonia
    • Finlanda
    • Franța
    • Georgia
    • Germania
    • Grecia
    • Irlanda
    • Israel
    • Italy (Italia)
    • Kazahstan
    • Letonia
    • Lituania
    • Macedonia de Nord
    • Norvegia
    • Polonia
    • Regatul Unit
    • Republica Cehă
    • România
    • Serbia și Muntenegru
    • Slovacia
    • Slovenia
    • Spania
    • Suedia
    • Țările de Jos
    • Turcia
    • Ucraina
    • Ungaria

    Asia Pacific

    • Australia
    • Cambodgia
    • China
    • Coreea
    • Filipine
    • Hong Kong SAR, China
    • India
    • Indonezia
    • Japonia
    • Macao SAR, China
    • Malaezia
    • Myanmar
    • Noua Zeelandă
    • Singapore
    • Taiwan, China
    • Thailanda
    • Vietnam
    Română

    Română

    English

  • România

    America

    • Brazilia
    • Canada
    • Caraibe, America Latină și Statele Unite ale Americii

    Europa, Orientul Mijlociu și Africa

    • Africa de Sud
    • Albania
    • Arabia Saudită
    • Austria
    • Belarus
    • Belgia
    • Bosnia și Herțegovina
    • Bulgaria
    • Croația
    • Danemarca
    • Egipt
    • Elveția
    • Emiratele Arabe Unite (FZE)
    • Estonia
    • Finlanda
    • Franța
    • Georgia
    • Germania
    • Grecia
    • Irlanda
    • Israel
    • Italy (Italia)
    • Kazahstan
    • Letonia
    • Lituania
    • Macedonia de Nord
    • Norvegia
    • Polonia
    • Regatul Unit
    • Republica Cehă
    • România
    • Serbia și Muntenegru
    • Slovacia
    • Slovenia
    • Spania
    • Suedia
    • Țările de Jos
    • Turcia
    • Ucraina
    • Ungaria

    Asia Pacific

    • Australia
    • Cambodgia
    • China
    • Coreea
    • Filipine
    • Hong Kong SAR, China
    • India
    • Indonezia
    • Japonia
    • Macao SAR, China
    • Malaezia
    • Myanmar
    • Noua Zeelandă
    • Singapore
    • Taiwan, China
    • Thailanda
    • Vietnam
  • RO EN
  • Bun venit, {0} - Contul meu

    Contul meu


    • Deconectare
    Conectare/Înregistrare
Acasă
  • Produse

    Servomotoare

    • Dimensionare și selecție servomotoare
    • Servomotoare fără funcție de siguranță
    • Servomotoare cu funcție de siguranță
    • Servomotoare pentru condiții de mediu dure
    • Servomotoare rapide
    • Servomotoare liniare
    • Servomotoare pentru clapete de foc
    • Servomotoare pentru clapete de fum
    • Volum de aer variabil (VAV)
    • Servomotoare pentru vană

    Vane

    • Dimensionarea și selectarea vanelor
    • Belimo Energy Valve™
    • Vane de reglaj independente de presiune
    • Vane de zonă
    • Vane de control liniarizate
    • Vane cu sferă
    • Vane fluture
    • Vane cu ventil
    • Vane pentru apă potabilă
    • Refrigeration Valves
    • Servomotoare pentru vană

    Senzori/Contoare

    • Selectarea senzorilor/contoarelor
    • Senzori de tubulatură (aer)
    • Senzori de țeavă (apă)
    • Senzori de exterior (aer)
    • Unități de cameră
    • Contoare de energie termică (TEM)
    • Belimo Energy Valve™ cu TEM

    Sisteme

    • Belimo Energy Valve™
    • Soluții cameră
    • Integrare sistem și magistrală
    • Foc și fum
    • Distribuitor încălzire
    • Belimo ZoneEase™ VAV

    RetroFIT+

    • RetroFIT+ Tool Inlocuire produs
    • Maximizați potențialul sistemului
    • Modernizați-vă sistemul
    • Optimizarea sistemelor HVAC existente
    • RetroFIT+ Produse de înlocuire

    Aplicații

    • Aplicații de răcire a centrelor de date
    • Centrale de tratare a aerului (AHUs)
    • Aplicații de interior și de zonă
  • Suport

    Servicii

    • Dimensionare și selecție servomotoare
    • Dimensionarea și selectarea vanelor
    • Selectarea senzorilor/contoarelor
    • RetroFIT+ Tool Inlocuire produs
    • Produse specifice clienților
    • Centru de descărcări
    • Instrumente de service/aplicații
    • Software/Plug-in-uri/CAD
    • Arhivă fișiere (integrarea sistemului și a magistralei)
    • Catalogul de produse și prețuri
    • Condiții generale de vânzare și livrare
    • Belimo Cloud: Autentificare / Înregistrare
    • Activarea contorului de energie termică
    • Videoclipuri

    Belimo Education

    • Belimo Experience Center (Hinwil, Elveția)
    • Turul companiei (Hinwil, Elveția)
    • Webinarii
    • Instruire

    Aplicații

    • Aplicații de răcire a centrelor de date
    • Centrale de tratare a aerului (AHUs)
    • Aplicații de interior și de zonă
  • Despre noi

    Belimo

    • Profil
    • Valorile noastre
    • Sustenabilitate
    • Istoric
    • Premii și recunoașteri
    • Furnizori
    • Organizații afiliate
    • Calitate @ Belimo
    MKT-IMG_belimo_video_block

    Mass-media

    • Știri
    • Puncte forte
    • Povești de succes
    • Videos
    • Imagini și logo-uri
    • Expoziții și evenimente
    • Contacte
    lower_pic
  • Contactați-ne
  • Produs scos din fabricație
  • Articole în directorul de descărcări

    Directorul de descărcări este gol
    articol(e) în directorul de descărcări

    !

    Vizualizare director de descărcări
    Către centrul de descărcări
  • Articole în coșul dvs.

    Coșul este gol.
    articol(e) în coș

    Solution

    Cantitate:
    Vizualizare coș/listă proiect
    Deschideți o altă listă de proiect
    Exportare ca .xlsx Exportare ca .csv Importare din .csv
  1. Acasă
  2. Building IoT
  3. Belimo Digital Ecosystem Developer Space

Plot your first graph in Python

In a few simple steps you can build your fully-functional application, main focus is on:

  • Gain access to the Service User Space
  • Select data
  • Acquire data
  • Plot

To have the complete example just cut and paste in a single file the code shown in the next paragraphs. 

This example has been designed for the demo environment so you will replace "__UserPlaceHolder__" and "__PasswordPlaceHolder__" with your BelimoID Account credential and "__ClientIDPlaceHolder__" and "__ClientSecretPlaceHolder__" with the credential you received for the Developer Space.

To access the complete documentation about our Cloud API log in http://cloud.belimo.com using your BelimoID and then chose "support" -> "Documentation" 

 

Python Libraries import

import requests
import json
import pandas as pd
import matplotlib.pyplot as plt
# enable inline pictures in Jupyter Notebook
%matplotlib inline
from oauthlib.oauth2 import LegacyApplicationClient
from requests_oauthlib import OAuth2Session

Set up the OAuth2.0 session

# OAuth Client
client_id = '__ClientIDPlaceHolder__'
client_secret = '__ClientSecretPlaceHolder__'
# OAuth user
user = '__UserPlaceHolder__'
passwd = '__PasswordPlaceHolder__'

# shorthand url
cloud = 'https://cloud.belimo.com'
oauth = OAuth2Session(client=LegacyApplicationClient(client_id=client_id))
token = oauth.fetch_token(
token_url='https://id.belimo.com/oauth/token',
username=user,
password=passwd,
client_id=client_id,
client_secret=client_secret,
include_client_id=True,
audience="https://api.cloud.belimo.com/",
scope=['public.read', 'offline_access', 'read:dataprofile'])

Get an overview of your devices

oauth.get(url=cloud + '/api/v3/devices/stats').json()

The output is then something like:

 

{
    'totalDevices': 36, 
    'connection': 
        {
         'offline': 1, 
         'online': 35
         }, 
    'health': 
        {
         'problem': 1, 
         'ok': 35
        }, 
    'transfer': 
        {
         'incoming': 0, 
         'outgoing': 0
        } 
}
         
     

Now we examine in more detail the devices seen and filter for those which are associated with heating:

# The id of the device (unique name)
# DisplayName: set during commissioning (allows for easy identification) (we will filter according to that one)
# Dataprofile: Where to find the information how to interprete data from the device
# url parameters
params = {
    'state': 'REGISTERED', # only get registered devices
    'limit': '100' # page size
}
# call API and print information
for device in oauth.get(url=cloud + '/api/v3/devices', params=params).json()['data']:
    if 'Heizung' in device['displayName']: # german word for 'Heating'
        print('id: ' + device['id'])
        print('name: ' + device['displayName'])
        print('dataprofile: ' + device['dataprofile']['entityId'])

The output is something like:

id: 5a430aa2-1d46-4776-bfe1-a10b6c567230
    name: Energieventil Heizung 2.OG Sued-Ost
    dataprofile: energyvalve3/1.2
    id: 3c563d80-48f0-4a7a-8701-65d65aefdd9c
    name: Energieventil Heizung 2.OG Nord-Ost
    dataprofile: energyvalve3/1.2
    id: 3c6f7077-a147-4d25-865f-e72901d9de62
    name: Energieventil Heizung 2.OG Nord-West
    dataprofile: energyvalve3/1.2
    id: b69b0b32-03ca-4ec4-8850-2a1b474fbd83
    name: Energieventil Heizung 1.OG Sued-West
    dataprofile: energyvalve3/1.2
    id: 0cc5b932-c7b0-4eab-87ae-153aec6a7f90
    name: Energieventil Heizung 2.OG Sued-West
    dataprofile: energyvalve3/1.2    

Now let's download the Dataprofile and find the datapoint of interest

let's say we are interested in the following device

  • id: 3c6f7077-a147-4d25-865f-e72901d9de62
  • name: Energieventil Heizung 2.OG Nord-West
  • dataprofile: energyvalve3/1.2
deviceid = '3c6f7077-a147-4d25-865f-e72901d9de62'
dataprofileid = 'energyvalve3/1.2'

dataprofiledef  = oauth.get(url=cloud + '/api/v3/definitions/dataprofiles/' + dataprofileid).json()
# Extract relevant datapoints
# Let's say we are interested in energy consumption
print('Energy related datapoints:')
for dp in dataprofiledef['datapoints']:
    if 'Energy' in dp['featureValues']['default.description']: # get those datapoints which are related to Energy
        print('id: ' + dp['id'])
        print('description: ' + dp['featureValues']['default.description'])

The output will be something like this:

    Energy related datapoints:
    id: evcloud.200
    description: Cooling Energy in J
    id: evcloud.210
    description: Heating Energy in J

let's get the state and historical values for the heating energy:

# Current state
# First we the current state of the device, and extract from it e.g. location
state = oauth.get(url=cloud + '/api/v3/devices/' + deviceid).json()
# We can print current Value
state['state']['datapoints']['evcloud.210']
# Set parameters to access the historical data
params = {
    'datapointIds': 'evcloud.210',
    'resolution': '1d',
    'from': '2017-12-01T00:00:00Z',
    'to': '2018-12-01T00:00:00Z'
}
data = oauth.get(url=cloud + '/api/v3/devices/' + deviceid + '/data/history/timeseries', params=params).json()
# Extract the time series
# We only queried for one series
# We are interested in the values, not the metadata
# construct pandas DataFrame from data
heatingEnergy = pd.DataFrame(data['series'][0]['values'])
# convert timestamp to pandas datetime
heatingEnergy['timestamp'] = pd.to_datetime(heatingEnergy.timestamp)
# Energy is cumulative -- here we compute the difference between timepoints and convert to kWh
heatingEnergy['DiffEnergyConsumption'] = heatingEnergy.value.diff() / 3600000

and then plot the energy consumption

heatingEnergy.plot(x='timestamp', y='DiffEnergyConsumption', marker='o', alpha=0.5, stacked=True, figsize=(20,10))

plt.show()

The outcome should look like this:

output_31_1

Bun venit la Belimo {{js-currentCountryName}}

{{js-currentCountryText}}
Contact Us Privacy Policy Modificare setări de confidențialitate Note de siguranță Termeni și Condiții Generale Imprint
+40 21 3171613
Abonează-te la newsletter
BELIMO Holding AG, Brunnenbachstrasse 1, 8340 Hinwil (Elveția)