[PYTHON] Demandez à NAO (Pepper) de vous dire la météo

Après avoir pratiqué la box Python avec Choregraphe, de Livedoor's Weather Web Service J'aimerais que NAO (Pepper) parle de la prévision actuelle / demain / après-demain.

Concept de boîte Python

J'ai emprunté la sagesse de mes ancêtres! Veuillez consulter ici pour plus de détails. L'idée de la boîte Python (session technique Pepper Tech Fes)

comportement

スクリーンショット 2016-03-26 22.25.29.png La relation entre les boîtes est comme ça.

Nom de la boîte Réglage
Set Language Language: Japanese
Speech Reco. Word list:Tenki d'aujourd'hui;La météo de demain;La météo après-demain;La fin
Switch Case Speech Reco.La chaîne de caractères spécifiée dans la liste Word de""Placer entre (guillemets doubles) et définir dans chaque ligne
Say Double-cliquez sur la boîte et définissez la langue (japonais) et n'importe quel texte
Python Script Écrivez ici l'acquisition météo du service Web météo
Say Text Deux cases, une pour les prévisions météo acquises et une pour la fin

Python Script

Préparation


Dans le script Python par défaut, toutes les entrées et sorties sont bang, donc Cliquez avec le bouton droit sur la boîte> sélectionnez Boîte d'édition et définissez l'entrée onStart et la sortie onStopped Type sur string.

scénario


Je pense que c'est plus facile à écrire, mais pour le moment, le code qui a fonctionné. .. ..

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)

    def onLoad(self):
        pass

    def onUnload(self):
        pass

    def onInput_onStart(self, question):
        import urllib2, json
        url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=030010"
        r = urllib2.urlopen(url)
        root = json.loads(r.read())

        if question == "Tenki d'aujourd'hui":
            result = "Le tenki actuel est" + root['forecasts'][0]['telop'].encode('utf8') + "est."
            self.onStopped(result)

        elif question == "La météo de demain":
            result = "La météo de demain" + root['forecasts'][1]['telop'].encode('utf8') + "est."
            self.onStopped(result)

        elif question == "La météo après-demain":
            result = "La météo après-demain" + root['forecasts'][2]['telop'].encode('utf8') + "est."
            self.onStopped(result)

        else:
            self.onStopped(question)

    def onInput_onStop(self):
        self.onUnload()

Le code de city = définit Morioka. * Pour les autres indicatifs régionaux, cliquez ici.

Résumé

Le sentiment que ce n'est pas intelligent est incroyable.

Recommended Posts

Demandez à NAO (Pepper) de vous dire la météo
Demandez au bot de vous indiquer la météo (informations sur les précipitations) à l'aide de l'API d'informations météorologiques (YOLP) fournie par Yahoo ~ développement de bot slack avec python ④ ~
Revivez le rêve que vous avez manqué! (Cependant, limité à Pepper)
Je suis nouveau sur Python. Pourriez-vous s'il vous plaît me dire où se trouve l'erreur?
Lorsque vous souhaitez mettre à jour le pilote Chrome.
Ajouter une fonction pour indiquer la météo d'aujourd'hui au bot slack (fabriqué par python)
Ne demandez pas "Êtes-vous sûr de vouloir continuer à vous connecter"
Le langage de programmation que vous souhaitez pouvoir utiliser
Je t'ai écrit pour regarder le signal avec Go