Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Ursprünglich entstand die WebApp im Forum von simple-solutions. Hier findet ihr zur Dokumentation den damaligen Thread. [Anhänge sind entfernt]

Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon mentox » Mi 27. Feb 2013, 23:13

Hallo zusammen,

so ich habe Version 0.6.5 (2013-04-11) fertig.
Ich dachte das wäre mal einen eigenen Thread wert. :-)

entstanden ist das ganze aus dem Thread: viewtopic.php?f=15&t=260&start=210

viel Spass beim Schalten
euer mentox

http://www.l3x.de/connair/
Zuletzt geändert von Gast am Do 11. Apr 2013, 22:10, insgesamt 6-mal geändert.
Conn-Air Mobile WebApp jetzt in Version 0.6.11 (2014-07-13)
Projekt-Seite: http://www.l3x.de/connair/
Forum: http://forum.power-switch.eu/viewforum.php?f=6
Benutzeravatar
mentox
 
Beiträge: 253
Registriert: Di 16. Apr 2013, 20:53

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon Gast » Do 28. Feb 2013, 17:49

Hi mentox,

hier ein paar weitere Vorschläge:

Raumbezeichnung bei Geräten in der Favoritenübersicht

Bildschirmfoto 2013-02-28 um 16.41.05.png


Code: Alles auswählen
                <li id="deviceRow<?php echo $device->id; ?>" data-theme="<?php echo $rowDataTheme; ?>">
                    <div class="ui-grid-a">
                       <div class="ui-block-a" style="text-align:left"><?php echo $device->name; ?>
                       <p></p><p><?php echo $device->room; ?></p>
                       </div>
                       <div class="ui-block-b" style="text-align:right">
                           <button id="btnOn<?php echo $device->id; ?>" data-theme="<?php echo $btnOnDataTheme; ?>" data-mini="true" data-inline="true" <?php if(!empty($btnOnIcon)) { echo 'data-icon="'.$btnOnIcon.'"'; } ?> onclick="<?php echo $btnOnJS; ?>">Ein</button>
                           <button id="btnOff<?php echo $device->id; ?>" data-theme="<?php echo $btnOffDataTheme; ?>" data-mini="true" data-inline="true" onclick="<?php echo $btnOffJS; ?>">Aus</button>
                       </div>
                    </div>
                </li>


Timerübersicht

Bildschirmfoto 2013-02-28 um 16.43.48.png

Bildschirmfoto 2013-02-28 um 16.45.32.png


Code: Alles auswählen
<div data-role="page" id="Timer">

    <div data-role="panel" id="mypanel" data-position="left" data-display="reveal" data-theme="a">
       <center>
            <a href="#Favoriten" data-role="button" data-theme="e">Favoriten</a>
            <a href="#Geräte" data-role="button" data-theme="e">Geräte</a>
            <a href="#Gruppen" data-role="button" data-theme="e">Gruppen</a>
            <a href="#Räume" data-role="button" data-theme="e">Räume</a>
            <a href="#Timer" data-role="button" data-theme="e" class="ui-disabled">Timer</a>
            <a href="#Einstellungen" data-role="button" data-theme="e" class="ui-disabled">Einstellungen</a>
            <br />
            <div class="ui-grid-a">
                <div class="ui-block-a"><button data-theme="g" data-rel="close" onclick="send_connair('allon')">Alle an</button></div>
                <div class="ui-block-b"><button data-theme="r" data-rel="close" onclick="send_connair('alloff')">Alle aus</button></div>     
            </div>
            <br />
            <a href="#my-header" data-role="button" data-theme="a" data-rel="close">Schliessen</a>
        </center>
    </div><!-- /panel -->
 
       
    <div data-role="header" data-position="fixed" data-tap-toggle="false">
        <a href="#mypanel">Menu</a>
        <h1>Timer</h1>
        <a href="#newtimer" data-rel="dialog" data-transition="slidedown">+</a>
    </div><!-- /header -->


    <div data-role="content"> 
        <ul data-role="listview" data-divider-theme="e" data-inset="false">

