Select your language

Raspberry Pi's

Ich habe für verschiedene Anwendungen 2 RPi's in der Wohnung verteilt:

  • RPi 3B+ (Rev 1.3), als HomeMatic Zentrale, ELV Bausatz 'Charly'
    • 16GB microSD Karte
    • Funkmodul RPI-RF-MOD
    • externes Netzteil 5V; 2,5A mit Anschluss an das Funkmodul
    • 868 MHz Stab-Kippantenne [16€ bei Raspberrymatic.com]
    • Leistungsaufnahme: 7,8W (Idle), ca. 10W (Betrieb) ??
  • RPi 4B (Rev 1.1), 2GB 
    • 16GB microSD Karte
    • PoE-HAT [20€ bei rasppishop.de]
    • Leistungsaufnahme: 3,7W (Idle), ca. 5W (Betrieb) ??

Und noch einer in Reserve:

  • RPi 4B (Rev 1.5), 4GB
    • 16GB microSD Karte

Installation (Debain v11: bullseye)

Anleitung: https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html
https://www.elektronik-kompendium.de/sites/raspberry-pi/1911261.htm

Setup SD-Karte

Mit dem Programm 'RaspberryPi Imager' auf dem Mac.
Das Programm installiert und modifiziert ein Image auf der Karte:

  • aktivieren von SSH
  • setzen eines Users und Kennworts
  • aktivieren von WLAN mit SSID und Passwort
  • Regionale und Sprach Settings
    (später kontrolliert mit >sudo raspi-config)

Freigeben der WIFI-MAC in der Unifi-WLan Konfig.

Configuration WiFi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Installation (Debian v10: buster)

Anleitung: https://github.com/andrewjfreyer/monitor#setup-of-sd-card

Setup SD-Karte

Mit Software 'Etcher' auf dem Mac. Images:

  • RPi 3B: Raspbian_Buster_Liste_piVCCU3_2019-07-11.img
  • RPi 4B: 2019-09-26-raspbian-buster-lite.img

SSH aktivieren

  • Boot-SD Karte auf Mac mounten
  • Im Root Ordner / der Karte eine leere Datei mit dem Namen "ssh" erzeugen (ohne Dateierweiterung)
    (ist bei piVCCU3 Image schon gemacht)

Admin Passwort setzen

default password: raspberry

ssh pi@_pi_ip_
sudo passwd pi

Update SYSTEM (buster und bullseye) 

ssh pi@_pi_ip_
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo reboot

Setup MOSQUITTO

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
apt-cache search mosquitto
sudo apt-get update
sudo apt-get install -f libmosquitto-dev mosquitto mosquitto-clients libmosquitto1

Setup MONITOR

Install Script:

cd ~
sudo apt-get install bluez-hcidump
sudo apt-get install git cd /opt sudo git clone git://github.com/andrewjfreyer/monitor cd monitor/

Initialer Aufruf des Scripts legt default Konfig-dateien an:

cd /opt/monitor
sudo bash monitor.sh

Konfiguration: siehe hierzu Artikel Presence Detection 3.

Monitoring: RPI System sensors

Für das Überwachen der Raspi's möchte ich gerne in HA Sensoren haben. Da ich mit MQTT schon eine gute Plattform dafür am Start habe, bietet sich das folgende Script von Senne an.

Anleitung und Quelle: https://github.com/Sennevds/system_sensors

sudo -s
cd /opt/
git clone git://github.com/Sennevds/system_sensors
cd system_sensors/
apt-get install python3-pip
pip3 install -r requirements.txt

/opt/system_sensors/src/settings.yaml

mqtt:
  hostname: 192.168.__.__
  port: 1883 #defaults to 1883
  user: pi
  password: _____
deviceName: raspi1
client_id: raspi1
timezone: Europe/Berlin
power_integer_state: false #defaults to false
update_interval: 60 #Defaults to 60
check_wifi_strength: false
python3 system_sensors.py /opt/system_sensors/src/settings.yaml
^C
sudo nano /etc/systemd/system/system_sensor.service

/etc/systemd/system/system_sensor.service

[Unit]
Description=System Sensor service
After=multi-user.target

[Service]
User=pi
Type=idle
ExecStart=/usr/bin/python3 /opt/system_sensors/src/system_sensors.py /opt/system_sensors/src/settings.yaml

[Install]
WantedBy=multi-user.target
sudo systemctl enable system_sensor.service
sudo systemctl start system_sensor.service
systemctl status system_sensor.service

Umbauten

Loch für PoE-HAT Lüfter (RPi 4b)

Habe in das Oberteil des offiziellen Raspi-Gehäuses eine Loch direkt über dem Lüfter des PoE-HAT's gebohrt. 

Anbau externe Antenne (RPi 3b)

Habe die interne Antenne des RPI-RF-MOD abgelötet und die Kabelpeitsche angelötet. Antennenbuchse im Unterteil des Gebäuses verschraubt.

Anpassung der Konfiguration

Automatische Updates

todo.

