Spezielle Fragen von einem Anfänger

Hi. Habe mir IP Symcon gekauft weil ich wirklich von den Screenshots von Euch allen überzeugt bin.

Allerdings komme ich mit den Programmkonzepten noch nicht ganz klar. Ich nutze ausschließlich Homematickomponenten und habe diese bereits angelernt. Auch kleine Scripte hab ich schon geschrieben (Licht an/aus dimmen usw.).

Beruflich programmiere ich viel mit Delphi und auch das Dashboard ist ja daran ziemlich angelehnt. Homepages hab ich auch schon bearbeitet.
Mit PHP hab ich leider noch nichts zu tun gehabt, wobei man, wenn man eine Programmiersprache kann, diese auch bestimmt noch lernen kann.

Ich habe schon viel im Forum hier gesucht, aber folgende Fragen stellen sich mir noch.

Zu meinen Fragen:

  • Wie stellt Ihr denn Eure Visualisierung da? Über Dashboard, Webfront, oder eine eigene PHP-Page? Wenn ja, warum?
  • Kann ich mit dem Dashboard mehrere Frames darstellen (Frame oben, Frame mitte, Frame unten) um zum Beispiel immer nur die mittlere Frame beim klicken auf einen Button in der oberen Frame zu wechseln?
  • Gibts denn irgendwo ein richtiges Handbuch (mehr als das hier auf der IP-Symcon Homepage) wo mal alles ganz ausführlich beschrieben ist?
  • Warum kann ich bei den Homematic Thermostaten nur die Solltemperatur (Setpoint) auslesen? Ich bräuchte mal die Isttemperatur.
  • Kann man eine mit dem Dashboard erstellte Seite in der mittleren Frame vom Webfront anzeigen? Wenn ja wie?

moin…

Also ich stelle meine Visualisierung inzwischen, via webfront, aber eigenen PHP scripten dar, wird warscheinlich aber bald komplett als eigenständiges PHP umgesetzt.
Im dashboard ist es meiner meinung nach zu umständlich, eigene Daten flexibel auszugeben. z.B. lese ich mir via RSS mehrere Newsseiten aus und um diese dann als link zu visualisieren, muss ich doch recht viel handarbeit anlegen, wobei ichs bei PHP einfach mit na for - schleife umsetzen kann.
Ausserdem lässt sich das Dashboard ja leider auch nicht auf meinem PDA ausführen, aber ne Webseite schon…

Frames (Jein), du kannst mittels den PageControll boxen, indem du die register einfach überlagerst… und über EXECButtons/Images dann die einzelnen Register ansteuerst…

Viel steht hier im Forum, überall ein bisserl… ^^ sonst wüste ich nichts…

Kenne mich mit Homeatic nun leider gar nicht aus…

Zur der im Dsahboard erstellten seite, meine, das das „leider“ nicht geht… Aber warum auch? Dafür waere dann ja PHP und html da… ^^

Hier einmal eine Dashboard Seite von mir:

Und hier eine im Webfront (noch im aufbau)…

MFG
korny

Hi Korny,

das ist ja die reinste Augenweide mit der Du die Möglichkeiten des Webfront nutzt. HIER würden sich mit Sicherheit auch einige über solche Anregungen freuen, speziell wenn der Quellcode von Dir dabei wäre; der würde mich auch reizen.

mfg

BerndJ

Tjo, der ist im entefekt sehr komplex und auch aufgrund meiner „schlechten“ PHP kenntnisse ^^ recht unsauber…
Und da ich sehr wenige kommentare in den Quelltexten setze, wird das auch sehr umständlich…
Ausserdem gefällt mir die Kombination mit dem Webfront irgentwie gar nicht…
Daher werd ich wohl die Tage das ganze als eigenständige seite umsetzen…

