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.

Canon MF4150 unter Linux

Da wir gerade einen Canon MF4150 in die Finger bekommen haben, ein kurzes Tutorial zum Einrichten.

Canon MF4150

Mit den nachfolgenden Treibern konnte der Drucker / Scanner bei uns zum laufen gebracht werden,

Treiber downloaden

Link> Funktionierender Linux Treiber

Wir benutzen die Verion v3.10 vom 1.12.2015 – UFRII/UFRII LT Druckertreiber für Linux v3.10

Nach dem Entpacken entweder das 32 Bit oder 64 Bit .deb Paket installieren. Hierzu kann die install.sh genutzt werden,

Wenn Cups installiert findet man den entsprechenden Drucker in der Ansicht unter http://localhost:631/.

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!

WeMos D1 per WiFI Daten in mySQL schreiben

Mit dem nachfolgendem Sketch ist der WeMos D1 in der Lage Messdaten in eine mySQL Datenbank zu senden.

Das eigentliche schreiben der Daten erfolgt mit dem Aufrufen einer PHP Datei in Form eines GET Befehls.

<?php
/*
 
Daten per GET in eine mySQL Datenbank schrieben
 
by Tobias Guggenberger
guggenberber.me
 
*/
 
// POD Verbindung zur Datenbank
$datenbank_name 		= "NAME_DATENBANK";
$datenbank_username 	= "USER";
$datenbank_passwort		= "PASS";
 
// Datenbankverbindung aufbauen
$pdo = new PDO('mysql:host=localhost;dbname='.$datenbank_name, $datenbank_username, $datenbank_passwort);
 
// Neuen Datensatz schreiben
$neuer_datensatz = array();
$neuer_datensatz['WERT1'] = time();
$neuer_datensatz['WERT2'] = $_GET['temperatur'];
$neuer_datensatz['WERT3'] = $_GET['sensor'];
$statement = $pdo->prepare("INSERT INTO TABELLE (wert1, wert2, wert3) VALUES (:wert1, :wert2, :wert3)");
$statement->execute($neuer_datensatz);
?>

Der passende Sketch sieht so aus:

 
#include <ESP8266WiFi.h>
const char* ssid     = "SSID";      // SSID
const char* password = "PASS";      // Password
const char* host = "SERVER_DB";  // IP ServeP
const int   port = 80;            // Port
const int   watchdog = 5000;        // Schreibefruenz
unsigned long previousMillis = millis(); 
 
void setup() {
  Serial.begin(115200);
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}
 
void loop() {
  delay(5000);  
    unsigned long currentMillis = millis();
 
  if ( currentMillis - previousMillis > watchdog ) {
    previousMillis = currentMillis;
    WiFiClient client;
 
    if (!client.connect(host, port)) {
      Serial.println("connection failed");
      return;
    }
 
    String url = "/arduino/FILE_zum-SCHREIBEN.php?wert1=wer1&usw";
    url += String(millis());
    url += "&ip=";
    url += WiFi.localIP().toString();
 
    // Envoi la requete au serveur - This will send the request to the server
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
    unsigned long timeout = millis();
    while (client.available() == 0) {
      if (millis() - timeout > 5000) {
        Serial.println(">>> Client Timeout !");
        client.stop();
        return;
      }
    }
      while(client.available()){
      String line = client.readStringUntil('\r');
      Serial.print(line);
    }
  }
}

Projektdatein zum Download

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 $.