RPCMobile Client auf Basis von Html5

Vorweg ein Dankeschön an Sascha und an Paresy , dessen JSON-RPC Schnittstelle und deren Erweiterung als Basis für mein Projekt dient. (http://www.ip-symcon.de/forum/f13/ip...tstelle-10537/) . Ich stelle hier nun mein Projekt Mobileclient auf Basis von Html5 (jquerymobile,Javascript und CSS3) vor. Ich weise darauf hin, dass sich das Projekt noch im Alphastadium befindet.

Was kann das Projekt?
Es kann aus einem vorhanden Generator euren Ips-Baum rekursiv auslesen und anhand der gewonnenen Informationen einen intelligenten Client generieren. Dieser Client basiert auf Html5 und Javascript in Verbindung mit der JSON-RPC Schnittstelle. Der Vorteil des Clients liegt darin, dass man ihn in jedem Html5 fähigen Browser laufen lassen kann. (Safari,Chrome,Firefox,ect.).
Das heißt man kann den Client auf jedes Endgerät benutzen, das Html5 im Browser unterstützt.
In diesem Stadium des Projekts gibt es nur den Aufruf per Browser (Apps für Android und IOS folgen später).

Was unterstützt der Client?

  • Er zeigt alle Variablen (Boolean,Integer,Float und String) zur Anzeige von z.B. Temperaturen an. Dies geschieht per Polling oder per Refreshbutton

[ul]
[li]Schalter werden als Slider dargestellt
[/li][/ul]

[ul]
[li]Temperaturauswahlen werden als Schiebeslider dargestellt
[/li][/ul]

[ul]
[li]Scripte können gestartet werden
[/li][/ul]

[ul]
[li]Graphen werden angezeigt(zur Zeit nur für die stündliche Anzeige)
[/li][/ul]

[ul]
[li]Zur Zeit werden Homematic und FS20 Instanzen unterstützt
[/li][li]
[/li][/ul]

Was soll die Zukunft noch bringen?

[ul]
[li]Apps für Android und vielleicht für IOS (wg. 99 Dollar Gebühr)
[/li][/ul]

[ul]
[li]Graphen erweitern auf täglich,monatlich und jährlich
[/li][/ul]

[ul]
[li]Design per Auswahlliste ändern
[/li][/ul]

[ul]
[li]weitere Instanzen hinzufügen
[/li][/ul]

[ul]
[li]Timeranzeige für Scripte (z.B. Wecker)
[/li][/ul]

Kurzanleitung:
Die angehängte Zip-Datei im Hauptverzeichnis von IP-Symcon entpacken. Es werden 2 Ordner angelegt.

[ul]
[li]generator (Beinhaltet alle Klassen zur Generierung)
[/li][li]rpc ( Beinhaltet alle Dateien zum Client)
[/li][/ul]

[ul]
[li]neuen Script im Baum erstellen und den hier aufgeführten PHPScript kopieren
[/li][li]Wichtig!! Euren Server und $Quelle im Script anpassen z.B. http://192.168.0.45 oder https://localhost
[/li][li]dann diesen Script ausführen, wenn alles klappt sollte Fertig erscheinen und die Dateien sind im Verzeichnis rpc angelegt
[/li][li]Neuen WebServer erstellen (Instanz erstellen -> Haken bei „Alle Module zeigen“ -> (Kern) -> WebServer)
[/li][li]Dem WebServer einen Port vergeben und dessen Root auf rpc setzen.
[/li][li]Sobald der Server aktiv ist, per WebBrowser auf http://EurenServer:port/ gehen und schon sollte der Client laufen.
[/li][/ul]

<?
$pfad = IPS_GetKernelDir()."generator";
set_include_path($pfad);
include'Page.php';
$Quelle = ; // Object-Id für den Start im Baum angeben z.B.10987
htmlSeiteBauen();
function htmlSeiteBauen(){
	global $Quelle;
	$Server ="''";// Hier bitte den Server mit Port eintragen z.B. http://192.168.0.8:85 oder z.B https://server.ath.cx:85
	$Html = "";
	$Ips = "";
	$Page = new Page();
	$Page->setQuelle($Quelle);
	$ObjektListe=$Page->baumAuslesen();
	$Start = $ObjektListe->get($Quelle);
	$Startname=$Start->getName().$Start->getId();
	$Html.=$Page->toHeadHtml($Server);
	$Html.=$Page->toHauptmenueHtml($Start);
	$Html.=$Page->toKategorieHtml($Start);
	$Html.=$Page->toEinstellungsseite();
	$Html.=$Page->toHeadJavaScript();
	$Html.=$Page->toHauptmenueJavaScriptVar($Start);
	$Html.=$Page->toJavaScriptVar($Start);
	$Html.=$Page->tolocalStorage();
	$Html.=$Page->toHauptmenueJavaScriptRefresh($Start);
	$Html.=$Page->toJavaScriptRefresh($Start,$Startname);
	$Html.=$Page->toIpsSwitchAufruf($Start);
	$Html.=$Page->toSwitchBooleanFunktion($Start);
	$Html.=$Page->toGraphAufruf($Start);
	$Html.=$Page->toHtmlScriptStarten($Start);
	$Html.=$Page->toSliderAufruf($Start);
	$Html.=$Page->toGraphScriptAufruf();
	$Html.=$Page->toFoodJavaScript();
	$Html.=$Page->toFoodHtml();
	utf8_encode($Html);
	$myFile = IPS_GetKernelDir()."rpc\index.html";
	$fh = fopen($myFile, 'w')or die("can't open file");
	fwrite($fh, $Html);
	fclose($fh);
	$Ips.=$Page->toIpsStart();
	$Ips.=$Page->toHauptmenueIpsGetFunktion($Start);
	$Ips.=$Page->toHauptmenueIpsSetFunktion($Start);
	$Ips.=$Page->toIpsGetFunktion($Start);
	$Ips.=$Page->toIpsSetFunktion($Start);
	$Ips.=$Page->toIpsSwitchFunktion($Start);
	$Ips.=$Page->toIpsSwitchBoolean($Start);
	$Ips.=$Page->toIpsScriptStarten($Start);
	utf8_encode($Ips);
	$myFile = IPS_GetKernelDir()."rpc\jquery-mobile\ips.js";
	$fh = fopen($myFile, 'w')or die("can't open file");
	fwrite($fh, $Ips);
	fclose($fh);
	echo "Fertig";
}
?>

Viel Spaß und Rückmeldungen sind erwünscht.
PS: Wer Lust hat kann auch an diesem Projekt mitarbeiten

RPCMobile.zip (387 KB)

Beitrag sollte verschoben werden in Anleitungen in nützliche php Skripte .

Hier findet der Super Beitrag glaube ich zu wenig Beachtung .

Da merkt man doch den Profi mit dem Händchen fürs Detail. Das sieht toll aus. Ganz großes Kino.
Ich werde es gleich mal testen und freu mich schon.

Vielen Dank.

Hallo,
danke für den Hinweis und die Verschiebung.
Könnstet Ihr mir ein Feedback geben, ob alles bei Euch geklappt hat und die Anwendung lauffähig ist.
Wie geschrieben ist das Projekt noch im Alphastatus und Feedback ist wichtig für mich, um Fehler, die ich bei meinem Ips-Baum nicht feststellen konnte zu beheben. Ich weiß nur, dass es mit meiner konfigurierten Haussteuerung läuft.
Weiß aber nicht ob bei Euch alles richtig dargestellt wird. Deshalb bin ich für ein kurzes Feedback sehr dankbar.
LG,
Dirk Kruck

Hallo, ich habe auch mal den RPCMobil Client getestet. Das könnte für die Zukunft schon was werden, der Anfang ist gemacht.

Da ich aber fast nur KNX Instanzen habe, kann ich leider nichts schalten. Was ich auf jedenfall auch noch bräuchte, sind Verknüpfungen, diese werden wohl nicht erkannt, aber um unterschiedliche Frontends zu bauen, braucht man das glaube ich auf jedenfall.

Ansonsten wollte ich noch mitteilen, das bei mir die Inhalte von den Variablen nicht angezeigt werden. Wenn ich wüßte wo ich anfangen sollte zu suchen, würde ich das gerne machen, aber ich hab halt keine Ahnung wie das ganze funktioniert. Ich kann da aber gerne helfen das Problem zu finden, wenn jemand sagt wo ich suchen soll…

Ansonsten werde ich das hier weiterverfolgen, bin gespannt was noch kommt. Vielen Dank

Hallo,
Die RPCMobile App für Eure Android Geräte ist jetzt in Google Play verfügbar!

get_it_on_play_logo_large.png Sucht bitte nach RPCMobile

Viel Spaß damit.

Ich bitte um Rückmeldungen(auch wenn etwas nicht funktioniert) und Bewertungen bei Google play.
Danke.

Xxxxxxxxxxxxxxxxxx

Hallo,

da ich bis heute so gut wie kein Feedback bekommen habe, ob die jetzige Version bei euch läuft oder auch nicht, werde ich die Weiterentwicklung meines Projektes nicht mehr öffentlich machen, da wohl wenig Interesse an diesem Projekt vorhanden ist. Trotzdem danke für die, die das Projekt heruntergeladen haben. Waren immerhin 30.

Liebe Grüße,
Winston

Würde fehlende Rückmeldungen nicht gleich als „wenig Interesse“ deuten. Vielleicht läuft es ja schon so gut, daß jeder einfach zufrieden ist. :eek:

Bei mir steht es jedenfalls noch auf der ToDo-Liste, komme aber momentan zeitlich einfach nicht dazu. :o

Gruß
Bruno

Geht mir ebenso. Einfach noch zu viele andere Baustellen, sonst hätte ich es schon längst getestet. Die Screenshots machen auf jeden Fall Lust auf mehr.
Michael

Gesendet von meinem GT-I5800 mit Tapatalk 2

Interessiert wäre ich auch, aber

habe ich nicht (mehr) im Einsatz.

Hi,

bei mir steht das auch noch auf der ToDo Liste.

Krankheitsbedingt und wegen Zeitmangel bin ich noch nicht dazu gekommen es zu installieren.

Also bitte weiterentwickeln und veröffentlichen!

Werde sicherlich nutzen. Der Screens die Du online gestellt hast, mache Lust auf mehr.

Gruß Andre

Gesendet von meinem GT-I9100 mit Tapatalk 2