Räume im Smarthome abfragen

Räume im Smarthome abfragen


08.06.2016  |  Smarthome Server, Tutorial

In der nächsten Zeit wird mit der Programmierung einer Smarthome-App für Android-Geräte begonnen. Damit diese App nicht jedes mal umgeschrieben werden muss, wenn sich etwas am Smarthome ändert, werden manche Elemente, wie beispielsweise die vorhandenen Geräte, die vorhandenen Sensoren und auch die vorhandenen Räume nicht in der App festgelegt, sondern bei Bedarf vom Server abgefragt. Damit dies funktioniert, wird in diesem Tutorial eine Schnittstelle angelegt, über die die angelegten Räume abgefragt werden können. Die App erstellt dann dynamisch anhand des Ergebnisses des Aufrufs ein Menü, in dem alle Räume aufgelistet sind und aufgerufen werden können. In einem der letzten Beiträge hast du bereits gelernt, wie du Sensorwerte in einer Datenbank speichern kannst. Falls du diesen Beitrag noch nicht gelesen hast, solltest du es jetzt nachholen, da dort die Datenbank-Tabelle "ROOMS" erstellt wird, die in diesem Tutorial benötigt wird.

Das Skript der Schnittstelle

Das Skript, das die Daten zurückgibt, ist an sich nicht sonderlich kompliziert. Es fragt die angelegten Räume aus der Datenbank ab und erstellt ein JSON-Objekt, in das alle Daten eingefügt werden und gibt es schließlich aus. Um das Skript anzulegen, erstellst du per FTP in deinem Server-Hauptverzeichnis eine Datei namens "getRooms.php" in die du folgenden php-Code einfügst:
<?php

function getRooms($db){
	//R&auml;ume laden
	$results = $db->prepare("SELECT * FROM 'ROOMS'");

	$results->execute();

	$rooms = array();

	//JSON-Objekt erstellen und f&uuml;llen
	foreach($results->fetchAll(PDO::FETCH_ASSOC) as $row){
		$room_item = array('name' => $row['NAME'], 'location' => $row['LOCATION']);
		array_push($rooms, $room_item);
	}

	//JSON-Objekt ausgeben
	header('Content-type: application/json');
	return json_encode(array('rooms' => $rooms));
}

?>

Funktionsweise des Skripts

Das Skript wird über eine Schnittstelle (wird bei Programmierung der Android-App angelegt) aufgerufen und du erhältst anschließend eine Ausgabe der vorhandenen Räume (Schlafzimmer, mit dem Raum-Key "bedroom") im JSON-Format, die etwa wie das folgende Beispiel aussehen sollte:
{"rooms":[{"name":"Schlafzimmer","location":"bedroom"}]}
Wenn du Fragen oder Probleme zu diesem Tutorial hast, kannst du mir gerne einen Kommentar hinterlassen.

Dieses Tutorial als Video

Über den Autor


Sascha

Hallo, ich bin Sascha, der Gründer von Smarthome Blogger.

Mit einer Leidenschaft für Technologie und einem Hintergrund als Software Engineer habe ich 2016 Smarthome Blogger gegründet. Mein Ziel war es schon immer, innovative Lösungen zu entdecken, die unser Leben einfacher und intelligenter gestalten können. In meinem beruflichen Leben arbeite ich täglich mit Software und Technik, aber auch in meiner Freizeit bin ich stets auf der Suche nach neuen technischen Spielereien und Möglichkeiten, mein Zuhause zu automatisieren und zu verbessern.

Auf Smarthome Blogger teile ich mein Wissen, meine Erfahrungen und meine Begeisterung für alles rund um das Thema Smarthome.



Dieser Beitrag hat dir gefallen?

Dann abonniere doch unseren Newsletter!