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