[PYTHON] Hinweis: Ich möchte die Heimautomation mit Home Assistant + Raspberry Pi + Sensor Nr. 1 durchführen

Was ist Home Assistant?

https://home-assistant.io/

Eine Open Source-Hausautomationsplattform aus Python. In diesem Bereich scheint es etwas zu geben, das OpenHAB heißt.

Durch die freie Kombination von Funktionen, die als "Komponenten" bezeichnet werden, kann jede Komponente das entsprechende Gerät steuern und automatisieren. Sie können den Status auch auf einer Webseite anzeigen und von dort aus steuern.

Entsprechende Komponenten umfasst IoT-Geräte wie elektrische Rollläden, die in Japan wahrscheinlich nicht verfügbar sind.

Es wird gesagt, dass es solche Dinge unterstützt. Außerdem scheint es die Datenerfassung über die Befehlszeilen-Standardausgabe (Befehlszeilensensor usw.), die Steuerung über die Befehlszeile (Befehlszeilenschalter usw.) oder die Erstellung benutzerdefinierter Komponenten mit Python zu unterstützen Diejenigen, die daran gewöhnt sind, werden keine Probleme haben.

Installation

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

Raspberry Pi muss Raspbian Jessie sein. Die Installation von PyPI ist abgeschlossen. https://home-assistant.io/getting-started/installation-raspberry-pi/

Beim ersten Start wird automatisch das von der Komponente angeforderte Python-Modul oder der aktuelle Speicherort von der IP-Adresse abgerufen (von der Sun-Komponente (Sonnenaufgang / Sonnenuntergang) usw. verwendet).

Wenn Sie automatisch starten möchten, lesen Sie Startassistent beim Booten starten. Verwenden Sie für Raspbian Jessie die Systemd-Methode.

Wenn Sie im Demo-Modus booten möchten

$ hass --demo-mode

Beginnen mit. Nach dem Booten können Sie auf die Steuerungswebseite zugreifen, indem Sie auf http: // (IP-Adresse): 8123 zugreifen. Wenn Sie beim Start die Option "--open-gui" hinzufügen, wird der Browser nach dem Start automatisch geöffnet. Es fühlt sich an wie Android-Materialdesign, und Sie können es tatsächlich über den Browserbildschirm Ihres Smartphones bedienen.

homeassistant_demo_mode.png

Ich habe das Gefühl, dass der Demo-Bildschirm etwas überlastet ist.

Aufbau

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

Im Ausgangsverzeichnis des aufrufenden Benutzers wird ein Verzeichnis ".homeassistant" erstellt und darin eine Datei "configuration.yaml" erstellt. Die Einstellungen sind in YAML beschrieben. Die Zeitzone usw. wurde bereits anhand der aktuellen Standortinformationen festgelegt, die beim ersten Start von der IP-Adresse abgerufen wurden. Sie können diese jedoch ändern. Weitere Informationen finden Sie oben auf der Konfigurationsseite und auf der Detailseite für jede Komponente.

Rufen Sie nach dem Ändern der Einstellungen http: // (IP-Adresse): 8123 auf und klicken Sie im Seitenbereich auf "Konfiguration". Klicken Sie auf die Schaltfläche [Configuration.yaml] - [CHECK CONFIG], um die Beschreibung der Einstellungen zu überprüfen. Wenn keine Probleme auftreten, klicken Sie auf [KERN RELOADEN], um die Einstellungen wiederzugeben.

Grundeinstellungen

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
  #Breite
  latitude: [Kürzung]
  #Längengrad
  longitude: [Kürzung]

#Passwort
http:
  api_password: [Kürzung]

# Track the sun
sun:

Geräteregistrierung

Registrieren Sie Ihren BME280 (Temperatur- / Feuchtigkeits- / Drucksensor) und die CPU-Temperatur als Befehlszeilensensor. Holen Sie sich auch die CPU-Uhr mit CPU-Geschwindigkeitssensor. Für die Erfassung von BME280 wurde ein leicht modifiziertes von Switch Science veröffentlichtes Python-Skript im Force-Modus betrieben und die Temperatur über die Befehlszeilenoption angegeben. , Luftfeuchtigkeit und Druck wurden geändert, um nur die Werte anzuzeigen.

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) }}"

Gruppeneinstellungen

Wenn eine Komponente unabhängig registriert wird, wird sie in Form eines runden, symbolförmigen "Abzeichens" oben auf der Steuerungswebseite angezeigt. Durch Gruppieren verwandter Komponenten kann es in einem "Karten" -Format auf der Steuerungswebseite angezeigt werden, und Schalter usw. können gemeinsam gesteuert werden. Es gibt auch eine Einstellung zum Gruppieren von Registerkarten. (Ansicht: ja) Beschreiben Sie für die zu gruppierenden Komponenten den Dienstnamen (entity_id) jeder Komponente in einer 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

Und das Display sieht so aus.

homeassistant.png

Klicken Sie auf die festgelegte Komponente, um Details wie Diagramme anzuzeigen.

homeassistant_humidity.png

Zukünftige Ziele

Recommended Posts

Hinweis: Ich möchte die Heimautomation mit Home Assistant + Raspberry Pi + Sensor Nr. 1 durchführen
Ich möchte ○○ mit Pandas machen
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Ich habe mit Raspberry Pi gesprochen
Als ich versuchte, eine Socket-Kommunikation mit Raspberry Pi durchzuführen, war das Protokoll anders
Einfache Einführung in Home Hack mit Raspberry Pi und discord.py
Ich möchte Interrupts auf dem Raspberry Pi deaktivieren (≒ DI / EI)
Ich möchte mit Python debuggen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
Ich möchte Python GUI ausführen, wenn Raspberry Pi startet
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Verbesserter menschlicher Sensor mit Raspberry Pi
Ich möchte ein Automatisierungsprogramm erstellen!
Verwenden Sie einen PIR-Bewegungssensor mit Himbeer-Pi
Ein Memo zur einfachen Verwendung des Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi 2
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Ich möchte Dunnetts Test in Python machen
Ich möchte MATLAB feval mit Python verwenden
Ich habe die Beleuchtungsstärke des Raumes mit Raspberry Pi, Arduino und einem optischen Sensor getwittert
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte 100 Datenwissenschaften mit Colaboratory schlagen
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
Ich habe versucht, mit Raspberry Pi 4 eine Umgebung von Ubuntu 20.04 LTS + ROS2 zu erstellen
Ich möchte OREMO mit setParam sein!
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte -inf nicht mit np.log verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
[Für Anfänger] Ich habe mit Raspberry Pi einen menschlichen Sensor erstellt und LINE benachrichtigt!
Ich möchte ip vrf mit SONiC verwenden
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte pyenv + pipenv auch unter Windows machen
Ich möchte mit Djangos Migrate von vorne beginnen
Ich habe versucht, mit Raspeye + Tact Switch eine Schaltfläche für Slack zu erstellen
Ich möchte mit Python in eine Datei schreiben
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Ich möchte über die Verbindungsumgebung benachrichtigt werden, wenn RaspberryPi eine Verbindung zum Netzwerk herstellt
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Ich möchte, dass DQN Puniki einen Homerun macht
Ich möchte mit Jubatus (1) eine nicht autorisierte Anmeldung bei Facebook erkennen.
Verwendung des digitalen Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi
Ich möchte mit einem Knopf am Kolben übergehen
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Links, um mit Sublime Text zu tun, was Sie wollen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte Lambda mit Python auf Mac AWS!