ESP8266 NodeMCU Flashing

Um eine neue Firmware oder ein neue Software zu installieren ist es notwendig den ESP8266 zu flashen.

Download der neuen Firmware

Als erstes ja nach Bezugsquelle die neue Firmware downloaden. Es handelt sich hierbei um eine bin Datei.

Im nächsten Schritt benötigen wir ein Tool um die Firmware per USB auf den ESP8266 hochzuladen. Dafür verwenden wir esptool unter Linux.

    git clone https://github.com/themadinventor/esptool.git

Nach dem Download wechseln wir in den Ordner esptool und fuehren folgenden Befehl aus:

    sudo python esptool.py --port /dev/ttyUSB0  write_flash 0x00000 neue_Firmware.bin

Fertig. Wenn alles funktioniert hat, gibt es noch eine kleine Übersicht.

KODI auf einem Raspberry Pi 3 installieren

Das neu aufgesetzte

Erst mal alle Partitionen schreiben und die SD Karte vorbereiten für die BOOT ISO.

Nun noch mal schnell prüfen was Linux mit der SD Karte angestellt hat. Infos zu dem Medium gibt es mit lsblk.

Somit haben wir auch schon mal die Bezeichnung der SD Karte /dev/mmcblk0.

Linux / Kodi OS

Als Plattform für KODI verwende ich LibreELEC. Hier findet man unter Downloads einen PullDown Menü zum Auswahlen des PI Modelles.

Als erstes wird jedoch der LibreELEC USB-SD Creator-App fuer Linux geladen.

Nach dem Download muss man natürlich das Programm erst ausführbar machen.

Danach kann man es per ./ starten.

Nun erklärt sich fast alles von selbst. Version wählen, Herunterladen klicken und das Image auf die SD Karte schreiben.

Nach kurzer Zeit sollte sich die neu geschrieben SD melden.

TVHeadEnd konfigurieren

Zum Konfigurieren von TVHeadEnd rufen wir das WebFrontend auf.

http://<IP DES RASPBERRY>:9981

Beim ersten Aufruf startet ein Wizard zum Setup. Diesen nutzen wir an der stelle.

Unter Web interface wählen wir die Sprache „German“ . Ich verwende bei EPG Language 1 ebenfalls „German“.

Unter Admin und User trage ich in diesem Moment nicht sein und klicke auf Save und Next. Eine Admin Kennung und ein Passwort wurde bereits bei der Installation angegeben.

Im Bereich Network settings wähle ich bei Network 2 im PullDown Menu „DVB-S Network“. Dies gibt der Wizard vor da er bereits meinen SAT IP Server im Netzwerk erkannt hat.

„Muxes“ wählen

Im nachfolgendem Dialog wird nun das entsprechende „Mux“ ausgewählt. In meinem Fall durch die Ausrichtung der Satellitenschüssel 19,2 Ost Astra.

Nach klicken auf Save & Next startet der Scan Vorgang.

Anschließend aktiviere ich noch die nachfolgenden Kontrollkästchen.

Hiermit ist das Wizard beendet.

In meinem Beispiel (DVB-S2 Empfang) finden nun leider die Muxes Einstellung leider keinen Transponter. Dies scheint an einer falsch konigurierten MUX Vorlage zu liegen.

Markiert man nun den Mux und klickt auf Edit/Bearbeiten. Kann man auch erkennen warum keine Trasponter gefunden werden. Hier sind falsche Angaben vorgegeben.

Hier nehme ich mit meiner Konfiguration folgende Abänderung vor.

  • Frequency: 11953500
  • Symbol rate: 27500000
  • FEC: 3/4
  • Polarisation: H“
  • Modulation: QPSK

Jetzt noch Position 1 bis 4 meines Tuner #1 unter Configuration/DVB Inputs/TV adapters aktivieren.



Und siehe da. Es Muxst!

Nun können noch unter Service bequem per WebFrontend die Sender ausgewählt werden.

TVHeadEnd auf dem Raspberry installieren

