alexa-fhem: Ausmalbilder mit Alexa drucken und Bildergalerie im Ftui

Begonnen von TomLee, 11 Februar 2017, 19:46:01

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

wollte mal mein kleines Projekt der letzten Tage vorstellen. Bin kein Programmierer, hab mir nur ein wenig Gedanken gemacht die Nichten glücklich zu machen, wenn sie zu Besuch bei Oma und Opa (die haben einen Alexa Dot zu Weihnachten bekommen) sind. Ist nichts besonderes und kann sicherlich noch erweitert (farbenfroher☺) werden.

Oma und Opa nutzen den Alexa Dot über eine dauerhaft eingerichtete  VPN-Verbindung mit meinen Amazon-Account. Somit ist dieser mit meinem alexa-fhem verbunden. Auf meinem pi läuft auch der CUPS Server.

Auf dem Tablet der Oma ist auf dem Starbildschirm ein Lesezeichen auf eine von mir extra erstellte Ftui-Seite ohne Menü oder sonstigen Daten zur Hausautomation. (siehe Bild im Anhang)

Um die Bilder darzustellen hab ich einen Swiper genutzt (für bessere Vorschläge bin ich offen):

<div class="gridster">
<ul>


<!-- ========= Einstellungen =========== -->
<!-- ====================================== -->
<li data-row="1" data-col="1" data-sizex="6" data-sizey="1">

<header>Sprachbefehle</header>

<table border="0" width="100%">
<tr>
<td>
<div data-type="label" class="big">Alexa, öffne James. Stelle die Anzahl Seiten auf ...</div>
<div data-type="label" class="big">Alexa, sag James stelle die Anzahl Seiten auf ...</div>
<div data-type="label" class="big">Alexa, öffne James. Drucke ... </div>
<div data-type="label" class="big">Alexa, sag James drucke ...</div>
</td>
</tr>
</table>
</li>

<!-- ========= Status Anzahl Seiten =========== -->
<!-- ====================================== -->

<li data-row="1" data-col="7" data-sizex="1" data-sizey="1">

<header>Aktuelle Anzahl Seiten</header>

<div data-type="label" class="grande" data-device="du_AnzahlSeiten" data-get="state"></div>
</li>
     
     
<!-- ========= Einstellungen =========== -->
<!-- ====================================== -->

<li data-row="2" data-col="1" data-sizex="7" data-sizey="5">

<header>Ausmalbilder</header>
   
        <div data-type="swiper" data-height="540px" data-width="800px" class="top-space-2x">
        <ul>
            <li>
            <div class="big">... Hello Kitty in der Badewanne</div>
               <div class="left">
                  <img src="./Ausmalbilder/hello-kitty-1.gif" width="800" height="540" alt="">
               </div>
               
             
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty beim Kaffee</div>
                   <img src="./Ausmalbilder/hello-kitty-2.gif" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty am winken</div>
                   <img src="./Ausmalbilder/hello-kitty-3.gif" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty beim grillen</div>                   <img src="./Ausmalbilder/hello-kitty-4.gif" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty auf dem Delphin</div>
                   <img src="./Ausmalbilder/hello-kitty-5.jpg" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty im Garten</div>
                  <img src="./Ausmalbilder/hello-kitty-6.gif" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty im Cabrio</div>
                   <img src="./Ausmalbilder/hello-kitty-7.gif" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
               <div class="left">
               <div class="big">... Hello Kitty am springen</div>
                  <img src="./Ausmalbilder/hello-kitty-8.gif" width="800" height="540" alt="">
               </div>
               
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty am schaukeln</div>
                   <img src="./Ausmalbilder/hello-kitty-9.gif" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty Halloween</div>
                   <img src="./Ausmalbilder/hello-kitty-10.jpg" width="800" height="540" alt="">
                </div>
               
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty mit Papa</div>
                   <img src="./Ausmalbilder/hello-kitty-11.jpg" width="800" height="540" alt="">
                </div>
           
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty mit Pfeil und Bogen</div>
                   <img src="./Ausmalbilder/hello-kitty-12.gif" width="800" height="540" alt="">
                </div>
           
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty Weihnachtsstiefel</div>
                <img src="./Ausmalbilder/hello-kitty-13.jpg" width="800" height="540" alt="">
                </div>         
            </li>
                        <li>
                <div class="left">
                <div class="big">... Hello Kitty mit Sonnenbrille</div>
                   <img src="./Ausmalbilder/hello-kitty-14.jpg" width="800" height="540" alt="">
                </div>
           
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty am Fenster</div>
                   <img src="./Ausmalbilder/hello-kitty-15.gif" width="800" height="540" alt="">
                </div>
           
            </li>
            <li>
                <div class="left">
                <div class="big">... Hello Kitty am Schlittschuhlaufen</div>
                <img src="./Ausmalbilder/hello-kitty-16.jpg" width="800" height="540" alt="">
                </div>         
            </li>
        </ul>
    </div>
