REST API Samples
HTML / Javascript (jquery) Examples
HTML / Javascript (jquery) Examples
Get all devices
Get all devices
<html>
<head>
<title>smart-me REST API Sample</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<h1>Get all devices</h1>
<ul id="DeviceList">
</ul>
<script type="text/javascript">
var smartmeUserName = "YOUR_USERNAME";
var smartmePassword = "YOUR_PASSWORD";
function GetAllDevices() {
var targetUrl = "https://api.smart-me.com/api/Devices/";
$.ajax({
url: targetUrl,
type: "get",
cache: false,
headers: {
"Authorization": "Basic " + btoa(smartmeUserName + ":" + smartmePassword)
},
dataType: "json",
error: function(jqXHR, exception) {
alert(exception);
},
success: function(json) {
json.forEach(function(element) {
// Do something
$("#DeviceList").append($("<li>").text(element.Name + ": " + element.CounterReadingImport + " " + element.CounterReadingUnit));
});
}
});
}
// On document load
$(document).ready(function() {
// Get all smart-me devices
GetAllDevices();
});
</script>
</body>
</html>
Create and update device
Create and update device
<html>
<head>
<title>smart-me REST API Sample</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<h1>Create and update devices</h1>
<button type="button" id="CreateNewDeviceButton">Create new device</button>
<script type="text/javascript">
var smartmeUserName = "YOUR_USERNAME";
var smartmePassword = "YOUR_PASSWORD";
var counterValueImport = 0.0;
var counterValueExport = 0.0;
var activePowerTempValue = 0.1;
// The ID of the device
var deviceID = null;
function GetElectricityDevice(id, power, energyImport, energyExport) {
var deviceObject = new Object();
if (id != null) {
// Object with an ID updates the existing device. Object without an ID creates a new one
deviceObject.ID = id;
}
// Add all data
deviceObject.Name = "My test device";
deviceObject.Serial = 12345678;
deviceObject.DeviceEnergyType = "MeterTypeElectricity"; // MeterTypeWater for Water, MeterTypeGas for Gas, MeterTypeHeat for Heat
// Set active power in kW
deviceObject.ActivePower = power;
// Set countervalues import (in kWh)
deviceObject.CounterReading = energyImport;
// Set countervalues export (in kWh)
deviceObject.CounterReadingExport = energyExport;
return deviceObject;
}
function CreateUpdateDevice(deviceObject) {
var targetUrl = "https://api.smart-me.com/api/Devices/";
var postData = JSON.stringify(deviceObject);
$.ajax({
url: targetUrl,
type: "post",
cache: false,
headers: {
"Authorization": "Basic " + btoa(smartmeUserName + ":" + smartmePassword)
},
dataType: "json",
contentType: "application/json; charset=utf-8",
data: postData,
error: function(jqXHR, exception) {
alert(exception);
},
success: function(json) {
// The device was created or updated
deviceID = json.Id;
$('#CreateNewDeviceButton').text("Update device");
alert("OK! device ID: " + json.Id);
}
});
}
// On document load
$(document).ready(function() {
$('#CreateNewDeviceButton').click(function(e) {
// No Postback
e.preventDefault();
// Add some random values
activePowerTempValue += 0.1;
counterValueImport += 1.0;
counterValueExport += 0.5;
var electricityDevice = GetElectricityDevice(deviceID, activePowerTempValue, counterValueImport, counterValueExport);
// Send to cloud
CreateUpdateDevice(electricityDevice);
});
});
</script>
</body>
</html>
Create or update devices
Create or update devices
Heat meter
Heat meter
API Method: 'POST /api/devices'
Payload:
{
"Id": "b0ec0030-9f97-4c3c-897f-8175074177bc",
"Name": "Wärme Zähler Test",
"Serial": 2233445566,
"DeviceEnergyType": "MeterTypeHeat",
"ActivePower": 5.89,
"CounterReading": 1234.56,
}
To create a device don't send a ID.