Skip to content

Alexa skill for bus and public transport information. Created for Aachen region but can easily be adapted to other cities

License

Notifications You must be signed in to change notification settings

acmurmeltier69/Alexa-Busauskunft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alexa-Busauskunft

Alexa Skill für Busauskunft

Der Skill wurde ursprünglich geschrieben für Nahverkehr im Raum Aachen, kann aber leicht für andere Städte angepasst werden.

Demo: http://mnbvcx.eu/busplan/busauskunft_video1.mp4

Update (28.März 2017): Unverständlicherweise und ohne nähere Begründung hat die ASEAG die Verwendung ihrer frei zugänglichen URA API (http://ivu.aseag.de/interfaces/ura/instant_V1) untersagt. (siehe #13) Ich bin jetzt auf der Suche nach alternativen ÖPNV APIs um den Skill für andere Verkehrssysteme zu verwenden.

Requires

Der Skill benutzt die folgenden "externen" Pakete:

Funktionalität

Dieser Skill bietet Live Abfahrts- und Verbindungsinformationen für den Nahverkehr z.B. für den Raum Aachen.

Sofern der Benutzer einmalig eine Haltestelle als bevorzugeten Abfahrtspunkt festgelegt hat, können Abfahrten und Verbindungen von dieser Haltestelle vereinfacht abgefragt werden.

Unterstützte Kommandos (Intents):

  • GetDeparturesFromFavorite : Zeige Live-Abfahrtszeiten der Busse von der bevorzugten Haltestelle

Beispiele:

"Wann fährt der nächste Bus"

"Wann geht der nächste Bus der Line 47"

"Wann kommt der nächste Bus stadteinwärts"

  • GetDeparturesFromOther : Zeige Live-Abfahrtszeiten ab einer anderen Haltestelle

Beispiele:

"Wann fährt der nächste Bus ab Richterich Rathaus"

"Zeige die Abfahrten die Linie 11 ab Elisenbrunnen"

  • GetFavConnecionDepartures : Suche Verbindungen von der bevorzugten Haltestelle zu anderen Zielen

Beispiele:

"Wann kommt der nächste Bus zum Hauptbahnhof"

"Wann geht ein Bus in die Liebigstraße"

  • FindConnectionFromOther : Suche Verbindungen zwischen zwei beliebigen Haltestellen

Beispiele:

"Wann geht der nächste Bus vom Ponttor zum Hauptbahnhof"

"Wann geht ein Bus von Richterich rathaus in die Liebigstraße"

  • ChangeDefaultStation : Ändere die bevorzugte Haltestelle für den Benutzer

Beispiel:

"Ändere die_bevorzugte_haltestelle zu Kohlscheid Markt"

Die bevorzugte Haltestelle für den Benutzer wird anhand der Amazon UserID in einer DynamoDB Datenbank abgelegt

Datenmodell für Alexa

Die Informationen die das "Interaktionsmodell" des Alexa Skills benötigt liegen im Verzeichnis "ASK_resources"

  • Intent structure --> aseak_intentstruct_generated.js
  • definition of custom types --> aseak_customtypes_generated.txt
  • Sample utterances --> sample_utterances_generated.txt

Die entsprechenden Dateien wurden mit Hilfe des myask Tools myask/myask_appdef.py automatisch aus einem internen Datenmodell generiert:

  • 'python/bus_appdef.py' definiert die Intents, Slots und Custom-Slot-Types für den Skill

    • Die Liste der Bushaltestellen wird dabei aus "aseag_data.py" importiert
    • verschiedene Formulierungen ("literal values") für den selben Slot-Wert ("canonical value") werden im Datenmodell zusammengefasst. Die von Alexa erkannten slot-Werte werden bereits beim Einlesen (mit myask/myask_slots.py) in die entsprechenden canonicals umgewandelt.
  • 'ASK_resources/inputgrammar.txt' definiert in kompakter form (als vereinfachte Variante einer BNF-Grammatik) die möglichen Eingabesätze.

    Aus dieser kompakten Grammatik wird mit Hilfe des von myask/myask_myask_utterancegen.py eine Datei mit allen möglichen Formulierungen erzeugt, auf denen der Alexa Skill trainiert werden soll.

(Leider hat sich herausgestellt, dass ASK nur eine sehr begrenzte Zahl von "Sample Utterances" akzeptiert. Ich musste die alternativen Formulierungen (z.B. Verben) wieder reduzieren. )

About

Alexa skill for bus and public transport information. Created for Aachen region but can easily be adapted to other cities

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published