All Projects β†’ home-assistant β†’ Android

home-assistant / Android

Licence: apache-2.0
πŸ“± Home Assistant Companion for Android

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Android

Home Assistantconfig
🏠 Home Assistant configuration & Documentation for my Smart House. Write-ups, videos, part lists, and links throughout. Be sure to ⭐ it. Updated FREQUENTLY!
Stars: ✭ 3,687 (+318.5%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Ios
πŸ“± Home Assistant for Apple platforms
Stars: ✭ 667 (-24.29%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Frontend
🍭 Frontend for Home Assistant
Stars: ✭ 1,366 (+55.05%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Node Red Contrib Home Assistant Websocket
Node-RED integration with Home Assistant Core
Stars: ✭ 222 (-74.8%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Room Assistant
Presence tracking and more for automation on the room-level
Stars: ✭ 764 (-13.28%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Awesome Home Assistant
A curated list of amazingly awesome Home Assistant resources.
Stars: ✭ 3,487 (+295.8%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Ha Dockermon
A NodeJS RESTful API which can be used with Home Assistant to report the state of Docker Containers
Stars: ✭ 171 (-80.59%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Esphome
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Stars: ✭ 4,324 (+390.81%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Supervisor
🏑 Home Assistant Supervisor
Stars: ✭ 862 (-2.16%)
Mutual labels:  home-assistant, home-automation, hacktoberfest
Esphome Core
🚨 No longer used 🚨 - The C++ framework behind ESPHome
Stars: ✭ 545 (-38.14%)
Mutual labels:  home-assistant, home-automation
Hassio Zigbee2mqtt
Hass.io add-on for zigbee2mqtt
Stars: ✭ 547 (-37.91%)
Mutual labels:  home-assistant, home-automation
Homebridge Homeassistant
DEPRECATED in favor of native HomeKit support. - ο£Ώ Homebridge plugin for Home Assistant
Stars: ✭ 666 (-24.4%)
Mutual labels:  home-assistant, home-automation
Home Assistant Configuration
🏑 My Home Assistant Configuration Files. Be sure to ⭐️ my repo!
Stars: ✭ 472 (-46.42%)
Mutual labels:  home-assistant, home-automation
Smarthome
@skalavala πŸ‘ Nothing But Smarthome Stuff! - By Mahasri Kalavala
Stars: ✭ 437 (-50.4%)
Mutual labels:  home-assistant, home-automation
Alexa media player
This is a custom component to allow control of Amazon Alexa devices in Home Assistant using the unofficial Alexa API.
Stars: ✭ 630 (-28.49%)
Mutual labels:  home-assistant, hacktoberfest
Miflora Mqtt Daemon
Linux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 🌱🌼πŸ₯€πŸ‘🌳
Stars: ✭ 409 (-53.58%)
Mutual labels:  home-assistant, home-automation
Homeassistant
Home Assistant Configuration Files and Documentation
Stars: ✭ 395 (-55.16%)
Mutual labels:  home-assistant, home-automation
Button Card
❇️ Lovelace button-card for home assistant
Stars: ✭ 680 (-22.81%)
Mutual labels:  home-assistant, home-automation
H1st
The AI Application Platform We All Need. Human AND Machine Intelligence. Based on experience building AI solutions at Panasonic: robotics predictive maintenance, cold-chain energy optimization, Gigafactory battery mfg, avionics, automotive cybersecurity, and more.
Stars: ✭ 697 (-20.89%)
Mutual labels:  home-automation, hacktoberfest
Amazon Dash
Hack your Amazon Dash to run what you want.
Stars: ✭ 703 (-20.2%)
Mutual labels:  home-assistant, home-automation

πŸ“± Home Assistant Companion for Android Beta Deploy

Documentation

If you are looking for documentation around the companion applications check out the Home Assistant Companion Documentation. This will provide you instructions on using the applications.

Setup App Development Environment

  • Download and install Android Studio

  • Download / clone this repository to a folder on your computer

  • Create a Firebase project at Firebase Console

  • Create four Android apps, with following package names

  • io.homeassistant.companion.android

  • io.homeassistant.companion.android.debug

  • io.homeassistant.companion.android.minimal

  • io.homeassistant.companion.android.minimal.debug

  • Now download the google-services.json file and put it in the home-assistant-Android/app folder. This file contains the configuration of the whole project (all the four applications).

    You can also use the mock services file instead of generating your own The file should contain client IDs for all packages listed above for debugging to work properly. If you do not generate your own file push notification will never work

  • Start Android Studio, open your source code folder and check if the Gradle build will be successful using Build/Make Module "App". You might have to install the right Android SDK via Tools/SDK Manager first.

  • Create keystore containing keypair for debug application signing. In Android Studio: Menu/Build/Generate signed APK, then use a button to create new keystore. Remember the passwords and key alias

  • Set environmental variables used in app/build.gradle.kts:

  • KEYSTORE_PASSWORD

  • KEYSTORE_ALIAS

  • KEYSTORE_ALIAS_PASSWORD

  • Run the build using gradlew build from command line.

  • If the build is successful, you can run the app by doing the following: click Run -> Run 'app'

  • Connect your phone or create a new virtual device following on screen instruction

  • πŸŽ‰

If you get stuck while setting up your own environment, you can ask questions in the #devs_mobile_apps channel on Discord.

Push Notifications

If you want to work on push notifications or use a development build with push notifications, please go the server side code HERE and deploy it to your firebase project. Once you have your androidV1 URL to the deployed service, set it in to your ${GRADLE_USER_HOME}/gradle.properties file, e.g.:

homeAssistantAndroidPushUrl=https://mydomain.cloudfunctions.net/androidV1

You can also define the rate limit function URL, e.g.:

homeAssistantAndroidRateLimitUrl=https://mydomain.cloudfunctions.net/checkRateLimits

App Flavors

The Android app has both a full flavor that uses Google Play Services to offer features like location tracking and notifications. There is also a minimal flavor that does not require Google Play Services and can be found in the releases section. The minimal flavor does not have location tracking or notifications.

Testing Dev Releases

We are using Github Actions to perform continuous integration both by unit testing, deploying dev releases to Play Store Beta and final releases to the Play Store when we release. To help test out a specific feature/fixes users can find the APK on the Actions page for each pull request, this debug APK can be installed side-by-side the production or beta builds.

Quality

We are using ktlint as our linter. You can run a check locally on your machine with:

./gradlew ktlintCheck

This commands runs on our CI to check if your PR passes all tests. So we strongly recommend running it before committing.

To run a check with an auto-format:

./gradlew ktlintFormat

Translating

The project currently uses lokalise to translate the application. If you are interested in helping translate go to the link and click start translating!

Generating a release to production

  • Create a new release with the name and tag in the {MAJOR}.{MINOR}.{PATCH} format
  • Steal the release notes from the latest beta build
  • This will cause a tag to be added to the project and the Production Deploy Workflow will handle the rest
  • Note: Only the first 500 characters of the release notes get set in the Google Play release
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].