Eigene Seite im Webfront (nicht noch ein Thread...)

Ja, ich wage es: Noch ein Thread mit der Bitte um Hilfe bei Erstellung einer eigenen Seite im Webfront. Ja, ich habe den oft zitierten „Allgemeiner Diskussionsthread…“ versucht zu lesen und bin immer wieder da hineingefallen. Aber sind wir mal ehrlich, als Quereinsteiger einfach zu unübersichtlich. Ich möchte hier den Versuch starten eine Verständliche Bauanleitung für Anfangende IPSler zu schaffen, die eine eigene Seite ins Webfront bringen wollen. Ich kann das nicht, aber zusammen schaffen wir das doch oder :wink:

Also wie weit bin ich gekommen, bzw. wie fängt man an:
Webfront läuft, das kriegt jeder hin :slight_smile:
Im eigenen Webfront-Konfigurator eine eigene Seite angelegt mit Ziel auf eigeneseite.php und diese im Webfront Ordner im IPS Verzeichnis auch angelegt. So weit so gut, aber jetzt gehts los.

mit

<div class="deviceTitleContent">Dimmer 1</div>

		</div>

		<div class="deviceStateExtended">

			<div class="variableDisplay">

				<div class="deviceStateContent"><? echo number_format(GetValue(46348), 2, ',', '.');?></div>

			</div>

bekomme ich auch schon den Status eines meiner Homematic Dimmer. (Der Code stammt von werner, er hat damit seine PV Module visualisiert. Auch hier kann ich noch so einiges nachvollziehen. Aber wie kann ich jetzt damit anstatt einen FS20 Aktor einen Homematic Aktor/Dimmer schalten oder per IPS_runscript Befehl ein Skript starten? Vielleicht stell ich mich auch grad einfach nur an, aber je mehr ich rumprobiere desto verwirrter bin ich. Meine mageren PHP Kenntnisse helfen auch nicht. Ich wäre euch sehr dankbar wenn man versuchen könnte die Antworten so verständlich wie möglich zu gestalten, aber ich bin da zuversichtlich. Noch hat der Forum hier fast jede Frage beantwortet bekommen :wink:

Danke,
Pollibus

PS: Die Fragen zur Einbindung der CSS Files kommen dann später, da versuche ich mich noch dran… :slight_smile:

Wenn Du nur eine Seite mit bereits vorhandenen Variablen und Objekten füllen möchtest, solltest Du im WebFront Konfigurator einfach ein neues Modul vom Typ IP-Symcon Kategorie erstellen. Da kannst Du dann bei der Option Root eine Kategorie auswählen, deren Inhalt Du anzeigen möchtest. Die Objekte bekommst Du dort über Links rein.

Wenn Du eine wirklich eigene Ansicht haben willst, solltest Du erst mal HTML lernen. Dazu empfehle ich SELFHTML 8.1.2 (HTML-Dateien selbst erstellen). Wenn Du dann Inhalte von PHP aus dort drin haben willst, musst Du nur <?php echo „bla“; ?> schreiben, und schon ist er da. Zum Thema Skript ausführen: http://www.ip-symcon.de/forum/f56/script-starten-6990/#post57486. Schalten geht genau so, Du musst nur den Befehl anpassen.

Das:

<?php
    if(isset($_GET["action"]) && $_GET["action"] == "executeScript" && isset($_GET["id"]) && IPS_ScriptExists((int)$_GET["id"]))
    {
        $scriptResult = IPS_RunScriptWait((int)$_GET["id"]);
        if($scriptResult != "")
        {
            echo $scriptResult."<br />";
        }
    }
?>
<a href="<?php echo basename(__FILE__); ?>?action=executeScript&id=17106">ausführen</a>

klingt vielversprechend! Ich will damit übrigens mein IRTRans steuern. Bin jetzt leider in der Arbeit und werde das wohl auch erst heute Abend ausprobieren. HTML ist für mich ja noch einigermaßen verständlich, PHP ist mir dann aber schon zu hoch. Gehe ich recht in der Annahme, dass ein Skript zum schalten eines Homematic Aktors so aussehen muss (nicht getestet):

<?php
    if(isset($_GET["action"]) && $_GET["action"] == "HMschalteID" && isset($_GET["id"]) && IPS_InstanceExists((int)$_GET["id"]))
    {
        $scriptResult = HM_writevalueboolean((int)$_GET["id"], true);
        if($scriptResult != "")
        {
            echo $scriptResult."<br />";
        }
    }
?>
<a href="<?php echo basename(__FILE__); ?>?action=HMschalteID&id=17106">schalten</a>

Kann man das IPS_scriptexists einfach gegen IPS_InstanceExists tauschen? Stimmt das so?
Danke schonmal!

Wenn das die richtige HM-Funktion ist, sieht das gut aus. Das mit dem exists ist korrekt. Du brauchst es aber nicht unbedingt drin haben. Ohne exists bekommst Du dann halt die Fehlermeldung, dass Du eine nicht existierende Instanz schalten wolltest, so passiert einfach gar nichts.