</li>



</ul>
</div>


Um mit Alexa per Sprachbefehl zu drucken habe ich einen Dummy erstellt mit folgenden Attributes:

attr alexaName anzahl seiten
attr genericDeviceType switch
attr homebridgeMapping Num=state,cmd=+
attr room AlexaControl,DUMMY
attr setList state:slider,0,1,20


Ein Auszug der DEF des Doif mit dem Namen doif_printDocuments das auf das Reading fhemIntent im alexa-Device triggert:

(["^MyAlexa:^fhemIntent: druckehellokittymitschleife"]) ({system("lpr -#".ReadingsVal("du_AnzahlSeiten","state","1")." -P HL2035 /media/pi/Ausmalbilder/hello-kitty-3.gif")}) DOELSEIF (["^MyAlexa:^fhemIntent: druckehellokittymitfoto"]) ({system("lpr -#".ReadingsVal("du_AnzahlSeiten","state","1")." -P HL2035 /media/pi/Ausmalbilder/hello-kitty-4.jpg")}) DOELSEIF (["^MyAlexa:^fhemIntent: druckehellokittyimgarten"]) ({system("lpr -#".ReadingsVal("du_AnzahlSeiten","state","1")." -P HL2035 /media/pi/Ausmalbilder/hello-kitty-6.gif")}) DOELSEIF (["^MyAlexa:^fhemIntent: druckehellokittybeimessen"]) ({system("lpr -#".ReadingsVal("du_AnzahlSeiten","state","1")." -P HL2035 /media/pi/Ausmalbilder/hello-kitty-1.png")})
DOELSEIF (["^MyAlexa:^fhemIntent: druckehellokittybeimgrillen"]) ({system("lpr -#".ReadingsVal("du_AnzahlSeiten","state","1")." -P HL2035 /media/pi/Ausmalbilder/hello-kitty-4.gif")}) DOELSEIF (["^MyAlexa:^fhemIntent: druckehellokittyimcabrio"]) ({system("lpr -#".ReadingsVal("du_AnzahlSeiten","state","1")." -P HL2035 /media/pi/Ausmalbilder/hello-kitty-7.gif")})


Im alexa-Device habe ich das Attibutes alexaMapping um

Num=verb=stelle,valuePrefix=auf,values=eins:1;zwei:2;drei:3;vier:4;fünf:5;sechs:6;sieben:7;acht:8;neun:9;zehn:10;elf:11;zwölf:12;dreizehn:13;vierzehn:14;fünfzehn:15;sechzehn:16;siebzehn:17;achtzehn:18;neunzehn:19,zwanzig:20

und das Attributes fhemIntents um (nur ein Auszug)

druckehellokittyinderbadewanne=drucke hello kitty in der badewanne
druckehellokittybeimkaffee=drucke hello kitty beim kaffee
druckehellokittyamwinken=drucke hello kitty am winken
druckehellokittybeimgrillen=drucke hello kitty beim grillen
druckehellokittyaufdemdelphin=drucke hello kitty auf dem delphin
druckehellokittyaufderwiese=hello kitty auf der wiese
druckehellokittyimcabrio=drucke hello kitty im cabrio
druckehellokittyamspringen=drucke hello kitty am springen
druckehellokittyamschaukeln=drucke hello kitty am schaukeln
druckehellokittyhalloween=drucke hello kitty halloween
druckehellokittymitpapa=drucke hello kitty mit papa
druckehellokittymitpfeilundbogen=drucke hello kitty mit pfeil und bogen


erweitert.

Natürlich müssen die im alexa-Device vorgenommenen Änderungen auch auf http://developer.amazon.com/ im Custom Skill eingepflegt werden.

Umsetzen konnte ich dies auch nur mit Hilfe aus dem Forum bspw. hier

https://forum.fhem.de/index.php/topic,66482.0.html

Da es schon mühsam ist das alles einzeln zu definieren würde ich mich auch gerne über Verbesserungsvorschläge freuen.

Vlt. kann der ein oder andere ja auch was mit diesem Grundgerüst was anfangen.

Grüße

Thomas