[PYTHON] Remarque: je souhaite faire de la domotique avec Home Assistant + Raspberry Pi + capteur # 1

Qu'est-ce que Home Assistant?

https://home-assistant.io/

Une plateforme domotique open source réalisée en Python. Il semble y avoir quelque chose appelé OpenHAB dans ce domaine.

En combinant librement des fonctions appelées «composants», chaque composant peut contrôler et automatiser le dispositif correspondant. Vous pouvez également afficher l'état sur une page Web et le contrôler à partir de là.

Composants correspondants inclut les appareils IoT tels que les volets électriques qui ne seront probablement pas disponibles au Japon.

On dit qu'il soutient de telles choses. En outre, il semble prendre en charge l'acquisition de données à partir de la sortie standard de ligne de commande (capteur de ligne de commande, etc.), le contrôle à partir de la ligne de commande (commutateur de ligne de commande, etc.), ou la création de composants personnalisés à l'aide de Python, donc ce genre de chose Ceux qui y sont habitués ne seront pas en difficulté.

Installation

https://home-assistant.io/getting-started/

Raspberry Pi doit être Raspbian Jessie. L'installation à partir de PyPI est terminée. https://home-assistant.io/getting-started/installation-raspberry-pi/

Au premier démarrage, il récupère automatiquement le module Python demandé par le composant, ou obtient l'emplacement actuel à partir de l'adresse IP (utilisée par le composant Sun (sunrise / sunset), etc.).

Si vous souhaitez démarrer automatiquement, reportez-vous à Lancer Home Assistant au démarrage. Pour Raspbian Jessie, utilisez la méthode Systemd.

Si vous souhaitez démarrer en mode démo

$ hass --demo-mode

Commencer avec. Après le démarrage, vous pouvez accéder à la page Web de contrôle en accédant à http: // (adresse IP): 8123. De plus, si vous ajoutez l'option --open-gui au démarrage, le navigateur s'ouvrira automatiquement après le démarrage. Cela ressemble à la conception matérielle d'Android, et vous pouvez l'utiliser à partir de l'écran du navigateur de votre smartphone.

homeassistant_demo_mode.png

J'ai l'impression que l'écran de démonstration est un peu surchargé.

Réglage

https://home-assistant.io/getting-started/configuration/

Un répertoire .homeassistant est créé dans le répertoire personnel de l'utilisateur de départ et un fichier configuration.yaml y est créé. Les paramètres sont décrits dans YAML. Le fuseau horaire, etc. a déjà été défini à partir des informations de localisation actuelles obtenues à partir de l'adresse IP au premier démarrage, mais il peut être modifié. Pour plus de détails, voir la page de configuration ci-dessus et la page de détails de chaque composant.

Après avoir modifié les paramètres, accédez à http: // (adresse IP): 8123 et cliquez sur «Configuration» sur le panneau latéral. Cliquez sur le bouton [Configuration.yaml] - [CHECK CONFIG] pour vérifier la description du paramètre. S'il n'y a aucun problème, cliquez sur [RELOAD CORE] pour refléter les paramètres.

Éléments de réglage initial

homeassistant:
  # Name of the location where Home Assistant is running
  name: Home
  # C for Celcius, F for Fahrenheit
  temperature_unit: C
  # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  time_zone: Asia/Tokyo
  #latitude
  latitude: [réduction]
  #longitude
  longitude: [réduction]

#Mot de passe
http:
  api_password: [réduction]

# Track the sun
sun:

Enregistrement de l'appareil

Enregistrez votre BME280 (capteur de température / humidité / pression) et la température du processeur en tant que Capteur de ligne de commande. Obtenez également l'horloge du processeur avec le CPU speed sensor. Pour une acquisition depuis BME280, légèrement modifié script Python publié par Switch Science, fonctionnait en mode Force, et la température spécifiée par l'option de ligne de commande. , L'humidité et la pression ont été modifiées pour n'afficher que les valeurs.

sensor:
  - platform: command_line
    name: "BME280 temperature"
    command: "/home/pi/sbin/bme280_sample.py -T"
    unit_of_measurement: "°C"
  - platform: command_line
    name: "BME280 pressure"
    command: "/home/pi/sbin/bme280_sample.py -P"
    unit_of_measurement: "hPa"
  - platform: command_line
    name: "BME280 humidity"
    command: "/home/pi/sbin/bme280_sample.py -H"
    unit_of_measurement: "% RH"
  - platform: cpuspeed
    name: 'CPU speed'
  - platform: command_line
    name: "CPU Temperature"
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    unit_of_measurement: "°C"
    value_template: "{{ value | multiply(0.001) }}"

