Hallo,
mein Name ist Wolfram ich lese schon geraume Zeit hier mit, da ich das Projekt sehr interessant finde.
Ich habe im moment den Raspi mit Smarthome.pi, den Logitech Media Server am laufen. Der One wire bus lief auch schon.
Dafür schon mal großes lob, für die Arbeit!
Im moment scheiter ich leider dran meine Fritz Dect 200 Steckdosen einzubinden.
Es gibt ja noch nichts vorgefertigtes.
Erster Ansatz war: Die Steckdosen lassen siech über einen Http befehl schalten,
Also Button mit dem Befehl erstellt und ausgeführt, siehe da er schaltet, ABER er öffnet immer ein neues Fenster mit der Rückmeldung alo 1 oder 0 für an oder aus.
Ich bin allerdings kläglich dran gescheitert dieses Fenster zu unterdrücken.
Somit fällt die Lösung aus.
<input type="button" onclick="window.location.href = 'http://fritz.box/webservices/homeautoswitch.lua?ain=08761000XXXX&switchcmd=sets witchoff&sid=48bdc3ed1ce91XXX'" target="_blank" value="Fernsehen AUS" />
Ich habe ein PHP script in einem anderem Forum gefunden, das macht im Prinzip genau das was ich brauche, nämlich den zustand der Steckdosen auslesen und knöpfe zum aus und anschalten bereitstellen.
Jetzt hab ich leider 0,0 PHP Kenntnisse. Somit hab ich einfach versucht den Code in die Unterseite als Beispiel first.bath.html einzufügen. Den HTML code führt er aus, den PHP code nicht.
Dann hab ich mich ein bisschen eingelesen und da gesehen das er ja nur auf den normalen HTML seiten die direkt aufgerufen werdn Code ausführt.
In der Smartvisu macht er ja den aufruf nicht direkt sondern über index.php?page=first.bath.
Also geht das nicht so wie ichs mir erhofft hatte.
Hier mal der Code:
Nächster Ansatz war dann von mir, nach wieder 5h lesen, das ganze über ein Iframe zu machen.
Also iframe in einen Block von der Seite gepackt. Siehe da das PHP script wird ausgeführt und wird auch angezeigt.
Nachteil, er macht die Navigationsleiste links weg, und es übernimmt natürlich nicht das Design von der Smartvisu.
Hat vielleicht jemand eine Lösung wie ich das script eingebunden bekomme?
Oder hat jemand schon was gebastelt das man die Dosen richtig in smarthome.py einbinden kann?
Ich würde jetzt noch Wochen lang probieren bis es klappt, aber dann sucht sich meine Frau wahrscheinlich einen Anderen,
der nicht jeden Abend am Laptop sitzt und flucht. ;-)
Vielen Dank im Voraus
Gruß Wolfi
mein Name ist Wolfram ich lese schon geraume Zeit hier mit, da ich das Projekt sehr interessant finde.
Ich habe im moment den Raspi mit Smarthome.pi, den Logitech Media Server am laufen. Der One wire bus lief auch schon.
Dafür schon mal großes lob, für die Arbeit!
Im moment scheiter ich leider dran meine Fritz Dect 200 Steckdosen einzubinden.
Es gibt ja noch nichts vorgefertigtes.
Erster Ansatz war: Die Steckdosen lassen siech über einen Http befehl schalten,
Also Button mit dem Befehl erstellt und ausgeführt, siehe da er schaltet, ABER er öffnet immer ein neues Fenster mit der Rückmeldung alo 1 oder 0 für an oder aus.
Ich bin allerdings kläglich dran gescheitert dieses Fenster zu unterdrücken.
Somit fällt die Lösung aus.
<input type="button" onclick="window.location.href = 'http://fritz.box/webservices/homeautoswitch.lua?ain=08761000XXXX&switchcmd=sets witchoff&sid=48bdc3ed1ce91XXX'" target="_blank" value="Fernsehen AUS" />
Ich habe ein PHP script in einem anderem Forum gefunden, das macht im Prinzip genau das was ich brauche, nämlich den zustand der Steckdosen auslesen und knöpfe zum aus und anschalten bereitstellen.
Jetzt hab ich leider 0,0 PHP Kenntnisse. Somit hab ich einfach versucht den Code in die Unterseite als Beispiel first.bath.html einzufügen. Den HTML code führt er aus, den PHP code nicht.
Dann hab ich mich ein bisschen eingelesen und da gesehen das er ja nur auf den normalen HTML seiten die direkt aufgerufen werdn Code ausführt.
In der Smartvisu macht er ja den aufruf nicht direkt sondern über index.php?page=first.bath.
Also geht das nicht so wie ichs mir erhofft hatte.
Hier mal der Code:
Code:
<?php /** * Script zur Benutzung des Fritzbox SmartHome Interfaces * (c) 2013 robw (auf Basis eines Scripts v. C. Koch) */ //Die folgenden Zeilen MüSSEN an die lokalen Erfordernisse angepasst werden. define('USER',''); define('PASS',''); define('AIN1','08761000XXXX'); define('AIN2','08761000XXXX'); define('AIN3','0876100XXXXX'); define('AIN4','08761000XXXX'); define('AIN5','0876100XXXXX'); define('AIN6','0876100XXXXX'); /***************NO NEED TO CHANGE ANYTHING BENEATH THIS LINE**************************/ define('LOGINURL','http://192.168.0.1/login_sid.lua'); define('AHAURL','http://192.168.0.1/webservices/homeautoswitch.lua'); define('SID',GetSid(USER,PASS)); $ain = $_GET['ain']; $task = $_GET['task']; switch ($task) { case "off" : $rsp = file_get_contents(AHAURL."?ain=$ain&switchcmd=setswitchoff&sid=".SID); break; case "on" : $rsp = file_get_contents(AHAURL."?ain=$ain&switchcmd=setswitchon&sid=".SID); break; } function GetSid($user,$pass) { $doc = file_get_contents(LOGINURL); $xml = simplexml_load_string($doc); $sid = $xml->SID; if ($sid == "0000000000000000") { $chl = $xml->Challenge; $rsp = GetResponse($chl,PASS); $uri = LOGINURL."?username=".USER."&response=$rsp"; $doc = file_get_contents($uri); $xml = simplexml_load_string($doc); $sid = $xml->SID; } return $sid; } function GetResponse($chl,$pass) { return $chl."-".GetMD5Hash($chl."-".PASS); } function GetMD5Hash($s){ return md5(mb_convert_encoding($s,"UCS-2LE","UTF-8")); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> </head> <body> <div data-role="page" id="{{ page }}" class="base" data-theme="a"> <div data-role="header" data-position="fixed" data-tap-toggle="false"> <div class="ui-left"> </div> <div class="ui-right"> <div class="mini"> <span id="miniclock" class="miniclock" data-widget="clock.miniclock" data-repeat="1i">{{ now|date('H:i') }}</span>, {{ now|date('d.m,') }} v{{ config_version }}</div> </div> <div class="signal hide" onClick="$('.ui-page-active .alert').popup('open');"></div> <div class="alert" data-role="popup" data-overlay-theme="a"> <div data-role="header" data-theme="c"><h1></h1></div> <p></p> <div class="control"> <span class="stamp"></span> <a onClick="notify.remove();" class="ui-mini" data-icon="check" data-iconpos="top" data-role="button" data-inline="true">OK</a> <a onClick="$('.alert').popup('close');" class="ui-mini" class="ui-mini" data-icon="delete" data-iconpos="top" data-role="button" data-inline="true">Cancel</a> </div> </div> </div> <div data-role="content" class="page-bg"> <div class="primary" style="background-image: none;"> <table border="0" cellspacing="0" cellpadding="0" width="500px"> <tr><th colspan="7" align="center">Die Fritzbox - Netzsteckdosen</th></tr> <tr><td colspan="7"><hr noshade="noshade" size="1"></td></tr> <tr><td> </td><td align="center" class="blue">Aktor</td><td class="blue"> Schalter</td><td class="blue">AN</td><td class="blue"> | W</td><td class="blue"> | kWh</td></tr> <tr><td colspan="7"><hr noshade="noshade" size="1"></td></tr> <tr><td> <form method="get" name="s1"> <?php $strom = ''; $verbrauch = ''; $name = file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchname&sid='.SID); $status = file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchstate&sid='.SID); if ($status == 1) { $strom = file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchpower&sid='.SID)/1000; $verbrauch = file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchenergy&sid='.SID)/1000; } ?> <td align="right"><?php echo $name;?></td> <td> <input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN1;?>"> <select name="task" size="1" onchange="this.form.submit()"> <option>Switch ></option> <option value="on">On</option> <option value="off">Off</option> </select> </td> <td align="center" width="2%" nowrap><?php echo $status;?></td> <td width="5%" nowrap> | <?php echo $strom;?></td> <td width="10%" nowrap> | <?php echo $verbrauch;?></td> </form> </td><td width="10%"> </td></tr> <tr><td> <form method="get" name="s2"> <?php $strom = ''; $verbrauch = ''; $name = file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchname&sid='.SID); $status = file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchstate&sid='.SID); if ($status == 1) { $strom = file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchpower&sid='.SID)/1000; $verbrauch = file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchenergy&sid='.SID)/1000; } ?> <td align="right"><?php echo $name;?></td> <td> <input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN2;?>"> <select name="task" size="1" onchange="this.form.submit()"> <option>Switch ></option> <option value="on">On</option> <option value="off">Off</option> </select> </td> <td align="center" width="2%" nowrap><?php echo $status;?></td> <td width="5%" nowrap> | <?php echo $strom;?></td> <td width="10%" nowrap> | <?php echo $verbrauch;?></td> </form> </td><td width="10%"> </td></tr> <tr><td> <form method="get" name="s3"> <?php $strom = ''; $verbrauch = ''; $name = file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchname&sid='.SID); $status = file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchstate&sid='.SID); if ($status == 1) { $strom = file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchpower&sid='.SID)/1000; $verbrauch = file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchenergy&sid='.SID)/1000; } ?> <td align="right"><?php echo $name;?></td> <td> <input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN3;?>"> <select name="task" size="1" onchange="this.form.submit()"> <option>Switch ></option> <option value="on">On</option> <option value="off">Off</option> </select> </td> <td align="center" width="2%" nowrap><?php echo $status;?></td> <td width="5%" nowrap> | <?php echo $strom;?></td> <td width="10%" nowrap> | <?php echo $verbrauch;?></td> </form> </td><td width="10%"> </td></tr> <tr><td> <form method="get" name="s4"> <?php $strom = ''; $verbrauch = ''; $name = file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchname&sid='.SID); $status = file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchstate&sid='.SID); if ($status == 1) { $strom = file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchpower&sid='.SID)/1000; $verbrauch = file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchenergy&sid='.SID)/1000; } ?> <td align="right"><?php echo $name;?></td> <td> <input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN4;?>"> <select name="task" size="1" onchange="this.form.submit()"> <option>Switch ></option> <option value="on">On</option> <option value="off">Off</option> </select> </td> <td align="center" width="2%" nowrap><?php echo $status;?></td> <td width="5%" nowrap> | <?php echo $strom;?></td> <td width="10%" nowrap> | <?php echo $verbrauch;?></td> </form> </td><td width="10%"> </td></tr> <tr><td> <form method="get" name="s5"> <?php $strom = ''; $verbrauch = ''; $name = file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchname&sid='.SID); $status = file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchstate&sid='.SID); if ($status == 1) { $strom = file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchpower&sid='.SID)/1000; $verbrauch = file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchenergy&sid='.SID)/1000; } ?> <td align="right"><?php echo $name;?></td> <td> <input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN5;?>"> <select name="task" size="1" onchange="this.form.submit()"> <option>Switch ></option> <option value="on">On</option> <option value="off">Off</option> </select> </td> <td align="center" width="2%" nowrap><?php echo $status;?></td> <td width="5%" nowrap> | <?php echo $strom;?></td> <td width="10%" nowrap> | <?php echo $verbrauch;?></td> </form> </td><td width="10%"> </td></tr> <tr><td> <form method="get" name="s6"> <?php $strom = ''; $verbrauch = ''; $name = file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchname&sid='.SID); $status = file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchstate&sid='.SID); if ($status == 1) { $strom = file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchpower&sid='.SID)/1000; $verbrauch = file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchenergy&sid='.SID)/1000; } ?> <td align="right"><?php echo $name;?></td> <td> <input type="hidden" id="ain" name="ain" size="12" value="<?php echo $sid;?>"> <select name="task" size="1" onchange="this.form.submit()"> <option>Switch ></option> <option value="on">On</option> <option value="off">Off</option> </select> </td> <td align="center" width="2%" nowrap><?php echo $status;?></td> <td width="5%" nowrap> | <?php echo $strom;?></td> <td width="10%" nowrap> | <?php echo $verbrauch;?></td> </form> </td><td width="10%"> </td></tr> <tr><td colspan="7"><hr noshade="noshade" size="1"></td></tr> <tr><td colspan="7" align="center"><a href="http://fritz.box/net/home_auto_overview.lua" target="_blank">Zur Fritz-Box ></a></td></tr> </table> </body> </html>
Also iframe in einen Block von der Seite gepackt. Siehe da das PHP script wird ausgeführt und wird auch angezeigt.
Nachteil, er macht die Navigationsleiste links weg, und es übernimmt natürlich nicht das Design von der Smartvisu.
Hat vielleicht jemand eine Lösung wie ich das script eingebunden bekomme?
Oder hat jemand schon was gebastelt das man die Dosen richtig in smarthome.py einbinden kann?
Ich würde jetzt noch Wochen lang probieren bis es klappt, aber dann sucht sich meine Frau wahrscheinlich einen Anderen,
der nicht jeden Abend am Laptop sitzt und flucht. ;-)
Vielen Dank im Voraus
Gruß Wolfi
Kommentar