<?php
    #$roomDevices = array();
    #foreach($xml->timers->timer as $timer) {
    #    $curRoom = (string)$device->room;
    #    if(!array_key_exists($curRoom, $roomDevices)) {
    #        $roomDevices[$curRoom] = array();
    #    }
    #    $roomDevices[$curRoom][] = $device;
    #}
    #ksort($roomDevices);
#    foreach($xml->devices->device as $device) {
       //echo $device->id." - ".$device->name."<br>";
 #      $devicedef = array((int)$device->id => $device->name);
  #  }
    foreach($xml->timers->timer as $timer) {
?>

                <li data-theme="c">
                    <div class="ui-grid-a">
                       <div class="ui-block-a" style="text-align:left">
                   <?php
                   if($timer->type=="device") {
                      foreach($xml->devices->device as $tmp_device) {
                         //echo $timer->tid."-".$tmp_device->id."<br>";
                         If ((string)$timer->typeid === (string)$tmp_device->id) {
                            echo $tmp_device->name;
                            $tmp_room = $tmp_device->room;
                         }      
                      }
                  }
                  if($timer->type=="group") {
                      foreach($xml->groups->group as $tmp_group) {
                         //echo $timer->tid."-".$tmp_device->id."<br>";
                         If ((string)$timer->typeid === (string)$tmp_group->id) {
                            echo $tmp_group->name;
                         }      
                      }
                  }
                   ?></div>
                      <div class="ui-block-b" style="text-align:right">
                           <a href="#newtimer" data-role="button" data-mini="true" data-inline="true" data-theme="r" data-rel="dialog" data-transition="slidedown">Edit</a>
                       </div>
                    </div>
                    <p><b>Type: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b>
                    <?php
                   if($timer->type=="device") {
                    echo "Gerät";
                } else
                {
                   if($timer->type=="group") {
                       echo "Gruppe";
                   } else
                   {
                      echo "Raum";
                   }
                }     
                    ?></p>
                    <?php if($timer->type=="device") {
                       echo "<p><b>Raum: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b>".$tmp_room."</p>";
                    }
                    ?>
                    <p><b>Tag: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b>
                    <?php switch ($timer->day) {
                          case "M______":
                             echo "Montag</p>";
                             break;
                          case "_D_____":
                             echo "Dienstag</p>";
                             break;
                          case "__M____":
                             echo "Montag</p>";
                             break;
                          case "___D___":
                             echo "Donnerstag</p>";
                             break;
                          case "____F__":
                             echo "Freitag</p>";
                             break;
                          case "____S_":
                             echo "Samstag</p>";
                             break;
                          case "_____S":
                             echo "Sonntag</p>";
                             break;
                          case "MDMDF__":
                             echo "Mo,-Fr.</p>";
                             break;
                          case "_____SS":
                             echo "Sa.-So.</p>";
                             break;
                          case "MDMDFSS":
                             echo "Mo.-So.</p>";
                             break;
                          default:
                             echo "nicht definiert</p>";
                             break;
                        }
                    ?>                             
                    <p><b>Timer AN: &nbsp;&nbsp;&nbsp;</b>
                    <?php
                if($timer->timerOn=="SD") {
                    echo "Sonnenuntergang";
                } else
                {
                   if($timer->timerOn=="SU") {
                       echo "Sonnenaufgang";
                   } else
                   {
                      echo $timer->timerOn." Uhr";
                   }
                }                   
                    ?></p>
                    <p><b>Timer AUS: &nbsp;</b>
                    <?php
                if($timer->timerOff=="SD") {
                    echo "Sonnenuntergang";
                } else
                {
                   if($timer->timerOff=="SU") {
                       echo "Sonnenaufgang";
                   } else
                   {
                      echo $timer->timerOff." Uhr";
                   }
                }                   
                    ?></p>
                </li>

<?php
    }
?>
   
         </ul>
    </div><!-- /content -->
