Software
Konfiguration im Docker-Container
version: '3'
services:
magicmirror:
container_name: mm_sven
image: karsten13/magicmirror:latest
ports:
- "8080:8080"
volumes:
- /mnt/synology_docker/mm_sven/config:/opt/magic_mirror/config
- /mnt/synology_docker/mm_sven/modules:/opt/magic_mirror/modules
- /mnt/synology_docker/mm_sven/css:/opt/magic_mirror/css
restart: unless-stopped
command:
- npm
- run
- server
networks:
default:
ipv4_address: 192.168.178.239IP der MagicMirror App
networks:
default:
name: macvlan
external: true
Konfiguration des Raspberry Pi Zero
Zuerst habe ich versucht bei dem Raspberry Pi Zero das Standard-Raspberry-Image zu installieren und ihn dazu zu bringen die MagicMirror-Webseite bei Systemstart zu öffnen. Totaler Fehlschlag - das Teil ist einfach zu schwach. Gottseidank habe ich ein anderes Betriebssystem gefunden, was genau das tut, was ich brauche. Chili-PI. GroßeNun Liebe!- hab ich zuerst zumindest gedacht...
Links zum Image und zur Chili-Pi-Anleitung
https://github.com/jareware/chilipie-kiosk/releases/download/v3.0.0-rc4/chilipie-kiosk-3.0.0-rc4.img.tar.gz
https://github.com/jareware/chilipie-kiosk/blob/master/docs/first-boot.md
Erst mal mit ctrl+alt +F2 in den Raspi-Config-Modus und hier SSH aktivieren, Wifi aktivieren, Speicherplatz zuweisen und so weiter. Den Pi kann man dann mit sudo apt-get update / sudo apt-get upgrade auf den neuesten Stand bringen.
Da das Display hochkant eingebaut worden ist, muss die Anzeige noch gedreht werden. In der Anleitung steht zwar etwas anderes - aber bei mir hat das gereicht.
sudo nano /etc/X11/Xsession.d/45x11-rotate_screen
DISPLAY=:0 xrandr --output HDMI-1 --rotate left
Was allerdings nicht funktioniert hat ist das umschalten auf andere Webseiten (z.B. einen zweiten MagicMirror Container oder eine andere Webseite.
Dann bin ich aber noch über eine andere Distribution gestolpert: FullPageOS - die sollte das gleiche machen. Also mal ausprobiert..
FullPageOS
Setzen der URL
sudo nano /boot/fullpageos.txt
Hier einfach z.b. http://magicmirror.streb.home:8080 eintragen
Drehen des Bildschirms, da er hochkant eingebaut ist
sudo nano /etc/X11/Xsession.d/45x11-rotate_screen
DISPLAY=:0 xrandr --output HDMI-1 --rotate left
Bildschirm "dunkel" machen
xrandr --output HDMI-1 --off - das schaltet aber HDMI komplett ab und der Bildschirm wird halt blau - also besser:
sudo nano /home/pi/skripts/display-off.sh
xrandr --output HDMI-1 --brightness 0.0
sudo nano /home/pi/skripts/display-on.sh
xrandr --output HDMI-1 --brightness 1.0
-> dreht also nur die Helligkeit auf 0
weitere Skripte im Verzeichnis:
fullscreen (drückt F11)
reload_fullpageos_txt (schießt den Task ab und läd neu)
refresh (läd die Seite neu - man braucht aber manchmal einen F11 um wieder in Fullscreen zu kommen)
... und noch ein paar andere, die ich noch nicht ausprobiert habe.
Konfiguration vom ioBroker
Auf IOBroker das Simple-SSH Modul installieren
--> npm install simple-ssh
der IObroker bekommt 2 Dateien…Dateien angelegt… eine Spiegel_aus.js und eine Spiegel_an.js
Beispiel Spiegel_aus.js (analog dazu eine Spiegel_an.js erstellen)
var SSH = require('simple-ssh');
var ssh = new SSH({
host: 'chilipie-bad.bad-pi.streb.home',
user: 'pi',
pass: 'tollespasswort'
});
ssh.exec('/home/pi/skripts/display-off.sh',{
out: function(stdout) {
console.log(stdout);
}
}).start();
Zur Erläuterung:der Chili PI hat ein Monitor-einschalt und Monitor-ausschalt-Skript (/home/pi/display-off.sh und display-on.sh)
Das soll über einen Bewegungssensor im ioBroker geschaltet werden - das Display soll ja nicht den ganzen Tag an sein, sondern nur, wenn jemand im Bad rumstromert.
Das simple-SSH Modul was da installiert wurde plus die zwei .js Skripte befähigen den ioBroker dazu sich auf dem Chili Pi anzumelden und das lokale display-off/on Skript auszuführen.
Testweise habe ich den Pi an nen Monitor gehangen und das Ausführen des Skripts an meinen Bewegungsmelder im Büro gebunden (die exec Bausteine). Klappt prima.
