[HowTo] – MAPS mit Bewegungsdaten

Maps / Karten in Home Assistant ist eine schöne Sache. Können wir uns doch immer ansehen wo genau ein „tracking_device“ grade steckt und damit Automatisierungen anschieben. Aber wie wäre es wenn wir den Verlauf des „tracking_device“ auch Visuell nachvoll ziehen könnten. Das geht mit einem kleinen aber feinen Trick.

Als erstes erstellen wir uns ein neues Dashboard „Einstellungen -> Dashboards -> Dashboard hinzufügen“

Home Assistant hat uns nun ein neues Dashboard mit dem Namen Angelegt und mit Beispielen gefüllt. Wir brauchen ein Leeres Dashboard also gehen wir auf Dashboard bearbeiten und wählen die Option „Beginne mit leeren Dashboard“

In unserem jetzt Leeren Dashboard erstellen wir uns genau eine Karte mit dem Typ „Landkarte“
Titel und Seitenverhältnis lassen wir leer und im Feld Stunden tragen wir die gewünschte Zeit ein die wir die Bewegung der „tracking_device“ oder „Personen“ rückwirkend visualisiert haben wollen. In meinem Fall sind es 24 Stunden. Als Entitäten wählen wir die „Personen“ oder „tracking_devices“ aus. Je nach Geschmack kann man sich auch noch die Zonen mit Anzeigen lassen.

Beispiel: Tracking von Florian

Code zur Karte

type: map
entities:
  - entity: person.EUREPERSON
  - entity: zone.EUREZONE
dark_mode: true
default_zoom: 15
hours_to_show: 24

RAW des Dashboards

views:
  - theme: Backend-selected
    title: Home
    type: panel
    badges: []
    cards:
      - type: map
        entities:
          - entity: person.EUREPERSON
          - entity: zone.EUREZONE
        dark_mode: true
        default_zoom: 15
        hours_to_show: 24

Home Assistant – iRobot einbinden

Bei Home Assistant iRobot einbinden ist etwas komplizierter als gedacht. Aber mit dieser Anleitung sollte es klappen.

Vorbereitung

Der Roomba Saugroboter sollte ein fixe IP-Adresse bekommen, sonst funktioniert es nicht. Dazu am Router für die MAC-Adresse vom Roomba bei DHCP eine fixe IP-Adresse hinterlegen.

Bei uns hat der Roomba900 die IP-Adresse 192.168.0.81, und das wird in der Beispiel Konfiguration verwendet und gehört natürlich angepasst.

Konfiguration

Die Konfiguration gehört in der Datei „configuration.yaml“ wie folgt ergänzt

# Vaccum
vacuum:
  - platform: roomba
    host: 192.168.0.81
    username: **BLID**
    password: **PASSWORD**
    name: Roomba900
    continuous: true

Um an die benötigten Werte  BLID und PASSWORD heran zu kommen, bedarf es etwas Aufwand, den ich hier noch erklären möchte.

BLID/PASSWORD

Um an die BLID/PASSWORD Kombination zu kommen, bedarf es eine LINUX Distribution und die Installation folgender Pakete. Anbei die Anleitung für Ubuntu:

sudo apt-get install npm
sudo apt-get install nodejs
sudo apt-get install git
cd Downloads
git clone https://github.com/koalazak/dorita980.git
cd dorita980
cd bin

mit folgendem Befehl bekommt man nun die BLID/Passwort Kombination. Allerdings muss man noch ein bißchen was machen …

npm run getpassword 192.168.0.81
> dorita980@3.0.12 getpassword /home/obmadmin/Downloads/dorita980 
> node ./bin/getpassword.js "192.168.0.81" 
Make sure your robot is on the Home Base and powered on (green lights on). 
Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). 
Release the button and your robot will flash WIFI light. 
Then press any key here...