</div><!-- /page -->
Gast
 

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon Gast » Do 28. Feb 2013, 17:58

Fortsetzung:

Neuer Timer

Bildschirmfoto 2013-02-28 um 16.45.46.png


Code: Alles auswählen
<div data-role="page" id="newtimer" data-theme="e" data-close-btn="none">

    <div data-role="header">
        <h1>Neuer Timer</h1>
    </div><!-- /header -->

    <div data-role="content">
        <form id="newtimerform" method="post">
            <div data-role="fieldcontain">
              
              
            <div data-role="fieldcontain">
                <fieldset data-role="controlgroup" data-mini="true" data-type="horizontal">
                   <legend>Timer Type:</legend>
                        <input type="radio" name="timertype" id="radio-choice-1" value="device" checked="checked" />
                        <label for="radio-choice-1">Gerät</label>
            
                        <input type="radio" name="timertype" id="radio-choice-2" value="group"  />
                        <label for="radio-choice-2">Gruppe</label>
            
                        <input type="radio" name="timertype" id="radio-choice-3" value="room"  />
                        <label for="radio-choice-3">Raum</label>
            
                </fieldset>
            </div>

              
              
               <label for="ID">ID:</label>
               <input type="text" name="ID" id="ID" value="" />
               <br/>
              
               <div data-role="fieldcontain">
               <label for="day" class="select">Tag:</label>
               <select name="day" id="day" data-mini="true">
                  <option value="M______">Montag</option>
                  <option value="_D_____">Dienstag</option>
                  <option value="__M____">Mittwoch</option>
                  <option value="___D___">Donnerstag</option>
                  <option value="____F__">Freitag</option>
                  <option value="_____S_">Samstag</option>
                  <option value="______S">Sonntag</option>
                  <option value="MDMDF__">Mo. - Fr.</option>
                  <option value="_____SS">Sa. - So.</option>
                  <option value="MDMDFSS">Mo. - So.</option>
               </select>
            </div>
              
               <div data-role="fieldcontain">
                <fieldset data-role="controlgroup" data-type="horizontal">
                    <legend>Timer On:</legend>
               
                    <label for="OnTimerHH">Stunden</label>
                    <select name="OnTimerHH" id="OnTimerHH" data-mini="true">
                        <option>Stunden</option>
                        <?php
                        for ($i = 0; $i <= 23; $i++) {
                         echo "<option value='".sprintf ("%02d", $i)."'>".sprintf ("%02d", $i)."</option>";
                     }
                     ?>
                    </select>
               
                    <label for="OnTimerMM">Minuten</label>
                    <select name="OnTimerMM" id="OnTimerMM" data-mini="true">
                        <option>Minuten</option>
                        <?php
                        for ($i = 0; $i <= 59; $i++) {
                         echo "<option value='".sprintf ("%02d", $i)."'>".sprintf ("%02d", $i)."</option>";
                     }
                     ?>
                    </select>

                    <label for="OnTimerSun">Minuten</label>
                    <select name="OnTimerSun" id="OnTimerSun" data-mini="true">
                        <option>Automatik</option>
                        <option>Sonnenaufgang</option>
                        <option>Sonnenuntergang</option>
                    </select>
                                       
                </fieldset>
            </div>

               <div data-role="fieldcontain">
                <fieldset data-role="controlgroup" data-type="horizontal">
                    <legend>Timer Off:</legend>
               
                    <label for="OffTimerHH">Stunden</label>
                    <select name="OffTimerHH" id="OffTimerHH" data-mini="true">
                        <option>Stunden</option>
                        <?php
                        for ($i = 0; $i <= 23; $i++) {
                         echo "<option value='".sprintf ("%02d", $i)."'>".sprintf ("%02d", $i)."</option>";
                     }
                     ?>
                    </select>
               
                    <label for="OffTimerMM">Minuten</label>
                    <select name="OffTimerMM" id="OffTimerMM" data-mini="true">
                        <option>Minuten</option>
                        <?php
                        for ($i = 0; $i <= 59; $i++) {
                         echo "<option value='".sprintf ("%02d", $i)."'>".sprintf ("%02d", $i)."</option>";
                     }
                     ?>
                    </select>
                   
                    <select name="OffTimerSun" id="OffTimerSun" data-mini="true">
                        <option>Automatik</option>
                        <option>Sonnenaufgang</option>
                        <option>Sonnenuntergang</option>
                    </select>
                   
                </fieldset>
            </div>
              

           </div>
           <input type="submit" value="Speichern" data-theme="g"/>
            <a href="#" data-role="button" data-rel="back" data-theme="r">Abbrechen</a>
        </form>
    </div><!-- /content -->
