Schnittstelle für Android App erstellen

Teile diesen Beitrag

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";

Und zum switch-Block die folgenden Cases:

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;

Deine Schnittstelle sollte jetzt in etwa so aussehen:

<?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.

Teile diesen Beitrag
, , , ,
Vorheriger Beitrag
Systemdaten des Raspberry Pi abrufen
Nächster Beitrag
Alle Daten eines Raumes abfragen

Ähnliche Beiträge

Menü

Wir nutzen Cookies, um dir passende Inhalte zu präsentieren und dein Surfvergnügen zu optimieren, aktivieren Cookies aber erst, wenn du auf akzeptieren klickst. Weitere Informationen

Wir benutzen Google Analytics, um zu ermitteln, welche Inhalte unsere Besucher sehen wollen und welche nicht. Eingebettete YouTube-Videos helfen dir mittels Cookies nur die Videos zu sehen, die du sehen willst.

Schließen