Paramètres de groupe

Lorsqu'un composant est enregistré indépendamment, il est affiché sous la forme d'un «badge» rond en forme d'icône en haut de la page Web de contrôle. En regroupant les composants associés ensemble, il peut être affiché dans un format de «carte» sur la page Web de contrôle, et les commutateurs, etc. peuvent être contrôlés collectivement. Il existe également un paramètre pour regrouper les onglets. (vue: oui) Pour les composants à regrouper, décrivez le nom de service (id_entité) de chaque composant dans une liste.

group:
  Weather:
    - sun.sun

  In the room:
    - sensor.bme280_temperature
    - sensor.bme280_pressure
    - sensor.bme280_humidity

  Raspberry Pi 2:
    - sensor.cpu_speed
    - sensor.cpu_temperature

Et l'écran ressemble à ceci.

homeassistant.png

Cliquez sur le composant d'ensemble pour afficher des détails tels que des graphiques.

homeassistant_humidity.png

Objectifs futurs

--Essai d'autres composants

Recommended Posts

Remarque: je souhaite faire de la domotique avec Home Assistant + Raspberry Pi + capteur # 1
Je veux faire ○○ avec les Pandas
Notez ce que vous voulez faire à l'avenir avec Razpai
J'ai parlé à Raspberry Pi
Quand j'ai essayé de faire une communication socket avec Raspberry Pi, le protocole était différent
Introduction facile au piratage domestique avec Raspberry Pi et discord.py
Je souhaite désactiver les interruptions sur le Raspberry Pi (≒ DI / EI)
Je veux déboguer avec Python
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai créé un serveur Web avec Razpai pour regarder des anime
Je veux exécuter l'interface graphique Python au démarrage de Raspberry Pi
Je souhaite rechercher le texte intégral avec elasticsearch + python
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Capteur humain amélioré fabriqué avec Raspberry Pi
Je veux faire un programme d'automatisation!
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Je veux faire le test de Dunnett en Python
Je veux utiliser MATLAB feval avec python
J'ai tweeté l'éclairement de la pièce avec Raspberry Pi, Arduino et un capteur optique
Je veux moquer datetime.datetime.now () même avec pytest!
Je souhaite afficher plusieurs images avec matplotlib.
Je veux frapper 100 sciences des données avec Colaboratory
J'ai essayé L-Chika avec Razpai 4 (édition Python)
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
Je veux être OREMO avec setParam!
Je souhaite utiliser le répertoire temporaire avec Python2
Je ne veux pas utiliser -inf avec np.log
#Unresolved Je veux compiler gobject-introspection avec Python3
[Pour les débutants] J'ai fait un capteur humain avec Raspberry Pi et notifié LINE!
Je souhaite utiliser ip vrf avec SONiC
Je veux résoudre APG4b avec Python (chapitre 2)
Je veux faire pyenv + pipenv même sous Windows
Je veux recommencer avec Migrate de Django
J'ai essayé de créer un bouton pour Slack avec Raspeye + Tact Switch
Je veux écrire dans un fichier avec Python
Connectez-vous à MySQL avec Python sur Raspberry Pi
Je souhaite être informé de l'environnement de connexion lorsque RaspberryPi se connecte au réseau
Je veux convertir une image en WebP avec sucette
Je veux que DQN Puniki frappe un home run
Je souhaite détecter une connexion non autorisée à Facebook avec Jubatus (1)
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Je veux faire la transition avec un bouton sur le ballon
IoT facile pour démarrer avec Raspeye et MESH
Je veux gérer l'optimisation avec python et cplex
Je veux escalader une montagne avec l'apprentissage par renforcement
Visualisons la pièce avec tarte aux râpes, partie 1
Liens pour faire ce que vous voulez avec Sublime Text
Je veux hériter de l'arrière avec la classe de données python
Je veux travailler avec un robot en python.
Je veux diviser une chaîne de caractères avec hiragana
Je veux AWS Lambda avec Python sur Mac!