Nachdem ich Probleme mit Versionsunterschieden diversester Software und den beiden Raspberry Pis habe, versuche ich den 'alten' mal neu aufzusetzen. Als Grundlage nehme ich den 'Fast-Setup'.
Die wichtigsten Sachen, die laufen müssen: pilight und mein lcd
Grundinstallation:
Mit Raspberry Pi Imager das neueste Image vom Januar 2021/2025 eingespielt
Eine leere ssh-Datei auf dem Boot-Volume angelegt
An cmdline.txt angehängt: ip=192.168.178.31::192.168.178.1:255.255.255.0::eth0:off
Pi3: entsprechend: 192.168.178.20
Anmelden mit pi/raspberry;
In den neueren Versionen geht das nicht mehr. Man muss die Datei: userconf.txt anlegen und die Zeile „username:verschlüsseltes_passwort“ anlegen. 'raspberry' entspricht dann: „$6$DA4uoaW5XcoyYy9s$0y0yjKCeogzXXi3pJn9XHM9czH9kDSu.wR7zEppyyfl96X7/urThXeUwPNL4bER34qX.NH33ZFsZGWvZ2IuaX.“ (openssl passwd -6)
raspi-config (I2C, camera, Localisation, Festplatte erweitern, password)
sudo nmcli radio wifi on; sudo nmcli dev wifi connect <wifi-ssid> password „<network-password>“
Pi3: Audio über USB;
apt-get update; apt-get upgrade; Welche Version habe ich jetzt: cat /etc/os-release (bookworm)
Pi3: Probleme mit
DNS, Lösung steht
hier
sudo apt-get install mlocate; sudo updatedb
Pi-Light:
Apache, PHP, MariaDB, Python, phpmyadmin:
python –version: 2.7.16; python3 –version v8.1.5
sudo apt-get install apache2
sudo apt-get install mariadb-server mariadb-client; mysql_secure_installation
sudo apt-get install php; systemctl restart apache2 (php 7.3.27; apache 2.4.38)
sudo apt-get install phpmyadmin; (apache2)
mysql -u root; CREATE USER ihr_username@localhost IDENTIFIED BY 'ihr_eigenes_passwort';
GRANT ALL PRIVILEGES ON *.* TO ihr_username@localhost WITH GRANT OPTION;
sudo apt-get -y install python-mysql.connector python3-mysql.connector python-mysqldb python3-mysqldb
shebang für python3 funktionierte nicht. Besser umstellen auf: #!/usr/bin/env python3
Daten in Datenbank importieren:
scp /Users/varnholt/Downloads/HomeAu.sql.zip pi@192.168.178.23:
unzip HomeAutomation.sql.zip
mysql -u pi -p < HomeAutomation.sql
Probleme mit Umlauten beheben…
IOWarrior (USB-LCD Ansteuerung)
-
-
sudo apt-get install libusb-dev; sudo apt-get install swig; make
IO-Warrior_SDK / libiowkit-1.7.0 installieren
sudo apt-get install raspberrypi-kernel-headers (falls nötig)
Für MQTT
Für Bluetooth
sudo apt-get install bluetooth libbluetooth-dev
sudo python3 -m pip install pybluez
sudo python3 -m pip install pygatt
sudo python3 -m pip install bluepy (blescan, sensortag, thingy52 in '/home/pi/.local/bin' nicht im PATH.)
sudo python3 -m pip install paho-mqtt
sudo python3 -m pip install miflora
Für „Xiaomi passive BLE monitor integration.“ was aber nicht funktioniert:
sudo python3 -m pip install aioblescan (installed in '/home/pi/.local/bin' nicht im PATH.)
sudo python3 -m pip install pycryptodomex (mit pycryptodome ging es nicht)
sudo python3 -m pip install voluptuous
sudo python3 -m pip install homeassistant (da kommt zu viel rein, man braucht nur
Für 'lock_server' um die autom. Helligkeitsanpassung im Zimmer zu stoppen
Für mein „ha“ aka test C-Programm
Für I2C (da ich andere pins benutze), Eintrag in /boot/config.txt
dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=4,i2c_gpio_sda=8,i2c_gpio_scl=27
sudo python3 -m pip install smbus2
sudo python3 -m pip install rpi.bme280
In PHP nutze ich vcdiv:
Für ssh:
In der Datenbank:
bei phpmysql kommt Fehlermeldung „count(): Parameter must be an array or an object that implements Countable“: sudo sed -i „s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g“ /usr/share/phpmyadmin/libraries/sql.lib.php
Tabelle Wohnung: feuchteOut und tempOut mit 0.00 vorbelegen
Zugriff von aussen: /etc/mysql/mariadb.conf.d/50-server.cnf; bind-address = 0.0.0.0
Webserver:
Weiteres:
System:
.bashrc, .bash_aliases, .nano_backups, .profile, .nanorc
crontab, services
Todo:
opencv in camera
Pfade anpassen
Aktuell habe ich pilight mit der letzten Version. Sollte es wieder Probleme geben, müsste ich auf die letzte bei mir funktionierende Version zurück setzen. Das geht mit sudo apt-mark hold pilight. Mehr Informationen im eigenen PiLight-Bereich
Inzwischen alles auf python3 umgestellt; Ordnerstruktur aufgeräumt und daher in fast jedem Programm Pfade anpassen müssen; Pilight nur noch Lokal laufen, und damit jeden pilight Aufruf um Server und Port erweitert. Bei der Umstellung auf Python3 muss man bei pah-mqtt aufpassen. Die Payload wird jetzt als ByteString geliefert. Das sieht man bei einem print an (b'text'). Damit wieder ein String daraus wird, habe ich einfach als erste Zeile jeweils msg.payload = msg.payload.decode(„utf-8“) eingebaut.
Snips manual setup:
sudo apt-get install nodejs (node –version v10.24.0)
sudo apt-get install npm (npm –version v10.24.0)
sudo apt-get install -y dirmngr
-
-
sudo apt-get update
-
-
sudo apt-get update (sollte jetzt gehen)
sudo apt install libgfortran3
sudo apt install libatlas3-base=3.10.3-8+rpi1
sudo apt install snips-asr (Wenn: E: Paket snips-asr kann nicht gefunden werden. sudo apt-get update)
libtts brauch man nicht so kompliziert installieren, es geht auch mit
sudo apt-get install libttspico0 libttspico-utils
Jetzt geht es in der normalen Installationsanleitung weiter
sudo apt-get install -y snips-platform-voice
sudo apt-get install -y snips-template snips-skill-server
aplay -l und arecord -l um devices raus zu bekommen
sudo nano /etc/asound.conf erzeugen und 'richtig' füllen (bei dem alten steht 1:0 und 2:0 drin)
alsamixer stellt die Lautstärke ein
sudo apt-get install snips-watch
sudo tail -f /var/log/syslog (gibt leider noch eine Menge Fehler die zu beheben sind)
den Ordner /var/lib/snips/skills/ komplett, und vom Ordner /usr/share/snips/ nur den Assistant-Ordner vom alten Laufwerk rüber kopiert
HEUREKA: Alle Services grün!
snips-watch -vvv (Überwachung) zeigt, dass er mich hört, nur noch nichts ausführen kann. Und Ton geht auch!
libatlas3-base wird ab jetzt bei updates zurückgehalten (!)
dpkg -l snips-*
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-=====================-============-============-===========================================================
ii snips-asr 0.64.0 armhf Snips Automatic Speech Recognition
un snips-asr-injection <keine> <keine> (keine Beschreibung vorhanden)
un snips-asr-service <keine> <keine> (keine Beschreibung vorhanden)
ii snips-audio-server 0.64.0 armhf Snips Audio Server command line interface
ii snips-dialogue 0.64.0 armhf Snips Dialogue Manager command line interface
ii snips-hotword 0.64.0 armhf Snips Hotword command line interface
ii snips-injection 0.64.0 armhf A CLI tool to manage words injection into Snips ASR models
un snips-kaldi <keine> <keine> (keine Beschreibung vorhanden)
ii snips-kaldi-atlas 0.26.1 armhf Snips/Kaldi C/C++ wrapper
ii snips-nlu 0.64.0 armhf Snips Natural Language Understanding command line interface
ii snips-platform-common 0.64.0 armhf Base package for configuration
ii snips-platform-voice 0.64.0 armhf Metapackage for snips-platform voice assistant
un snips-queries <keine> <keine> (keine Beschreibung vorhanden)
ii snips-skill-server 0.64.0 armhf Snips skill server command line interface
ii snips-template 0.64.0 armhf A CLI tool to work with templates for Snips actions
ii snips-tts 0.64.0 armhf Snips TTS
ii snips-watch 0.64.0 armhf CLI tool to monitor what the snips platform is doing
Backup am 20210603PiNeuBackup
Nach einem Restart stimmt in den Logfiles die Uhrzeit nicht. Das liegt daran, dass intern die Uhrzeit regelmäßig gespeichert wird, aber als UTC Zeit. Beim Neustart wird dann das hergenommen, bis ein NTP-Server befragt werden konnte. Lösung: Nicht die UTC-Zeit, sondern die 'richtige' speichern.
sudo nano /sbin/fake-hwclock
#date -u '+%Y-%m-%d %H:%M:%S' > $FILE
date '+%Y-%m-%d %H:%M:%S' > $FILE
Testen mit:
sudo fake-hwclock
cat fake-hwclock.data
Stand November 2022