Hallo liebe IPSler,
ich möchte mir eine Seite erstellen in der ich eine Boolean Variable schalten möchte. Dies „Anwesenheits“ Variable triggert ein Script.
<!--
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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>
<style type="text/css">
html, body { margin: 0; padding: 0; }
</style>
</head><body>
<?php
if(isset($_GET['action']) && $_GET['action'] == "toggleFS20" && isset($_GET['id']))
{
FS20_SwitchMode((int)$_GET['id'], !GetValue(IPS_GetStatusVariableID((int)$_GET['id'], "StatusVariable")));
}
?>
<html><body>
<a href="?action=toggleFS20&id=39217">Anwesenheit <?php echo (!GetValue(IPS_GetStatusVariableID(39217, "StatusVariable"))) ? "anwesend" : "abwesend"; ?>!</a>
</body></html>
Leider funktioniert es natürlich nicht, da ich in PHP nicht der Profi bin und mir die Sachen meistens nur zusammen kopiere und versuche anzupassen.
Die Seite hänge ich als Anlage an.
Wäre super wenn mir einen den oder die Fehler sagen könnte.
Grüße Mirco
sysrun
10. Juni 2009 um 18:07
2
Das HTML-Markup war erstmal falsch.
Habe das mal korrigiert.
<!--
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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>
<style type="text/css">
html, body { margin: 0; padding: 0; }
</style>
</head>
<body>
<?php
if(isset($_GET['action']) && $_GET['action'] == "toggleFS20" && isset($_GET['id']))
{
FS20_SwitchMode((int)$_GET['id'], !GetValue(IPS_GetStatusVariableID((int)$_GET['id'], "StatusVariable")));
}
?>
</body>
</html>
Hallo sysrun,
danke für korrigieren. Darunter kommt doch dann
?>
<html><body>
<a href="?action=toggleFS20&id=39217">Anwesenheit <?php echo (!GetValue(IPS_GetStatusVariableID(39217, "StatusVariable"))) ? "anwesend" : "abwesend"; ?>!</a>
</body></html>
oder?
So habe ich es gerade versucht. Ohne Erfolg. Liegt es an der Custom.php?
<script type="text/javascript">
var WebFrontConfigVersion = 2.1;
dojo.registerModulePath("webfront", "../../webfront");
dojo.require("webfront.Main");
dojo.require("webfront.applications.basic.Basic");
dojo.require("webfront.widgets.clock.BasicView");
dojo.require("webfront.modules.ips.BasicView");
dojo.require("webfront.modules.dwd.BasicView");
dojo.require("webfront.modules.iview.Presenter");
dojo.require("webfront.modules.iview.BasicView");
new webfront.Main("webfront");
webfront.controller.setApplication(new webfront.applications.basic.Basic("basic", "WebFront"));
var ipsCommunicationHandler = new webfront.modules.ips.CommunicationHandler("data/data.php");
var clockWidgetPresenter = new webfront.widgets.clock.Presenter();
clockWidgetPresenter.registerView(new webfront.widgets.clock.BasicView());
webfront.controller.getApplication().addBarTopWidget(clockWidgetPresenter.getView());
var ipsPresenter = new webfront.modules.ips.Presenter(ipsCommunicationHandler);
ipsPresenter.registerView(new webfront.modules.ips.BasicView("ips", "IP-Symcon", "IPS"));
webfront.controller.getApplication().addPage(ipsPresenter.getView());
var dwdPresenter = new webfront.modules.dwd.Presenter("data/dwd.php");
dwdPresenter.registerView(new webfront.modules.dwd.BasicView("dwd", "Wetter", "Cloud"));
webfront.controller.getApplication().addPage(dwdPresenter.getView());
var videoueberwachungPresenter = new webfront.modules.iview.Presenter("user/videoueberwachung.php", 30000);
videoueberwachungPresenter.registerView(new webfront.modules.iview.BasicView("videoueberwachung", "Video-Ueberwachung", "Camera"));
webfront.controller.getApplication().addPage(videoueberwachungPresenter.getView());
var sicherheitPresenter = new webfront.modules.iview.Presenter("user/sicherheit.php", 30000);
sicherheitPresenter.registerView(new webfront.modules.iview.BasicView("sicherheit", "Sicherheit", "IPS"));
webfront.controller.getApplication().addPage(sicherheitPresenter.getView());
</script>
sysrun
10. Juni 2009 um 20:44
4
Mit dem Original Webfront kenn ich mich leider nicht aus
RWN
10. Juni 2009 um 21:16
5
<script type="text/javascript">
var WebFrontConfigVersion = 2.1;
dojo.registerModulePath("webfront", "../../webfront");
dojo.require("webfront.Main");
dojo.require("webfront.applications.basic.Basic");
dojo.require("webfront.widgets.clock.BasicView");
dojo.require("webfront.modules.ips.BasicView");
dojo.require("webfront.modules.dwd.BasicView");
dojo.require("webfront.modules.iview.BasicView");
new webfront.Main("webfront");
webfront.controller.setApplication(new webfront.applications.basic.Basic("basic", "WebFront"));
var ipsCommunicationHandler = new webfront.modules.ips.CommunicationHandler("data/data.php");
var clockWidgetPresenter = new webfront.widgets.clock.Presenter();
clockWidgetPresenter.registerView(new webfront.widgets.clock.BasicView());
webfront.controller.getApplication().addBarTopWidget(clockWidgetPresenter.getView());
var ipsPresenter = new webfront.modules.ips.Presenter(ipsCommunicationHandler);
ipsPresenter.registerView(new webfront.modules.ips.BasicView("ips", "IP-Symcon", "IPS"));
webfront.controller.getApplication().addPage(ipsPresenter.getView());
var dwdPresenter = new webfront.modules.dwd.Presenter("data/dwd.php");
dwdPresenter.registerView(new webfront.modules.dwd.BasicView("dwd", "Wetter", "Cloud"));
webfront.controller.getApplication().addPage(dwdPresenter.getView());
var videoueberwachungPresenter = new webfront.modules.iview.Presenter("user/videoueberwachung.php", 30000);
videoueberwachungPresenter.registerView(new webfront.modules.iview.BasicView("videoueberwachung", "Video-Ueberwachung", "Camera"));
webfront.controller.getApplication().addPage(videoueberwachungPresenter.getView());
var sicherheitPresenter = new webfront.modules.iview.Presenter("user/sicherheit.php", 30000);
sicherheitPresenter.registerView(new webfront.modules.iview.BasicView("sicherheit", "Sicherheit", "IPS"));
webfront.controller.getApplication().addPage(sicherheitPresenter.getView());
</script>
Horst
11. Juni 2009 um 02:51
7
Wenn ich mir da Deinen Screenshot ansehe würde ich noch am ehesten sagen, dass Du Dich beim Dateinamen vertippt hast. Die Konfiguration liefert ja schließlich ein iframe mit nicht gefundener Seite (Code 404).
RWN
11. Juni 2009 um 09:13
8
Hallo Mirco,
zum anzeigen ist auf der Seite auch nichts vorhanden. Du hast ja nur einen Aufruf definiert.
<div class="standardContainer">standardContainer</div>
<a href="?action=toggleFS20&id=39217">Anwesenheit <?php echo (!GetValue(IPS_GetStatusVariableID(39217, "StatusVariable"))) ? "anwesend" : "abwesend"; ?>!>Link</a><br /><br />
Text<br /><br />
Morgen Rainer,
verrätst du mir auch wie es aussehen müsste damit ich was sehe?
Grüße Mirco
RWN
11. Juni 2009 um 10:16
10
Hallo Mirco,
eigentlich mit dem Code von meinem letzen Beitrag.
Deine Seite heisst aber auch sicherheit.php?
Hallo Rainer. Ja die Seite heißt sicherheit.php. Nur um sicher zu gehen, da es leider immer noch nicht geht, das ganze sollte so
<!--
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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>
<style type="text/css">
html, body { margin: 0; padding: 0; }
</style>
</head>
<body>
<?php
if(isset($_GET['action']) && $_GET['action'] == "toggleFS20" && isset($_GET['id']))
{
FS20_SwitchMode((int)$_GET['id'], !GetValue(IPS_GetStatusVariableID((int)$_GET['id'], "StatusVariable")));
}
?>
</body>
</html>
<div class="standardContainer">standardContainer</div>
<a href="?action=toggleFS20&id=39217">Anwesenheit <?php echo (!GetValue(IPS_GetStatusVariableID(39217, "StatusVariable"))) ? "anwesend" : "abwesend"; ?>!>Link</a><br /><br />
Text<br /><br />
</body></html>
zu guter letzt aussehen oder ?
verregnete Grüße
Mirco
RWN
11. Juni 2009 um 14:40
12
Hallo Mirco,
setzte mal dieses ein und schau mal ob Du dann was siehst.
Ansonsten hast Du oben body und html doppelt drinnen.
?>
</body>
</html>
<!--
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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>
<div class="standardContainer">standardContainer</div>
<a href="about:blank">Link</a><br /><br />
Text<br /><br />
</body></html>
Horst
11. Juni 2009 um 15:12
13
Mal als Zwischenstand: Kommt bei Dir noch das „Seite nicht gefunden“ ?
Horst
11. Juni 2009 um 19:48
15
Dann brauchst Du Dich um die sicherheit.php noch gar nicht zu kümmern. Solange die nicht gefunden wird ist der Inhalt darin auch egal. Datei ist auch wirklich unter \IP-Symcon\webfront\user\sicherheit.php zu finden? Ist die Seite unter http://SERVER:82/user/sicherheit.php zu erreichen?
Hallo Horst.
Das war der Fehler. Nachdem ich das Script in den Ordner „User“ geschoben habe bekomme ich das Bild im Anhang. Zwar noch nicht so wie ich es gerne hätte aber schon mal ein Schritt in die richtige Richtung. Wenn wir es jetzt noch so wie auf der IPS Seite mit dem Button auf der rechten Seite hinbekommen ist es perfekt.
Mirco
RWN
12. Juni 2009 um 15:06
17
Hallo Mirco,
wie meinst Du. Sag wie und was Du willst und ich mach es dir zusammen.
Etwas so.
RWN
12. Juni 2009 um 21:50
19
Hallo Mirco,
bitte schön.
Hier musst Du die Status ID deiner Steckdose im Script eintragen.
<?php if(GetValue(21167)==0)
Die CSS Datei bitte nach webfront/user kopieren.
Wenn Du alles richtig gemacht hast, schaltet die Steckdose bei rot Abwesend und grün Anwesend(Steckdose aus).
<!--
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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 "webintern.css";</style>
<style type="text/css">
html, body { margin: 0; padding: 0; }
</style>
</head><body>
<?php
if(isset($_GET['action']) && $_GET['action'] == "toggleFS20" && isset($_GET['id']))
{
FS20_SwitchMode((int)$_GET['id'], !GetValue(IPS_GetStatusVariableID((int)$_GET['id'], "StatusVariable")));
}
?>
<div class="variablesContainer" style="height: auto;">
<div class="variableContainer" style="background: transparent url(img/icons/png/Power.png) no-repeat scroll 10px 4px;">
<div class="deviceTitle">
<div class="deviceTitleContent">Anwesenheit</div>
</div>
<div class="deviceState"><a href="?action=toggleFS20&id=39217"><?php if(GetValue(21167)==0)echo "<div class='SwitchBasic SwitchBasicOn'> <div class='deviceStateContent'>Anwesend</div>"; else echo "<div class='SwitchBasic SwitchBasicOff'> <div class='deviceStateContent'>Abwesend</div>";?></a></div></div></div>
</div>
</div>
</body></html>
Hallo Rainer,
vielen Dank. Sieht super aus. Kann ich jetzt im Script „sicherheit“ mit Hilfe von
?>
<div class="variablesContainer" style="height: auto;">
<div class="variableContainer" style="background: transparent url(img/icons/png/Power.png) no-repeat scroll 10px 4px;">
<div class="deviceTitle">
<div class="deviceTitleContent">Anwesenheit</div>
</div>
<div class="deviceState"><a href="?action=toggleFS20&id=39217"><?php if(GetValue(21167)==0)echo "<div class='SwitchBasic SwitchBasicOn'> <div class='deviceStateContent'>Anwesend</div>"; else echo "<div class='SwitchBasic SwitchBasicOff'> <div class='deviceStateContent'>Abwesend</div>";?></a></div>
</div>
</div>
das ganze für belibig viele Geräte erweitern. Natürlich nur soviel das Display hergibt ohne das meine Frau gleich schreit.
Mirco