Giter Club home page Giter Club logo

hass-workstation-service's Introduction

HASS Workstation Service

This goal of this project is to provide useful sensors and services from your workstation to Home Assistant through MQTT. It accomplishes this goal by:

  • Running in the background as a service
  • Being lightweight so you'll never notice it
  • Using well defined standards
  • Being local when you want it to, only communicating through your own MQTT broker
  • Being easy to configure
  • Using secure communication

It will try to futher accomplish this goal in the future by:

  • Being platform independent

Hass Workstation Service in the press

View some screenshots

The settings screen

The resulting sensors and commands in Home Assistant

If you would prefer a video, look at :

Or a written article :

Installation

You can get the installer from here. When using the installer, the application checks for updates on startup. This is the recommended way to install for most users. Note: You'll get a Windows Smartscreen warning because the code was self signed. You can click "More info" and then "Run anyway" to proceed with installing. If you get an error stating your system's settings not allowing installation, please refer to this StackOverflow answer.

Standalone

If you don't want to use the installer, standalone is what you need. Make sure to install .NET 5 Runtime first. Find the standalone version releases on GitHub here. Unpack all files to a folder and run hass-workstation-service.exe. This is the background service and you can use UserInterface.exe to configure the service. There is no automatic (or prompted) updating in the standalone version.

Getting Started

As a prerequisite, make sure you have an MQTT username and password available. Using Home Assistant in combination with the Mosquitto broker add-on and integration? You can both use a Home Assistant account and a local account. From a security perspective, we recommend a local account as this only provides access to the MQTT Broker and not to your Home Assistant instance.

Now that you are all set, make sure to run the hass-workstation-service.exe executable first. This executable is responsible for setting up the sensors and talking with your MQTT Broker. To configure the service, start the UserInterface.exe executable. Add your hostname or IP address, port, username and password and click on Save. In case you use the Mosquitto add-in, provide port 8883 and check Use TLS. If you don't want to use TLS the default port is 1883. The application will mention "All good" when configured correctly.

Updating

If you used the installer, the app checks for updates on startup. If an update is available you will be prompted to install. If you use the standalone, just delete all files from the previous install and unpack the zip to the same location as before.

Need help?

Find us on Discord, or check out the frequently asked questions.

Development

If you want to help develop Hass Workstation service, make sure to install the .NET Runtime .NET 5 Runtime and .NET 5 SDK. Run the following commands from the hass-workstation-service\hass-workstation-service directory to get you started:

dotnet build
dotnet publish

If you are using Visual Studio, open the hass-workstation-service\hass-workstation-service folder to take advantage of the predefined build and publish tasks, alternatively you can open the project directly from github using the green download button to use the integrated git tools.

Sensors

The application provides several sensors. Sensors can be configured with a name and this name will be used in the MQTT topic like this: homeassistant/sensor/{DeviceName}/{Name}/state. Sensors will expose themselves through MQTT discovery and will automatically appear in Home assistant or any other platform that supports this type of configuration.

Sensors publish their state on their own interval which you can configure and only publish when the state changes.

Here is a list of the most commonly used sensors with the full documentation here:

sensor use
ActiveWindow Exposes the currently selected window
WebcamActive Exposes the webcam state
MicrophoneActive Exposes the microphone state

Commands

This application allows you to send commands over MQTT to control the host system, and will be exposed using MQTT discovery. Alternatively you can directly send a command from Home Assistant using this topic : homeassistant/switch/{DeviceName}/{Name}/set, with the payload ON.

Here is a list of the most commonly used sensors with the full documentation here

command use
ShutdownCommand Shutdown the PC
RestartCommand Restart the PC
MuteCommand Mute the speakers

Credits

This project depends on work done by others and they should at least get a mention. Please note that this list is not complete yet.

CoreAudio was used to check the current volume of playing audio.

We use this for our GPU sensors.

hass-workstation-service's People

Contributors

chrismancini avatar deadolus avatar devsecninja avatar diddlik avatar gstevenson avatar m4rkireland avatar noxhirsch avatar secretiveshell avatar sleevezipper avatar stefanroelofs avatar tombrien avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.