siehe hier: https://www.elektronik-kompendium.de/sites/raspberry-pi/2002101.htm

POE-HAT Ventilator kontrollieren (RPi 4B)

Der kleine Ventilator ist laut und läuft oft. Angeschaltet wird er bei 50°C und kühlt bis 45°C herunter.
Anleitung: https://community.home-assistant.io/t/pi-poe-hat-fan-control/149115/5

  • Shutdown
  • SD-Karte auf Mac öffnen
  • in der config.txt das folgende ergänzen:

sd-card:/config.txt

## poe_fan_temp
##    temp0 is lower speed fan, temp1 is high fan speed.
##    Current setting is fan turns on at 65C, turns off when it comes back down to 60C.
##    If the temperature reaches 68C it will go full blast until it drops back down to 65C. 
dtparam=poe_fan_temp0=65000,poe_fan_temp0_hyst=5000
dtparam=poe_fan_temp1=68000,poe_fan_temp1_hyst=3000

 Zeitzone einstellen

sudo raspi-config

WakeOnLan aktivieren

Zuerst Update durchgeführt.

sudo apt-get install etherwake
ifconfig eth0

--> das Installiert aber nur WanOnLan Serverbefehle. Der Raspi4 kann kein WakeOnLan!

Installation Schlüssel für ssh-Zugriff

Um den PI von Home-Assistant automatisiert herunterfahren zu können muss folgendes getan werden:

  1. Login in den Home-Assistant Docker-Container über die DSM Oberfläche:
    Docker > Container (HA) > Terminal > Erstellen mit Befehl: 'bash'
    Aufruf dieses Terminals erzeugt eine shell für user root
  2. Aufruf
    ssh pi@<ip_von_pi> sudo shutdown now
    fragt nach fingerprint von server (pi)
    --> abgespeichert in known_hosts --> password von user pi eingeben --> shutdown geht
  3. Schlüsselpaar generieren für user root
    ssh-keygen -t rsa -b 4096

    WICHTIG: Datei mit privatem Schlüssel NICHT mit einem Kennwort schützen.

  4. Installieren das öffentlichen Schlüssels auf dem PI
    ssh-copy-id -i /root/.ssh/id_rsa pi@<ip_von_pi>
    ssh pi@<ip_von_pi>
    ...geht nun auf ohne Eingabe des Kennworts.
    Schlüssel sind in HA/config/.ssh gespeichert und werden von dort von SSH genutzt.
  5. copy des privaten Schlüssels nach /config:
    mkdir /config/.ssh
    cp /root/.ssh/id_rsa /config/.ssh/
  6. Test noch Mac mit diesem Schlüssel geht

Feste IP-Adresse (RPi 4B)

Beim gemeinsamen Einschalten von Switch und Raspi bekommt dieser keine IP-Konfiguration über DHCP. deshalb eine optionale feste Adresse hinterlegt:

ssh pi@_pi_ip_
nano /etc/dhcpcd.conf

Anpassung in dhcpcd.conf:

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
profile static_eth0
static ip_address=192.168.2.xx/24
static routers=192.168.2.x
static domain_name_servers=192.168.2.x 8.8.8.8

# fallback to static profile on eth0
interface eth0
fallback static_eth0

WLAN Reconnect (RPi 4B)

Wir das WLAN ausgeschaltet dann verbindet sich der Raspi nicht mehr wenn das WLAN wieder verfügbar ist:


sudo mv /etc/ifplugd/action.d/ifupdown /etc/ifplugd/action.d/ifupdown.alt
sudo cp /etc/wpa_supplicant/ifupdown.sh /etc/ifplugd/action.d/ifupdown
sudo reboot
VORSICHT: Wenn der Reconnect auf diese Weise aktiviert wurde, dann geht anschließend der Ethernet-Port nicht mehr automatisch in Betrieb, wenn man den WLAN-Adapter entfernt und das LAN-Kabel wieder steckt. Wenn man den Raspberry Pi wieder per Ethernet am Netzwerk anschließen will, dann muss man den Reconnect rückgängig machen. Dazu wechselt man in folgendes Verzeichnis, löscht eine Datei und kopiert das Original zurück:

cd /etc/ifplugd/action.d/
sudo rm ifupdown
sudo cp ifupdown.alt ifupdown

Manuelle Updates

RPi 3B+

WICHTIG: Vorher einen Backup von Homematic-CCU machen!!

Beide (RPi 4B und RPi3b+)

Update SYSTEM (rasbian buster lite) 
ssh pi@_pi_ip_
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo reboot
Update Monitor
cd /opt/monitor/
sudo git pull
sudo systemctl restart monitor.service
evtl.
sudo git config url.https://github.com/.insteadOf git://github.com/

ist das ok? noch zu testen...

Update System Sensors
cd /opt/system_sensors/
sudo git pull
sudo systemctl restart system_sensor.service
evtl.
sudo git config url.https://github.com/.insteadOf git://github.com/

das ist ok. Ab v1.1 ist die settings.yaml nicht mehr im git-repo.