TVHeadEnd ist ein TV Streaming Server fuer Linux Systeme. Er unterstützt DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV  sowie Analoges Video. Alle Einstellungen werden über ein Webinterface vorgenommen. Die bereit gestellten Daten können dann beispielsweise mit Kodi auf ein TV Gerät gebracht werden.

In diesem Beispiel werden die DVB-S2 Signale eines Megasat IP Server 3 eingebunden und für KODI oder VLC aufbereitet.

PI vorbereiten zur Installation

Wie immer bei einem Linux System ist es sinnvoll zu beginn das System auf den aktuellen Stand zu bringen.

sudo apt-get update
sudo apt-get upgrade

TVHeadEnd installieren

Die Installation ist denkbar einfach.

sudo apt-get install tvheadend

Bestaetigen Sie nun den Download der Pakete mit „Y“. Im Bereich der TVHeadEnd Konfiguration werden Sie noch nach einem Admin Namen und einem Passwort gefragt. Geben Sie beides ein und bestätigen Sie dies.
Nach diesen Angaben läuft die Installation noch weiter.

TVHeadEnd testen

Ist die Installation abgeschlossen finden Sie das Webfront von TVHeadEnd unter folgendem Link:

http://<IP DES RASPBERRY>:9981

Die jeweilige IP des PI bekommen Sie über den Befehl > ifconfig

Weiter geht es mit der Konfiguration von TVHeadEnd.

E-Mails versenden mit sSMTP

Es gib immer mal wieder die Situation mit einem Linux System E-Mails zu versenden. Das können zu hohe Temperaturen der Festplatte, störungen von Cronjob oder eine IP, die aufgrund von falschen Login versuchen auffällt. Natürlich ist dieser Service auch bei anderen Diensten wie FHEM interessant. 

Man könnte sich eine E-Mail senden lassen wenn ein bestimmter Bewegungsmelder aktiv wird.  Oder die Temperatur der Gefriertruhe steigt wegen einem defekt. Hier kann auch sSMTP einspringen und eine E-Mail versenden. Die Einsatzmöglichkeiten sind unglaublich vielfältig.

Und diese Möglichkeiten gibt es mit sSMTP mit relativ wenig Aufwand.

Installation von sSMTP

Wie immer, wer sein Linux liebt der updatet als erstes 🙂

apt-get update && apt-get upgrade -V

Nun kann man die beiden Pakete von sSMTP installieren

apt-get install ssmtp mailutils

Nun wird als erster Schritt die generelle Einrichtung von sSMTP vorgenommen

nano /etc/ssmtp/ssmtp.conf

Gebt in diesem File euer E-Mail Konto sowie die entsprechenden Ports eures E-Mail Anbieters an.

root=DEINE@EMAIL.DE
mailhub=DEIN-EMAIL.SERVER.DE:PORT(ist bei jedem Anbieter anders!)
hostname=localhost
UseTLS=Yes
UseSTARTTLS=Yes
AuthUser=DEIN-EMAIL-LOGIN-BENUTZER
AuthPass=DEIN-EMAIL-PASSWORT
FromLineOverride=yes

Wer mehr zu den einzelnen Eintragen wissen möchte kann sich gerne mal die man von sSMTP ansehen.  Linux versteht man nur durch lesen :).

man ssmtp

Nun müssen wir Linux nur noch mitteilen welche Benutzer eigentlich sSMTP nutzen dürfen.

Dazu öffnen wir das Benutzer File des sSMTP

nano /etc/ssmtp/revaliases

In diesem File müssen alle Benutzer des jeweiligen Linux System eingetragen werden die gerne eine Email versenden möchten. Bitte achtet drauf auch hier die richtigen PORTs mit anzugeben.

root:DEINE@EMAIL-ADRESSE.DE:smtp.EMAIL-ADRESSE.de:587 (Je nach Anbeiter)
www-data:WWW-USER@SEINE-EMAIL.DE:smtp.IRGENDWAS.DE:PORT

Zum Schluss schicken wir nun mal eine Test E-Mail 😀

echo "Mail-Inhalt" | mail -s "Betreff" EMAIL@AN-DIE-GESENDET-WERDEN-SOLL.DE