</div><!-- /page -->



Offsetsteuerung Sonnenauf- und -untergang

Kannst Du noch eine Offsetvariable in Deinem Script aufnehmen, um den Sonnenauf- und -untergang zeitlich zu verschieben? Hier meine Umsetzung:

index.php
Code: Alles auswählen
        $sunrise = (date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90+5/6, date("O")/100))+(60*($xml->global->sunriseOffset));
        $sunset = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90+5/6, date("O")/100)+(60*($xml->global->sunsetOffset));


config.xml
Code: Alles auswählen
    <global>
       <longitude>9.44858</longitude>
       <latitude>48.64727</latitude>
       <sunriseOffset>-5</sunriseOffset>
       <sunsetOffset>-5</sunsetOffset>
    </global>




Anbei findest Du im Zip noch beide Dateien. Es wäre prima, wenn Du die kleinen Updates irgendwie berücksichtigen könntest. Meine Idee war es aus der Timerübersicht per "Edit-Button" alle Daten in die Eingabemaske "Neuer Timer" zu übergeben, aber mir fällt noch keine technische Umsetzung ein.
Gast
 

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon lehrling » Do 28. Feb 2013, 20:19

Hallo mentox
dein Programm ist super aber wie instaliere ich so etwas damit ich auch die app benutzen kann,das steht nirgendwo(so ne Art Anleitung wäre nicht schlecht) habe gelesen das es auf dem iphone geht aber geht es auch auf meinen S3 android Phone :?: da ich ja da eine apk Datei brauche. wäre super wenn mir jemand helfen könnte das zu verstehen :)
lehrling
 
Beiträge: 63
Registriert: Do 18. Apr 2013, 18:38

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon mentox » Do 28. Feb 2013, 20:59

hi christian

du nimmst mir ja mein ganzen bastel spaß :-D

werde mir mal anschauen was du da verbrochen hast und einbauen :-)


hi lehrling

du hast recht. das thema habe ich noch nicht behandelt. hole ich nach.

es dreht sich hier um eine sogenannte WebApp. Diese musst du nicht auf dem telefon installieren. sondern du installierst die zb auf deiner fritzbox oder einer anderen kiste die bei dir im netzwerk steht.

laufen tut das auf einem s3 absolut genial. hat nen kollege von mir.

die erste gegenfrage die ich dir stellen muss waere. hast du einen homeserver oder fritzbox oder oder die du nutzen kannst?

du kannst mit deinem s3 einfach die demo bei mir ansurfen
http://www.l3x.de/connair/demo/


vg mentox
Conn-Air Mobile WebApp jetzt in Version 0.6.11 (2014-07-13)
Projekt-Seite: http://www.l3x.de/connair/
Forum: http://forum.power-switch.eu/viewforum.php?f=6
Benutzeravatar
mentox
 
Beiträge: 253
Registriert: Di 16. Apr 2013, 20:53

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon volker v » Do 28. Feb 2013, 21:08

Hallo Zusammen,
Eine super Sache habt ihr hier zustande gebracht. Respekt!

Muss ich die ganzen Codes selber auf meine Bedürfnisse abschreiben?
Bin totaler Laie auf dem Gebiet.
Wie aufwendig ist es, einen Garagentorantrieb von marantec mit in die app
aufzunehmen?

