Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:smartthings_cooler

Dies ist eine alte Version des Dokuments!


Samsung RS6GA884CSL/EG Side-by-Side Kühlschrank

Der Kühlschrank wird mit WIFI ausgeliefert. In der Nachricht ist sowohl die Temperatur, also auch der Verbrauch sichtbar: Anstatt des Kühlschrankes sollten sich auch viele andere Smartthings-Geräte einbinden lassen. (Klimaanlage?)

Das Script sollte mit cron regelmäßig aufgerufen werden.

myexample.py
#!/usr/bin/env python3
import requests
import json
 
def main():
    token = 'e306f894-c0da-4bd9-822e-2ad965092478' # get it from https://account.smartthings.com/tokens
    url = 'https://api.smartthings.com/v1/devices/702b151a-acc1-46b3-b16d-aadb1b74149e/status' 
    headers = {'Authorization': 'Bearer '+token}
    myobj = {'somekey': 'somevalue'}
    x = requests.get(url, headers=headers)
    print (x.json()['components']['main']['powerConsumptionReport']['powerConsumption']['value']['energy'])
    print (x.json()['components']['cooler']['temperatureMeasurement']['temperature']['value'])
    print (x.json()['components']['cooler']['thermostatCoolingSetpoint']['coolingSetpoint']['value'])
    print (x.json()['components']['freezer']['thermostatCoolingSetpoint']['coolingSetpoint']['value'])
    #send to VZLOgger
    headers = {'x-auth-token': '2ad965092478', 'Content-Type': 'application/json' }
    server_endpoint = "http://localhost:8080/data/d52043c0-c330-11ec-b314-5f9afa3b2ce2.json?value=" + str( x.json()['components']['main']['powerConsumptionReport']['powerConsumption']['value']['energy'] );
    y = requests.post(server_endpoint, headers=headers,  data=' ')
    print (y.json())
    server_endpoint = "http://localhost:8080/data/e10e5be0-c33a-11ec-8631-4bb138decf9f.json?value=" + str( x.json()['components']['cooler']['temperatureMeasurement']['temperature']['value'] );
    y = requests.post(server_endpoint, headers=headers,  data=' ')
    print (y.json())
    server_endpoint = "http://localhost:8080/data/878eb080-c340-11ec-8251-d79d02cab158.json?value=" + str( x.json()['components']['freezer']['temperatureMeasurement']['temperature']['value'] );
    y = requests.post(server_endpoint, headers=headers,  data=' ')
    print (y.json())
    #get from VZLOGGER current measurement if we buy or sell energy
    url = 'http://localhost:8080/data/6f059630-dc46-11e3-a595-3d3810b75dc6.json'
    y = requests.get(url)
    einspeisung  = y.json()['data']['tuples'][0][1]
    if einspeisung <  -500:
       soll1 = -21
       soll2 = 4
    if einspeisung >  0:
       soll1 = -19
       soll2 = 6
    # adjust temperatures based on it
    if soll1  != x.json()['components']['freezer']['temperatureMeasurement']['temperature']['value']:
       url = 'https://api.smartthings.com/v1/devices/702b151a-acc1-46b3-b16d-aadb1b74149e/commands'
       headers = {'Authorization': 'Bearer '+token, 'Content-Type': 'application/json' }
       payload = [{"component":"freezer","capability":"thermostatCoolingSetpoint","command":"setCoolingSetpoint","arguments":[soll1]}]
       y = requests.post(url, headers=headers,  data=json.dumps(payload))
       print (y.json())
    if soll2  != x.json()['components']['cooler']['temperatureMeasurement']['temperature']['value']:
       url = 'https://api.smartthings.com/v1/devices/702b151a-acc1-46b3-b16d-aadb1b74149e/commands'
       headers = {'Authorization': 'Bearer '+token, 'Content-Type': 'application/json' }
       payload = [{"component":"cooler","capability":"thermostatCoolingSetpoint","command":"setCoolingSetpoint","arguments":[soll2]}]code
       y = requests.post(url, headers=headers,  data=json.dumps(payload))
       print (y.json())
hardware/smartthings_cooler.1650775521.txt.gz · Zuletzt geändert: von mauwjo