So das waren die Grundlagen. Nun ist dein Linux System in der Lage E-Mails zu versenden. War ja eigentlich gar nicht so viel Aufwand!

Arduino Relaiskarte per MQTT Befehl steuern

Die Hausautomatisierung benötigt sehr viele Aktoren. In diesem Bereich gibt es sehr viele Produkte der großen Hersteller. Leider auch entsprechend teuer. Hier möchte ich ein Projekt vorstellen das über einen Arduino (WeMos D1) eine Relaiskarte ansteuert. zur Steuerung verwende ich das MQTT Protokoll. Natürlich alles per WiFi. Es wird nur noch die Versorgungsspannung und der Laststromkreis benötig.

5 Minuten Probeaufbau

Gesteuert wird nun das Relais A mit folgendem Befehl:

Ebenso einfach geht das Aus schalten des Relais

Relais B reagiert folglich auf

Das Relais ist nun im kompletten Heimnetzwerk erreichbar.

Code Snipes

BASH Scripting

Inhaltsverzeichnis

Bevor man die ersten BASH Scripte erstellt sollte man sich die Position von BASH ausgeben lassen. Das geht mit folgendem Befehl.

which bash

Die erste Zeile eines BASH Scripts

Damit das Betriebssystem bei Programmstart alle Interpreten zuweisen kann, wird in der ersten Zeile der Pfad zum BASH Interpreter angegeben. Diese Angabe ist kein Teil des Scriptes. Muss aber angegeben werden.

#!/bin/bash

Kommentare – kann es nie zu wenig geben

Um die Funktion und Arbeitsweise eines Scripts zu erläutern ist es immer Sinnvoll Kommentare anzugeben.  Bei BASH werden alle Zeichen die in einer Zeile auf ein # folgen ignoriert.

# Das waere die erste Kommentarzeile
# 2. Zeile die vom Interpreter uebersprungen wird.


Variablen

Wie in jeder Programmiersprache bietet auch BASH die Möglichkeit Variablen anzulegen. Diese dienen auch bei BASH dazu werte später immer wieder zu verwenden.
Um im Script eine Variable verwenden zu können muss diese nicht extra deklariert werden. Im Allgemeinen reicht es direkt einen Wert zuzuweisen.

NeueVAR = Test

Die Verwendung derVariablen erfolgt im Script mit einem $.

DLNA! Oder Videos im ganzen Netzwerk Zuhause

Für alle digitalen Endgeräte die DLNA unterstutzen stellt minidlna den passenden Server zur verfügung. DLNA/UPnP Gerate erkennt der Medienserver automatisch. Der Inhalt des Medienservers kann auf Ihnen als Stream abgerufen werden.

Bevor man allerdings schauen kann muss Installiert werden.

sudo apt-get install minidlna

Als nächster Schritt muss die Konfiguration des minidlna geändert werden. Hierzu muss das File mit einem Editor als root geöffnet werden.

sudo nano /etc/minidlna.conf

Nachfolgende Punkte sind zu ändern:

media_dir=V,/path/to/media
db_dir=/var/lib/minidlna
log_dir=/var/log
log_level=warn
friendly_name=MiniDLNA
inotify=yes
  • media_dir: Das V steht für Video, A fuer Audio und P fuer Bilder gefolgt vom entsprechendem Pfad.
  • db_- und log_dir immer setzen um Fehler leichter zu finden.
  • log_level auf warn lassen. kann recht Hilfreich sein.
  • inotify scannt automatisch Änderungen. Dieser Befehl dient dazu neue Dateien einzupflegen.
  • friendly_name ist der Name des DLNA Servers im Netzwerk.

Nun werden noch die Maximalen Beobachter erhöht. (max_user_watches).

gksudo gedit /etc/sysctl.conf

Wie immer an das Ende springen und folgende Zeile hinzufuegen:

fs.inotify.max_user_watches=1048576

Nun speichern! Mit dem nächsten Befehl werden die Änderungen wirksam gemacht

sudo sysctl -p

Nun noch den Dienst RE-Starten. (reload)

sudo /etc/init.d/minidlna force-reload