Hausautomatisierung / Datentausch zwischen 2 Server
Mark82
- html
Hallo,
zwecks Hausautomatisierung muss ich diverse Variable von einer Seite einlesen um den aktuellen Zustand anzeigen zu können und aber auch wieder andere Variable als Schaltbefehle senden können.
Webserver 1 – 192.168.178.39 - PC mit Xampp / Apache
Webserver 2 – 192.168.178.40 - AVR Net IO Board mit OpenMCP
Server 1 ist der Hauptserver, da der 2te zu langsam ist.
Server 1 benötigt also die Zustände und schickt dann Schaltbefehle.
Die Startseite ist wie folgt aufgebaut
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Haussteuerung</title>
</head>
<frameset rows="200,50,*" scrolling="no" frameborder="2" border="3" unselectable="on">
<frameset cols="*,100" scrolling="no" frameborder="2" border="3" unselectable="on">
<frame src="Info.html" name="Info123" scrolling="no" >
<frame src="http://192.168.178.40/foo.html" name="Steuerung" scrolling="no">
</frameset>
<frame src="Navi.html" name="Navigation2" scrolling="no">
<frame src="Main.html" name="Main" scrolling="yes">
<body>
<p>Ihr Browser unterstützt keine Frames!</p>
</body>
</noframes>
</frameset>
</html>
http://192.168.178.40/foo.html sieht wie folgt aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Steuerung</title>
</head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript">
var aktiv = window.setInterval("status_senden()", 1000);
var b = 0;
function status_senden()
{
document.statusform_senden.submit();
window.clearInterval(aktiv);
}
</script>
<form name="statusform_senden"; action="/Info.html"; method="get"; target="Info123";>
<input name="DI[0]"value="1"type="hidden">
<input name="DI[1]"value="0"type="hidden">
<input name="DI[2]"value="1"type="hidden">
<input name="DI[3]"value="0"type="hidden">
</input>
</form>
</script>
<BODY>
</BODY></HTML>
Zu Testzwecken soll die foo.html nach 1s einmalig aufgerufen werden und die vordefinierten Variablen DI 1-3 an Info.html übergeben. Dies funktioniert auch, jedoch wird immer ein seperates Fenster geöffnet und nicht an das Fenster im bestehenden Frameset gesendet.
In der Info.html lese ich den String dann wieder aus und speicher die einzelnen Werte in Variablen um mit diesen den Status anzeigen zu können.
Evt. geht es ja auch viel einfacher und man kann in der foo.html Javascript-variable erstellen und die direkt anders auslesen? Habe es aber leider nicht hin bekommen.
Wenn ich die foo.html auch auf den Server 1 packe, funktioniert das ganze.
Habe dazu evtl. was bei Google gefunden -> Access-Control-Allow-Origin
..komme aber einfach nicht weiter.
Vielleicht hat ja hier Einer einen Tipp für mich
Gruß Mark
Hallo nochmal,
könnte man evt die http://192.168.178.40/foo.html per mod_rewrite umleiten?
Gruß Mark
Für was sind die ; hinter den Angaben in <form>?
Vielleicht liegts ja daran. Ich habs allerdings nicht so ganz kapiert, irgendwie hat mich die Beschreibung mehr verwirrt.
Aus Erfahrung kann ich dir sagen, eine externe Steterung per Webseite des AVR-NET-IO ist immer problematisch.
Ich kenne zwar OpenMCP nicht (arbeite mit einer angepassten Version von Ethersex bzw. teilweise mit der originalen Firmware) und steuere das Ganze per Telnet über eine Socketverbindung.
Dass dein HTML-Code hunderte Fehler enthält, dürfte aber dein Hauptproblem sein.
Mein Tip: Überarbeite dein Konzept, denn da stimmt was nicht ;)