Zu meinem vorgehen mit dem jetztigem Webfront style:

  1. HTML Seite mit Frontpage erstellt, die Grundrissgrafik als Ebene erstellt und die einzelnen lampen ebenfalls(aber anstatt einer img src immer nur variablen gesetzt. z.B. für die flurlampe dann „$pic[0] $link[0]“.
    Dieses ist hinterher wichtig, die zahl in den Klammern muss mit der countzahl von den instancen übereinstimmen!!!
    Die seite dann als wohnung.htm unter webfront/user/templates gespeichert.

  2. PHP datei erstellt (wohnung.php).
    Hier war vor allem wichtig, das ich die template funktion mit drinnen hab, damit ich nicht den ganzen code in die PHP packen musste.
    Das kann man allerdings auf 2 wegen machen, entweder man schreibt die funktion mit in die wohnung.php oder man schreibt eine extra php datei (z.B. funktion.php), im 2. Fall muss ich die funktion.php includen in die Wohnung.php.


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>

<meta http-equiv="Content-Type" content="text/html;">
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

<style type="text/css">@import "default.css";</style>

</head><body>
// JAvascript funktion für ein POPUP fenster (leider krieg ichs mit Layern nicht hin)
<script language="JavaScript" type="text/javascript">
function popup()
{
NF=window.open("caller.php","neu","width=300,height=300");
NF.focus; }
</script>

<?
include("function.php");

// Die instancen der Beleuchtung (der countwert beginnt bei 0 (instanceid für flur), 1 waere dann für die Esstisch leuchte)
$instancen1="11872,20438,39164,42729,54383,55098,27870,10268,58346,21603,49994";
// Bilder für den ein zustand
$instancen2=explode(",","flurlicht_an.gif,esszimmer_an.gif,kueche_an.gif,licht_an.gif,schlafzimmer_an.gif,licht_an.gif,vista_tv_on.png,licht_an.gif,licht_an.gif,ventilator_an.gif,verstaerker_an.gif");
// Bilder für den aus zustand
$instancen3=explode(",","flurlicht_aus.gif,esszimmer_aus.gif,kueche_aus.gif,licht_aus.gif,schlafzimmer_aus.gif,licht_aus.gif,vista_tv_off.png,licht_aus.gif,licht_aus.gif,ventilator_aus.gif,verstaerker_aus.gif");$instancen[id]=explode(",",$instancen1);

$instancen4=explode(",",'$flur,$esszimmer,$kueche,$logia,$schlafzimmer,$schlafzimmereck,$tv,$wohnzimmer,$tvlicht,$ventilator,$verstaerker');
for($i=0;$i<count($instancen[id]);$i++) {
$instancen[name][$i]=IPS_GetName(intval($instancen[id][$i]));
$instanceid=$instancen[id][$i];
$status=IPS_GetObjectIDByName("StatusVariable", intval($instancen[id][$i]));

// Bilder für den Status liegen bei mir im user verzeichniss unter images
if(GetValue($status)==1) {
$instancen6[$i] = "images/".$instancen2[$i];
} else {
$instancen6[$i] = "images/".$instancen3[$i];
}
$pic[$i]="<img border=\"0\" src=\"$instancen6[$i]\">";
$link[$i]="<a href=\"daten.php?action=popup&instance=$instanceid\" target=\"_blank\" onclick=\"return popup(this.href);\">";
}

eval ("\$str .= \"".gettemplate("templates/wohnung")."\";");
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=charset=iso-8859-1\">".$str;
?>
  1. dann noch die anpassung des Webfronts für eigene Seiten und fertisch…

So, hoffe konnte a bisserl helfen, bei fragen, am besten im Forum, damit es dann auch jedem klar wird ^^

Ich benutze das Dashboard, mehr oder minder aus „historischen“ Gründen. Man kann so etwas wie mit den „Frames“ die du genannt hast schon machen, allerdings ist etwas Trickserei vonnöten. Es gibt diese Tabcontrols, die mir allerdings für einen Touchscreen zu filigran sind (es lohnt, von Anfang an diese Möglichkeit offenzuhalten).

Ich habe es mit Panels gemacht (das ist einfach ein Containercontrol), die abhängig von bestimmten Variablen sichtbar oder unsichtbar sind.

Das Dashboard hat allerdings so seine Tücken, zum einen sind manche Dinge etwas umständlich zu lösen (z.B. kann man um Eigenschaften zu setzen, die ein Boolean erwarten, keine implizite Fallunterscheidung einbauen, obgleich das bei anderen Datentypen geht). Zum anderen läuft das Dashboard mitunter recht instabil und stürzt auch beim Entwickeln gern mal ab, nicht selten unter Mitnahme langwieriger Gestaltungsarbeit. Backups von den Forms kann man nicht oft genug abspeichern!

Ein Webinterface ist in meinen Augen ein schönes Zusatzfeature, allerdings ist es mir für den Touchscreen nicht „live“ genug. Man merkt halt immer dass man auf einer Webseite herumklickt und nicht auf der Bedienoberfläche eines Geräts. Ich habs bei mir über VNC gelöst, das ist eine Remote-Software (bei Interesse bitte googeln) die auch ein Webinterface anbietet. Ist leicht geschummelt und funktioniert leider nicht vom Telefon aus, aber mir reicht das erstmal.

Schonmal vielen Dank für die Infos von Euch.
Also ist es wohl das beste alles komplett selber mit PHP zu programmieren, oder?
Ich würde mir auf jeden Fall die Programmiersprache aneignen, denn ich bin jemand der grafisch auf jeden Fall alles so haben will wie ich es mir vorstelle und nicht wie es mir ein Programm vorgibt.

Nur stellen sich mir da schon wieder neue Fragen:

  • Wie funtioniert denn dann die Schnittstelle zu IP-Symcon? Wie kann ich denn dann z.B. einen Dimmer auf 50% setzen?
  • Brauche ich dann einen lokalen Webserver?

Hi,

dann verrat uns erstmal welchen Dimmer Du im Einsatz hast.
Im Falle von DMX schaust Du unter Module DMX und suchst Dir den entsprechenden Befehl raus, der wird in ein Script gepackt, und das rufst Du dann auf, oder es wird, z.B. durch einen Bewegungsmelder getriggert.
Das Script steht im Webfront automatisch zur Verfügung, auf eigenen Webfront Seiten hat RWN gerade Beispielcode veröffentlicht.

Den bringt IPS mit. Kannst auch eigene zusätzlich einrichten (auf unterschiedliche Portnummern achten).

mfg

BerndJ

Achso. Also das Aufrufen mit „localhost“ ist im Prinzip mein Webserver. Ich arbeite komplett mit Homematic Aktoren und Sensoren.
Wie programmiert man denn eine PHP Oberfläche grafisch? Oder besser gesagt mit was für einem Programm?
Kann ich mir das so vorstellen, das ich einen ganz normalen HTML Homepage Editor nehme (z.B. Frontpage) und davon die Buttons usw. verwende, die dann meine PHP Skripte aufrufen?

Hi,

ich mache auch alles mit PHP, HTML da ich meine Daten vom Haus immer und überall ansehen möchte ohne irgend ein Tool installieren zu müssen. Ausserdem weiss ich dann wie ich was gemacht habe und lernen tut man nebenbei auch noch ne Menge :wink:

Als Anregung hier meine Seiten: www.online-bhkw.de

Die Seiten sind immer noch im Aufbau (bin da seit 3 Jahren am Werkeln) und werden ständig erweitert, ist also ne Dauerbaustelle (Lebensaufgabe) :rolleyes:

Kurzzeitig hatte ich mich jetzt mal mit dem Designer befasst, um die installierten Touchscreens zu bedienen. Mittlerweile bin ich aber auch dort auf Web umgestiegen da in der V2 die Ressourcen knapp werden bei meinen Mini-PC.

Zum Editor, nimm lieber Notepad oder Notepad++ als diesen MS Schrott .

Grüße
Thomas

hmmm, mal kurz eine schnell geschriebene PHP^^ Seite, wie du es theoretisch machen könntest:

test.php als beispiel name!!!

<?PHP
$datum=date("d.M.Y");
$uhrzeit=date("h:i");


echo "<table border=\"1\" width=\"36%\">
	<tr>
		<td width=\"61\">Datum</td>
		<td>$datum</td>
	</tr>
	<tr>
		<td width=\"61\">Uhrzeit</td>
		<td>$uhrzeit</td>
	</tr>
</table>";
?>

oder so(test1.php als beispielname):

<table border="1" width="36%">
	<tr>
		<td width="61">Datum</td>
		<td><?PHP echo date("d.M.Y");?></td>
	</tr>
	<tr>
		<td width="61">Uhrzeit</td>
		<td><?PHP echo date("H:i");?></td>
	</tr>
</table>

oder als Template aufbau, welches ich wegen der einfacheren arbeit beforzuge, folgendermassen:

  1. ein "unterverzeichnis erstellen (templates), dort werden die htm dateien (templates) gespeichert,
  2. eine index1.htm erstellen oder halt anders benannt, wo der Hauptaufbau drin ist, muss man aber nicht, allerdings ist es angenehmer, da viele sachen ja warscheinlich gleich bleiben sollen (header / navigation).
  3. eine PHP datei erstellen, in der dann auch die funktion für die templates drinsteht, wie in meinem vorherigem post schon geschrieben, entweder als eigenständige datei oder in die „index.php“ mit rein!

Hier gerade noch miene funktion.php:

<?PHP
function gettemplate($template,$endung="htm")
{
return str_replace("\"","\\\"",implode("",file($template.".".$endung)));
}
function dooutput($template) {
echo $template;
}
?>

in der index.php kommen dann die teile, für die hauptseite rein, wie z.B. die aus meiner wohnung.php …

allerdings muss dort dann unter die eval funktion noch die :

eval ("dooutput(\"".gettemplate("index1")."\");");

Wobei die index1 bei mir im hauptverzeichniss liegen würde (ist nur für den eigenständigen aufbau, autak vom webfront…
und die echo ausgabe in der wohnung.php würde auch wegfallen.
für die ausgabe der wohnung.htm aus dem template verzeichniss, muss dann in der index1.htm die variable $str irgentwo stehen, da dort die ausgabe der wohnung.htm erfolgt.

Hoffe, konnte das jetzt halbwegs verständlich rüberbringen…
Bin ja selber noch ein kleines Licht am PHP himmel ^^ Obwohl ich schon vor 3 Jahren nen ziemlich umfangreichen War Planer geschrieben habe… ^^

Auch ist es möglich, mit ein paar tricks, die ausgabe auf eine externe internet präsenz zu bringen, hierzu muss man sich mal meine HP anschauen ^^
Werbung werd ich jetzt nicht machen, wer clever ist, wird nen weg finden ^^

Ach ja, editor nehme ich halt für die html seiten meistens frontpage, da es relativ einfach ist ^^ und Speededitor vom Speedcommander als editor, da mir notepad nicht gefällt… ^^

Hallo,

ich hab mir das alles mal so angesehen, und denke für mich ist eine Webserver Oberfläche am besten geeignet.
Wenn ich jetzt aber eine Webseite erstelle, z.B. auf dem IPS eigenen Server unter der root /web, wie kann ich von dort über einen link ein Script starten/ausführen oder auch die andere Richtung, wie hole ich mir eine Variable in die HTML Seite?

Schöne Grüße
Thomas