Jetzt heißt es den Roomba aufwecken, dazu den Roomba in der Ladestation lassen, dann die Taste „CLEAN“ am Roomba drücken (grünen Lichter gehen an), und danach die Taste „HOME“ solange drücken, bis ein Signalton erklingt und das WLAN Symbol blinkt.

Wenn das der Fall ist, die Taste ENTER am Computer drücken. Es sollte eine Verbindung zu stande kommen und wenn folgende Ausgabe am Bildschirm erscheint, hat alles geklappt und der Roomba Saugroboter kann hinzugefügt werden!

{ ver: '3',
  hostname: 'Roomba-311111111111111',
  robotname: 'Roomba900',
  ip: '192.168.0.81',
  mac: 'XX:XX:XX:XX:XX:XX',
  sw: 'v2.4.4-4',
  sku: 'R960000',
  nc: 0,
  proto: 'mqtt',
  cap:
   { pose: 0,
     ota: 0,
     multiPass: 0,
     pp: 0,
     binFullDetect: 0,
     langOta: 0,
     maps: 0,
     edge: 0,
     eco: 0,
     svcConf: 1 },
  blid: '311111111111111' }
Password=> :1:00000000:PASSWORD <= Yes, all this string.
Use this credentials in dorita980 lib :)

Die Konfiguration mit den Werten für Username und Password sollte jetzt wie folgt ausschauen, wobei natürlich Username/Passwort von Roomba zu Roomba unterschiedlich ist. (nur der Ordnung halber ;-))

# Vaccum
vacuum:
  - platform: roomba
    host: 192.168.0.81
    username: 311111111111111
    password: :1:00000000:PASSWORD
    name: Roomba900
    continuous: true

Nicht vergessen, die Datei „configuration.yaml“ speichern und nach einem Neustart sollte es mit Roomba und „Home Assistant“ klappen.



[HowTo]: Home Assistant Core

Vorbereiten und Abhängigkeiten Installieren

sudo apt-get update
sudo apt-get upgrade -y


sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata

System User Anlegen

sudo useradd -rm homeassistant

oder mit

sudo adduser --system homeassistant
sudo addgroup homeassistant


Verzeichnisse Anlegen und Berechtigungen erteilen

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant



Wechseln auf den User homeassistant und die Installation ausführen

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv /srv/homeassistant
source bin/activate


[HINWEIS]: Nach dem Aktivieren des virtual environment sieht der Terminal Prompt nun etwa so aus
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $)

python3 -m pip install wheel
pip3 install homeassistant


Die Installation ist ab diesem Punkt abgeschlossen und wir könnten den HomeAssistant nun mit der Eingabe von hass starten.

HomeAssistant ist dann unter http://ServerIP:8123 erreichbar

[HINWEIS]: Wenn man wie oben den HomeAssistant gestartet hat, erscheint der Hinweis das keine Config gefunden wurde und eine angelegt wird. Dies geschieht dann im HomeVerzeichnis des Users homeassistant! /home/homeassistant/.homeassistant

Sollte man nun voreilig schon die ersten Gehversuche gewagt haben oder sogar schon einiges Eingerichtet haben kann auf einen Extra Config Ordner verzichtet werden und der Service wie folgt anlegt / eingerichtet werden.

Als erstes wechselt ihr auf euren Benutzer (nicht den HomeAssistant)

wechselt in das Verzeichnis /etc/systemd/system und legt dort die Datei homeassistant.service an.

sudo nano /etc/systemd/system/homeassistant.service


Description=Home Assistant
After=network.target mosquitto.service

