Running temporary Home-Assistant on my laptop

Wanted to experiment a bit with Home-Assistant while travelling. And wanted to be able to run as much as possibly locally on the laptop instead of connecting to my home setup since network connectivity is not always reliable.

So here is a short summary how I set it up.

Docker Desktop

I already had Docker Desktop setup with a free Docker Personal account. If you do not have it setup already, download and install it.

HomeAssistant and MQTT

I found these two articles; Installing Docker, Home Assistant and Portainer on Ubuntu Linux and Configuring the Mosquitto MQTT Docker container for use with Home Assistant but they are dedicated to run Docker on Linux and since my laptop is a Mac I had to do some modifications.

Home Assistant

Create a folder on your laptop. I called mine home-assistant and then a number of subfolders in it:

mkdir home-assistant
cd home-assistant
mkdir homeassistant
mkdir homeassistant/config

Then run code docker-compose.yml and add

version: '3.0'
services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - ./homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    ports:
      - 8123:8123

Mosquitto

Optionally if you want to run Mosquitto for MQTT

mkdir mosquitto
mkdir mosquitto/data  
mkdir mosquitto/logmkdir mosquitto/config

Then run code mosquitto/config/mosquitto.conf and add

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
password_file /mosquitto/password_file

And add to docker-compose.yml

  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto
    volumes:
      - ./mosquitto:/mosquitto
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log
    ports:
      - 1883:1883
      - 9001:9001    

Start container/s

Then start the the container or containers with docker compose like

docker-compose up -d

Then visit localhost:8123 to create account and start using Home-Assistant

Wiring MakerX – remote receiver

Some documentation of my wiring to the MakerX VESC since I am about to connect a BRemote instead of the Maytech one.

VESCFirst cableSecondThirdFourthMaytech RxBRemote Rx V1.3
PPM
SigYellowOrangeYellowOrangePWMSRV
5VRedNC
GNDBlackNC
COMM 
AUXBrownNC
MISO_ADC_EXT2OrangeNC
TX_SDA_NSSWhitePurplePinkPurpleRXDTX2
RX_SCL_MOSIBlueGreyGreyGreyTXDRX2
SCK_ADC_EXT1GreenNC
GNDBlackBlackBlueBlackGNDGND
3.3VYellowNC
5VRedRedRedRed5V5V
Other
Battery +GreenGreenBrownGreyBATBMS+
Motor phaseBlueBlueWhiteWhiteMOT

Alternatives to get Nexa support in Home Assistent

I found the OpenMQTTGateway project and got really interested since it can open up for a lot of interesting integrations to Home Assistant. I bought a LilyGo to start experimenting and could get it to read 433Mhz devices like Nexa. All this is possible due to the RTL_433_ESP library.

I wanted also to be able to write to the devices since I have several power plugs that use Nexa. That is not possible with just the LilyGo and the radio module on it. With the STX882 it should be possible to transmit. So I bought both a STX882 and a SRX882. This page describes how to connect these to a ESP32 or NodeMCU.

Have not yet tried to make the full setup and connect everything. Will update this post once I have tried that.

Maytech remote and MakerX VESC

Building the tow boogie I am using the Maytech MTSKR1905WF Remote and the MakerX Hi200/75V VESC together with the Flipsky 65161 motor. Here are som some quick notes about the settings I have used to get things to work as I want.

There is a circuits diagram on the Maytech page which makes it easy to connect the remote receiver and the VESC together using the pinout picture on the MakerX page.


VESC App settings:

  • if you are using firmware version 5.03 (VESC TOOL 3.1) or above – turn off the phase filter, see here for more details
  • Set App to Use to UART – gives much quicker response than the Maytech recommended UART and PPM.
  • Use the Maytech recommended Control Type: Current No Reverse under VESC Remote
  • For quicker response on the remote, change the Input Deadband to something like 3% under VESC Remote

VESC Motor Settings:

  • Set Motor Current Max to 140A
  • Do not set Motor Current Max Brake to 0A but some negativa number like -1A
  • Set Absolute Maximum Current to 180A

Here are some screen dumps to better explain the settings

App to Use: UART
VESC Remote settings
Motor Settings


Support RPM filtering?

Started flying FPV in October 2020 but have since then blown a couple of ESC. And each time I’m going to setup the new ones I ran into problems so this time I write down some notes to not have that happen again…

The most common problem I run into is that I turn on Bi-directional DShot in BetaFlight but then I get RPM_FILTER Disarm disabled flag turned on!! And cannot figure out why??

The answer and solution is quite simple. The default ESC firmware does not support bidirectional DShot! And this article describes how to get it. The ESCs I have one need to use BLHeli_S firmware. On my Nazgul 5 2 HD the ESC has the G H 30 configuration and currently I’m using version 16.73. So I download the G_H_30_REV16_73.HEX firmware and use BLHeli Configuration to flash it. Other versions can be downloaded from https://github.com/JazzMaverick/BLHeli/tree/JazzMaverick-patch-1/BLHeli_S%20SiLabs 

Installing Xiaomi XiaoFang with OctoPrint

I wanted to have a live video stream from my Snapmaker 2.0 since it now has got a space in a closet. After a couple of tries to use a live video stream from the XiaoFang camera I realized it would not be a good solution. Quite a lot of tweaking to get it to work and it would require quite some resources from the Raspberry and thus might affect prints. But I still wanted to use that camera since I already had it.
OctoPrint video

After looking through the OctoPrint forum I saw that some people had used a special firmware on Wyze cameras to just make them into webcameras and connect directly to the Raspberry. The Wyze camera and the XiaoFang are the same camera, but wonder if it would just work to use that firmware? Found an article indicating it should work so gave it a try. Went to the firmware page and followed the instructions. Built a USB A to USB A cable and connected the camera to my PC. Wow, it is a webcam! Connected it the the Raspberry and entered the default settings for camera. Voila!