Tasmota in Homeassistant einbinden

Requirements

  • MQTT broker and the MQTT integration set up in Home Assistant.
  • Tasmota devices’ MQTT setting configured to communicate with the MQTT broker.
  • Tasmota devices flashed with version 9.2, or later (tasmota-lite.bin does not support this integration).
  • Tasmota devices configured for native discovery (SetOption19 0)

In meinem Fall:

  • Geräte – MQTT Broker, Tasmota
  • AdOn: Mosqito-Broker

Quellen:

https://www.home-assistant.io/integrations/tasmota

https://stevessmarthomeguide.com/using-tasmota-devices-with-home-assistant-and-mqtt/

[HowTo] Abfallkalender in Home Assistant

  1. unter HACS die Integration „Waste Collection Schedule“ installieren
  2. in der configuration.yaml folgendes hinzufügen:

Abfallkalender einbinden anhand einer .ics aus dem Netz

waste_collection_schedule:
  sources:
    - name: ics
      args:
        url: "https://www.sbazv.de/entsorgungstermine/klein.ics"
        # offset: OFFSET
        # method: METHOD
        params:
          city: Blankenfelde-Mahlow
          district: Blankenfelde
          street: Stormstr.
        # year_field: YEAR_FIELD
        # regex: REGEX
        # split_at: SPLIT_AT
        version: 2
        # verify_ssl: VERIFY_SSL
      customize:
        - type: Restmülltonnen
          alias: rest
          icon: mdi:trash-can
        - type: Gelbe Säcke
          alias: gelbersack
          icon: mdi:recycle
        - type: Papiertonnen
          alias: papier
          icon: mdi:trash-can
        - type: Weihnachtsbäume
          alias: baum
          icon: mdi:pine-tree
        - type: Laubsäcke
          alias: laub
          icon: mdi:leaf
  fetch_time: "04:00"
  day_switch_time: "10:00"

die einzelnen Sensoren für die unterschiedlichen Müllentsorgungen hinzufügen

sensor:

  - platform: waste_collection_schedule
    # source_index: SOURCE_INDEX
    name: AbfallRestmuell
    details_format: "upcoming"
    # count: COUNT
    # leadtime: LEADTIME
    value_template: "{{ value.daysTo }}"
    # date_template: DATE_TEMPLATE
    # add_days_to: ADD_DAYS_TO
    types:
      - rest

  - platform: waste_collection_schedule
    # source_index: SOURCE_INDEX
    name: AbfallGelberSack
    details_format: "upcoming"
    # count: COUNT
    # leadtime: LEADTIME
    value_template: "{{ value.daysTo }}"
    # date_template: DATE_TEMPLATE
    # add_days_to: ADD_DAYS_TO
    types:
      - gelbersack

  - platform: waste_collection_schedule
    # source_index: SOURCE_INDEX
    name: AbfallPapier
    details_format: "upcoming"
    # count: COUNT
    # leadtime: LEADTIME
    value_template: "{{ value.daysTo }}"
    # date_template: DATE_TEMPLATE
    # add_days_to: ADD_DAYS_TO
    types:
      - papier

  - platform: waste_collection_schedule
    # source_index: SOURCE_INDEX
    name: AbfallWeihnachtsbaum
    details_format: "upcoming"
    # count: COUNT
    # leadtime: LEADTIME
    value_template: "{{ value.daysTo }}"
    # date_template: DATE_TEMPLATE
    # add_days_to: ADD_DAYS_TO
    types:
      - baum

  - platform: waste_collection_schedule
    # source_index: SOURCE_INDEX
    name: AbfallLaubSack
    details_format: "upcoming"
    # count: COUNT
    # leadtime: LEADTIME
    value_template: "{{ value.daysTo }}"
    # date_template: DATE_TEMPLATE
    # add_days_to: ADD_DAYS_TO
    types:
      - laub

Wenn man noch Tage dahinter stehen haben möchte

homeassistant:
  customize:
    sensor.abfallrestmuell:
      unit_of_measurement: "Tage"
    sensor.abfallgelbersack:
      unit_of_measurement: "Tage"
    sensor.abfallpapier:
      unit_of_measurement: "Tage"
    sensor.abfallweihnachtsbaum:
      unit_of_measurement: "Tage"
    sensor.abfalllaubsack:
      unit_of_measurement: "Tage"

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

Ai-on-the-edge-device / ESP32-Cam Flashen

Es geht um diesen tolle Projekt hier: HIER

Auf YouTube gibt es ein schönes deutschsprachiges Tutorial Video dazu: HIER

Da ich sowohl unter Windows wie auch MacOS meine Probleme beim Flashen hatte, hier meine Vorgehensweise auf dem Mac:

  • Terminal öffnen
  • Homebrew installieren
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  • Python installieren
$ brew install python
  • pyserial installieren
$ python3 -m pip install pyserial
  • Dateien runterladen:
    • https://github.com/jomjol/AI-on-the-edge-device
    • https://github.com/espressif/esptool
  • Dateien entpacken
  • in das Verzeichnis wechseln, wo die oben genannten Dateien parallel liegen

  • kontrollieren ob der ESP32+FTDI erkannt wird
$ ls -la /dev/cu.*
  • ESP32-Cam flashen (Port und Verzeichnisnamen anpassen!)
python3 ./esptool-3.2/esptool.py \
	--port /dev/cu.usbserial-2240 write_flash \
	0x01000 ./AI-on-the-edge-device-9.2.0/firmware/bootloader.bin \
	0x08000 ./AI-on-the-edge-device-9.2.0/firmware/partitions.bin \
	0x10000 ./AI-on-the-edge-device-9.2.0/firmware/firmware.bin 

weitere Quellen:

https://docs.python-guide.org/starting/install3/osx/

https://pyserial.readthedocs.io/en/latest/pyserial.html

Blue Iris -profile change http-request

Ich wollte, das wenn ich das Haus verlasse, die Kameras erst „scharf“ gestellt werden bzw. mir erst dann push-Mittteilungen gesendet werden.

Dazu ist einfach nur ein Web.request nötig:

command_on: ‘curl -k “http://ip:port/admin?profile=1& user=username&pw=password”’
command_off: ‘curl -k “http://ip:port/admin?profile=2& user=username&pw=password”’

Im ioBroker noch ein kleines Blockly Skript verfasst:

Das Profil wird nach wenigen Sekunden gewechselt, aber nur in den „TEMP“ Modus. Laut Einstellungen wechselt das Profil wieder zum „Profil 1“ und stellt dies auf „Play“.

Laut Forum gibt es noch kein Patch um den „Lock“ Status auf „Play“ zu setzen –> HIER

Quelle 2

BlueIris – Motion Detection optimieren

.. You set zone crossing with 2 zones.  
For example…
1. Set zone A with the side of the house and top stoop.
2. Set zone B to the brick area, and out a bit in the yard and side of the driveway.
3. Connect zones A and B together or they cannot cross – so, add an addition zone (I always use G) that covers zone A, the gap, and Zone B. Basically just cover the dimmer yellow areas.
4. Set your ‚Zone Crosses‘ to A-B.
5. Set the ‚Min. Duration‘ to a lower number, like .2 or .4. You can estimate this by how long it takes a person to move about 1/4 to 1/3 the way thru from the edge of either side of the zones.
6. Set the ‚Object travel‘ to a number, like 50 – 100.

Quelle: Forum