[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/bin/hass -c /home/homeassistant/.homeassistant --log-file /home/homeassistant/hass.log

[Install]
WantedBy=multi-user.target


Nun wird systemd durch und aktvieren unseren homeassistant.service

sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant
sudo systemctl start homeassistant


Wenn homeassistant nicht starten sollte kann das mittels Log überprüft werden.

sudo systemctl status homeassistant





[Quellen]:

https://wiki.instar.com/de/Software/Linux/Home_Assistant/
https://www.home-assistant.io/installation/linux#install-home-assistant-core

UNIFI-VIDEO start …fail!

Nach einem normalen Tag voller Updates meldet sich der NVR plötzlich ab und verweigert den Start. Aus den Logs lässt sich nur erahnen womit das ganze zusammen hängt.

Sep 15 14:59:19 video systemd[1]: Starting LSB: Ubiquiti unifi-video...
Sep 15 14:59:19 video unifi-video[1917]:  * Starting Ubiquiti UniFi Video unifi-video
Sep 15 14:59:20 video unifi-video[1996]: (unifi-video) Hardware type:Unknown
Sep 15 14:59:20 video unifi-video[1996]: (unifi-video) checking for system.properties and truststore files...
Sep 15 14:59:21 unifi unifi-video[1917]:    ...fail!
Sep 15 14:59:21 unifi systemd[1]: Started LSB: Ubiquiti unifi-video.

Nach kurzen suchen in UI Forum stieß ich auf ähnliche Beiträge und eine ganz simple Erklärung. Mit dem letzten Java Update hat es UNIFI-VIDEO entschärft.

Problem is the Java version. Latest that v3.10.13 video will run on is 8u275.
Also latest Camera FW that Video supports is "v4.23.8" - don't go above that!
  1. Download der Java Version „jre-8u271-linux-x64.tar.gz“
  2. Login als root (sudo su)
  3. mkdir /usr/local/java (wenn nicht schon vorhanden)
  4. cp jre-8u271-linux-x64.tar.gz /usr/local/java
  5. cd /usr/local/java
  6. tar zxvf jre-8u271-linux-x64.tar.gz
  7. rm jre-8u271-linux-x64.tar.gz
  8. update-alternatives –install „/usr/bin/java“ „java“ „/usr/local/java/jre1.8.0_271/bin/java“ 1
  9. update-alternatives –config java (auf meinem System war Auswahl „2“)
    *2 /usr/local/java/jre1.8.0_271/bin/java 1 manueller Modus
  10. echo „JAVA_HOME=/usr/local/java/jre1.8.0_271“ | tee -a /etc/default/unifi
  11. reboot (nun funktioniert auch der UNIFI-VIDEO wieder)

VPNC für Fritz!Box VPN

Um sich mit einen RPI oder anderen Nixen mit einem Fritz!BOX VPN zu verbinden benötigt man nicht viel.  

  • VPNC
  • Fritz!BOX Benutzer mit VPN Zugang

Als erstes installiert man VPNC

sudo apt-get install vpnc

Anschließend legt man eine .conf Datei für die Verbindung an. z.b. home.conf

sudo nano /etc/vpnc/home.conf

Inhalt der home.conf

IPSec gateway "IP oder myfritz.net"
IPSec ID "FRITZ!BOX GRUPPE / USERNAME"
IPSec secret "SHAREDSECRET"
IKE Authmode psk
Xauth username "FRITZ!BOX VPN USER"
Xauth password "PASSWORD"
local port 0
DPD idle timeout (our side) 0

Wenn die .conf Datei angelegt ist kann man mittels

sudo vpnc home.conf

die Verbindung herstellen. Die Verbindung kann mit

sudo vpnc-disconnect

wieder getrennt werden.

Wechsel der Server Version mit DISM

1. Aktuelle Version ermitteln

dism /online /Get-CurrentEdition

2. Ermitteln auf welche Versionen man wechseln kann

dism /online /Get-TargetEditions

3. Den neuen Lizenzkey für die „Target“ Version einspielen. Nach dem dies erfolgreich war wird man gefragt ob man den Server „Neustarten“ möchte. Einfach mal „Ja“ sagen. Während des neustarts werden alle Funktionen der neuen Version aktviert.

dism /online /Set-Edition:TARGET_VERSION/ProductKey:XXXX-XXXX-XXXX-XXXX-XXXX /AcceptEula