Um die Sensorwerte abfragen und in die Datenbank eintragen zu können, wurde in einem der letzten Tutorials (Zum Tutorial: Sensorwerte in Datenbank speichern) bereits ein kleiner Teil der Schnittstelle angelegt, die auch von der Smarthome App verwendet wird, die bald programmiert wird. Diese Schnittstelle wird heute noch ein wenig ausgebaut, damit der Programmierung der App nichts mehr im Wege steht.
Das Video zum Tutorial
Die Schnittstelle
Verbinde dich per FTP mit deinem Server und öffne im Serverhauptverzeichnis die Datei "api.php". Dort fügst du nun zum vorhandenen Include die folgenden Includes hinzu://Funksteckdosen
include "getModes.php";
include "setModes.php";
//Andere
include "getRooms.php";
include "getSystemInfo.php";
//Szenen
include "scenes/getScenes.php";
include "scenes/runScene.php";
include "scenes/createScene.php";
case "getrooms":
echo getRooms($db);
break;
case "getmodes":
echo getModes($_POST['room'], $_POST['device'], $db);
break;
case "setmodes":
echo setModes($_POST['room'], $_POST['device'], $_POST['zustand'], $db);
break;
case "runscene":
echo runScene($_POST['room'], $_POST['name'], $db);
break;
case "createscene":
echo createScene($_POST['devices'], $_POST['rooms'], $_POST['types'], $_POST['values'], $_POST['conditions'], $_POST['room'], $_POST['name'], $db);
break;
case "getscenes":
echo getScenes($_POST['room'], $db);
break;
case "getsysteminfo":
echo getSystemInfo();
break;
<?php
//Datenbankverbindung herstellen
$SQLITEdb = "database/data.sqlite";
$db = new PDO("sqlite:".$SQLITEdb);
//Funksteckdosen
include "getModes.php";
include "setModes.php";
//Andere
include "getRooms.php";
include "getSensorData.php";
include "getSystemInfo.php";
//Szenen
include "scenes/getScenes.php";
include "scenes/runScene.php";
include "scenes/createScene.php";
$validUser = validateUser($_POST['username'], $_POST['password'], $db);
if($validUser){
switch($_POST['action']){
case "getrooms":
echo getRooms($db);
break;
case "getmodes":
echo getModes($_POST['room'], $_POST['device'], $db);
break;
case "setmodes":
echo setModes($_POST['room'], $_POST['device'], $_POST['zustand'], $db);
break;
case "getsensordata":
echo getSensorData($_POST['room'], $_POST['value'], $_POST['showeinheit'], $db);
break;
case "runscene":
echo runScene($_POST['room'], $_POST['name'], $db);
break;
case "createscene":
echo createScene($_POST['devices'], $_POST['rooms'], $_POST['types'], $_POST['values'], $_POST['conditions'], $_POST['room'], $_POST['name'], $db);
break;
case "getscenes":
echo getScenes($_POST['room'], $db);
break;
case "getsysteminfo":
echo getSystemInfo();
break;
}
}
function validateUser($username, $password, $db){
//wird noch implementiert
return true;
}
?>
Erklärung des Skriptes
Im oberen Teil des Skriptes werden per "include"-Anweisung die einzelnen Module geladen. Weiter unten wird mit einer if-Abfrage geprüft, ob die Logindaten des Nutzers korrekt sind und ob er über die benötigten Berechtigungen verfügt. Im switch-Block wird je nach gewünschter Aktion die entsprechende Methode ausgeführt und der Rückgabewert ausgegeben.Dieser Beitrag hat dir gefallen?
Dann abonniere doch unseren Newsletter!