Gruß Volker
volker v
 
Beiträge: 14
Registriert: Do 18. Apr 2013, 17:20

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon mentox » Do 28. Feb 2013, 21:42

hallo volker,

ich habe deine erste frage nicht ganz verstanden .. du kannst von meiner seite die version 0.5.0 laden und bei dir installieren .. auf meiner seite ist auch eine anleitung wie man die config anpasst.

das ganze setzt einen (ich nenne es mal homeserver) vorraus.
die ersten tests kannst du auch mit deinem normalen rechner machen .. zb xampp
http://www.apachefriends.org/de/xampp.html

du kannst es natürlich auch selber installieren .. da weis ich jett nicht genau welche hardware du hast und welches betriebssystem und was dein ziel ist.

zu deinem garagen tor kann ich nur sagen. keine ahnung ;-)
wie steuert man das denn an? wird das von der connair unsterstützt? hast du da nähere infos zu?
Conn-Air Mobile WebApp jetzt in Version 0.6.11 (2014-07-13)
Projekt-Seite: http://www.l3x.de/connair/
Forum: http://forum.power-switch.eu/viewforum.php?f=6
Benutzeravatar
mentox
 
Beiträge: 253
Registriert: Di 16. Apr 2013, 20:53

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon Perrpf » Do 28. Feb 2013, 21:49

volkerv hat geschrieben:Wie aufwendig ist es, einen Garagentorantrieb von marantec mit in die app
aufzunehmen?

Das wirst Du mit hoher Wahrscheinlichkeit vergessen können.
So ein Garagentorantrieb ist ja was sicherheitsrelevantes, also werden da Rolling Codes und vermutlich völlig undokumentierte Protokolle benutzt.
Perrpf
 
Beiträge: 57
Registriert: Do 18. Apr 2013, 19:46

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon anne » Fr 1. Mär 2013, 00:38

Hallo,
wir haben eine Connair und diverse Funksteckdosen, die wir derzeit mit der Steckercherapp steuern. Allerdings gefällt mir die hier gezeigte Steuerungsmöglichkeit viiieeel besser...;-)
Nun bin ich leider technisch nicht so fit und bräuchte da mal eine "Gebrauchsanweisung".
Zur Ausgangssituation: Im Haushalt gibt es diverse iGeräte (iOS 5.1.1 bzw. 6.1.2 mit Jailbreak), eine Fritzbox 7270 (freetz), eine TimeCapsule. Ein dyndns ist vorhanden.
Ich würde mich wahnsinnig freuen, wenn mir jemand erklären könnte, was ich wo wie installieren / downloaden / einstellen muss, damit wir unsere Geräte über so eine Web.app steuern können.
Die "Vorlage" von mentox habe ich natürlich runtergeladen, aber ich habe keine Ahnung, was ich damit jetzt machen muss.
Besten Dank!
anne
anne
 
Beiträge: 56
Registriert: Do 18. Apr 2013, 19:03

Re: Conn-Air Mobile WebApp [iPhone, iPad, Android, PC, ...]

Beitragvon mentox » Fr 1. Mär 2013, 10:01

Hallo anne

ich werde dazu noch mal was zusammen schreiben...

aktuell wird dazu ein apache mit php und für die zeitsteuerung noch der crontab benötigt..

wenn du schon freetz hast ist das eine gute vorraussetzung .. ich google mal was man da machen muss :-)

auf den ios geräten musst du nichts installieren .. da gehts du dann mit safari nur auf die connair url auf der fritzbox und fertig ..ggf als homescreen link speichern :)

vg mentox
Conn-Air Mobile WebApp jetzt in Version 0.6.11 (2014-07-13)
Projekt-Seite: http://www.l3x.de/connair/
Forum: http://forum.power-switch.eu/viewforum.php?f=6
Benutzeravatar
mentox
 
Beiträge: 253
Registriert: Di 16. Apr 2013, 20:53

Nächste

Zurück zu alter Thread

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast