Control of a relay module using an Arduino Nano v3

Since I have to reset my work hardware or switch the voltage several times a day from home office, I built a small circuit from an old Arduino Nano v3 and a relay module that enables me to do this. Since I found it awkward to start the relay every time via the Arduino IDE with the serial monitor, I also wrote a GUI that can be executed using JAVA JDK for easy handling.

Hardware required

  • Arduino Nano v3
  • Relais Modul
  • RGB LED (not needed)
  • Single Wires
  • Solder stuff
  • 3D Printed case (not needed)


Tinkercad circuits Arduino Nano


Code for Arduino IDE which worked with the attached GUI.

#define LEDR 8     // red
#define LEDG 9     // green
#define LEDB 10    // blue
#define RELAIS 11  // relais

void setup() {

  // set LED's pin to output mode
  pinMode(LEDR, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDB, OUTPUT);
  pinMode(RELAIS, OUTPUT);
  Serial.begin(9600);          //start serial communication @9600 bps

void loop(){
  if(Serial.available()){      //id data is available to read

    char val =;

    if(val == 'b'){             //if b received
      digitalWrite(11, HIGH);   //turn on relais
      digitalWrite(10, HIGH);   //turn on green led
    if(val == 'f'){            //if f received
      digitalWrite(11, LOW);    //turn off all led
      digitalWrite(10, LOW);

Processing IDE GUI for MacOS

With Processing IDE it is easy to create a JAVA GUI for Arduino which is running on MAC OS X and Windows. The only think what you have to install additional is the latest JAVA SDK.

3D Printer Settings

Print Settings


Home Assistant Einstellungen zum senden einer Telegram Nachricht durch drücken des Ikea Shortcut Knopfes

Mit der IKEA Tradfri Serie hat es das schwedische Unternehmen in den Smart Home-Markt geschafft. Damit ist es für jedermann auf einfachste Weise möglich Lampen, Steckdose, Rollos oder Lautsprecher via App zu steuern oder sogar zu automatisieren. Laut Ikea ist die aktuellen Serie auch noch nicht am Ende seiner Entwicklung und wird stetig weiterentwickelt. Das Home Smart System soll im kommenden Jahr noch durch weitere Produkte ergänzt werden.

Was benötige ich alles für den Shortcut Button Telegram Alarm

Raspberry Pi einrichten

Wie man die SD Karte mit dem Home Assistant Operating System flashed findet man hier.
Nachdem die SD Karte geflashed, eingesteckt und der Raspberry Pi angeschaltet ist sollte die Weboberfläche des Home Assistant nach wenigen Minuten erreichbar sein. Das Einrichten und eine kurze Einleitung ist hier zu finden.

IKEA TRÅDFRI und Shortcut-Button einrichten

Das einrichten des IKEA Gateways und Shortcut-Buttons findet man im Netz und auf der Ikea Homepage zu genüge dadurch werde ich nicht genauer darauf eingehen. Falls Nachfragen bestehen dann einfach in die Kommentare schreiben.

Einrichten von Telegram unter Home Assistant

Um den Telegram Messenger in den Home Assistant einzubinden muss ein File auf dem Raspberry Pi angepasst werden. Das Anpassen des Files ist deutlich einfacher wenn man das Add-On “File Editor” installiert. Anschließend muss im “/config” Ordner die “configuration.yaml” Datei angepasst werden. Nach dem Anpassen einfach Speichern drücken. Wie man an den API_KEY und die eigene Chat ID kommt findet man hier.

# Beispiel configuration.yaml für den Telegram Bot
  - platform: polling 
    api_key: INSERTKEYHERE

# Beispiel configuration.yaml für den zu Benachrichtigten
   - name: SE_Message
     platform: telegram
     chat_id: FIRSTCHATID

# Wenn benötigt für den zweiten zu Benachrichtigten
   - name: ME_Message
     platform: telegram
     chat_id: SECONDCHATID 

Home Assistant Automatisierung

Unter Einstellungen -> Automatisierungen kann mittels “+ Automatisierung hinzufügen” eine neue Automation hinzugefügt werden. Einfach auf “Erstellen” und beim nächsten Fenster auf “Überspringen” drücken. Die einstellungen die ich Vorgenommen habe sind auf den nachfolgenden Bildern am besten zu sehen.


Jetzt nur noch speichern und nach dem drücken sollten die ersten Nachrichten aufm dem Handy eintreffen.

Nachträglich eine Anleitung zu schreiben ist immer schwer weil man meistens doch noch etwas vergisst zu notieren. Im falle von Fehlenden Informationen einfach eine Nachricht schreiben, ich versuche sie dann so schnell es geht zu beantworten. Vielleicht finde ich noch eine Möglichkeit einer Home Assistant Widget Darstellung via Scriptable.

WordPress as a data source with .json for Scriptable IOS App

Creating a WordPress site is no longer a specialty with the provided themes. The idea of using WordPress not only as a standard website, but also as a data source / database can be implemented by using a two-line PHP script. We need this script to upload a .json file in WP under media which is normally blocked.

function cc_mime_types($mimes) {
    $mimes['json'] = 'application/json';
    $mimes['svg'] = 'image/svg+xml';

    return $mimes;
add_filter('upload_mimes', 'cc_mime_types');

Installation of your own WordPress plugin

After creating the plugin (ZIP file which includes the php script) it can be installed via the dashboard.

  1. First click on > Plugins > Add new.
  2. Then click on the “Upload plugin” button at the top.
  3. Now select the ZIP file and confirm the “Install now” button.
  4. After the file has been uploaded, you can activate the plugin.

Create your own .json file

Code excerpt from the json file.

// example
  "englishIt": "Vocabulary for IT english",
  "createdAt":"2021-03-18 11:43:00.000000",
      "pos:": "000",
      "english": "Avatar",
      "german": "Benutzerbild",
      "meaning": "An icon or figure that represents .... ."
      "pos:": "001",
      "english": "Bug",
      "german": "Fehler",
      "meaning": "A defect or fault in a program ... ."

Get data source by Scriptable Widget

Collecting data source from .json file which is uploaded on WordPress media.

// example
async function getNewCasesData(){
  let url = "https://../../../englishForItVocs.json";
  let req = new Request(url);
  let apiResult = await req.loadJSON();

return apiResult;

Read out values from .json file.

// example
async function createWidget() {
  const list = new ListWidget();
  const vocEng = list.addText(apiData.vocs[0].english);
  const meaning = list.addText(apiData.vocs[0].meaning);

return list;

Funny things that I wrote directly on the iPhone while waiting for ….

Some play games on their mobile phones in the waiting room, others read magazines. I discovered this great Widget IOS app called Scriptable for myself to bridge my boredom while waiting.

Although JacaScript is not my usual programming language, you get used to it quickly. This is of course also due to the fact that at the beginning you can always copy and paste a lot from other developers. But some parts of my code are also completely rewritten.

Strava – Last Ride – Current Month

With the scriptable widget, the last Stava training data can be called up as well as an overview of the last month. A nice feature is scrolling through friends’ training sessions like in the short video. All you have to do is set up several Strava widgets and slide them on top of each other. To get more Informations about that nice Scriptable Widget, check my blog entry about Strava Scriptable Widget. A similar Widget I have also created for Komoot.

How to add the scriptable code to your phone, check the end of this page 🙂

English for IT Vocabulary

Honestly, how often do we check our cell phones every day to check the news or other things. Many even unlock their cell phones every minute out of boredom. Why shouldn’t you learn something from it?
With the Scriptable widget, vocabulary from the IT area is displayed at a predetermined time interval.

Source Code can be downloaded here:

Chuck Norris Facts

At the beginning I looked for free Json Api’s with the following result: is a free JSON API for hand curated Chuck Norris facts.

Chuck Norris Widget

Source Code can be downloaded here:

WordPress Latest Blog Post

Do you not feel like opening the page of your favorite blog every day to see if there is a new article. Then you can simply configure the wordpress blog script as a widget on your iPhone.

Source Code can be downloaded here:

How to add scriptable widget to the home screen

Regardless of which widget you have chosen, the setting procedure in iOS is always the same:

  1. First, add the copied code to a new script.
  2. With a tip on the controller icon at the very bottom in the left corner of the screen, you can give the script a meaningful name and select a suitable icon (glyph) for it.
  3. After that, switch to the widget screen by scrolling left on your home screens as long as possible.
  4. Tap and hold on this screen until the preset widgets start to wobble. You are now in edit mode. In this mode, tap on the plus sign in the upper left corner and scroll down to „Scriptable“ in the list that appears.
  5. Here you can still select the appearance and add the widget.
  6. Tap the Scriptable widget again while the icons are wobbling. Here you have the opportunity to select the appropriate script.
  7. To do this, tap on „Select“ in the „Script“ line, the app will show you all the scripts that have been created so far, which can now be selected. Then drag the widget to a location on the screen of your choice and exit edit mode.

Erstellung einer Anwendungssoftware zur Verwaltung eines Karteisystems

Neue Technologien begleiten, vereinfachen und bestimmen unseren Alltag, daher ist es kaum möglich diesen ohne elektronische Hilfsmittel zu bestreiten. Die im Handel erhältliche Hardware kann nicht ohne den Ablauf eines für sie explizit entwickelten Programms funktionieren. Aufgrund der vielen verschiedenen elektronischen Systemen gibt es unterschiedliche Programmiersprachen, um das optimale Ergebnis zu erzielen. Java ist eine der weltweit verbreitetsten und meist genutzten Programmiersprachen, da sie plattformunabhängig ist.

Bei einfachen oder kleinen Java-Programmen kann der gesamte Programmcode in die main()- Methode geschrieben werden, was jedoch nicht objektorientiert ist. Im Fall einer Programmerweiterung verliert man schnell den Überblick, wodurch vermehrt Fehler entstehen. Enthält der Programmcode lediglich eine main()-Methode, kann dieser in den meisten Fällen nicht erweitert werden ohne den gesamten Programmcode anzupassen. Bei der Verwendung objektorientierter Programmierung mit einzelnen Klassen wird die Fehleranalyse vereinfacht und bestehende Klassen können mit leichten Anpassungen für weitere Projekte verwendet werden.

Ziel und Aufbau der Arbeit
Ziel dieser Arbeit ist es eine Software – Anwendung mit der Programmiersprache Java für die Verwaltung eines Karteisystems zu entwickeln. Die anschließende Dokumentation stellt anhand einzelner Codeblöcke sowie UML-Diagramme einen detaillierten Überblick des entwickelten Programms dar.

Das Java-Projekt wird in objektorientierter Schreibweise, mit den vorgegebenen Klassen Kartei und Freund, programmiert. Über ein Mainprogramm soll es dem Benutzer erlaubt sein, einzelne Freunde dem Karteisystem hinzuzufügen. Die Methoden der Klasse Kartei, das Löschen von Freunden, Einträge ändern oder das Ausgeben der gesamten Telefonliste soll über das Mainprogramm verwaltet werden. Auf die einzelnen Methoden der Klassen wird im nachfolgenden Teil der Projektarbeit genauer eingegangen.

Mögliche Fehler die bei der Programmierung der Klassen auftreten sollen Anwender gerecht behandelt und dokumentiert werden.
Des Weiteren sollen Vorschläge zur strukturellen Verbesserung und der Erweiterung des Programmes ausgearbeitet werden.

Green Logistics – Ein Konzept zur Nachhaltigkeit im Bereich der Logistik

Einführung und Problemstellung
Dank der Globalisierung ist eine moderne und sich schnell anpassende Logistik nicht mehr weg- zudenken, sowohl in privaten als auch in wirtschaftlichen Bereichen. Überall wo Güter und Waren transportiert, zwischengelagert oder sogar direkt weiterverarbeitet werden ist eine funktionierende und adaptive Logistik gefragt.

Durch die zahlreichen Onlineshops, sowie die industrielle Massenproduktion sollen Bestellungen zur richtigen Zeit am richtigen Ort sein und das in exakter Menge, in gewünschtem Zustand und meist so schnell und billig wie möglich. Dies macht den gesamten Bereich der Logistik zu einer täglichen Herausforderung.

Über die gesamte Wertschöpfungskette hinweg arbeiten rund 3 Millionen Menschen in den unterschiedlichsten Bereichen. Würde man die Logistik als autonome Bran- che betrachten, wäre sie in Deutschland direkt hinter dem Handel und der Automobilindustrie angesiedelt. Das Verkehrsministerium in Deutschland setzt sich dafür ein, dass die Güter mög- lichst kostensparend, leise und umweltfreundlich an ihren Bestimmungsort gebracht werden. Da- her wollen sie, dass die meisten Güter und Waren über das Schienennetz transportiert werden, um den Verkehrsträger Nummer eins die Straße zu entlasten.

Jährlich werden aufgrund der geografischen Lage Deutschlands 4,7 Milliarden Tonnen Waren über Deutschlands Straßen, Schienen und Wasserstraßen bewegt, wodurch Deutschland zu den wichtigsten Exportnationen zählt.

Was die Logistikbranche betrifft stellt die Stärkung der Nachhaltigkeit eine der größten Heraus- forderungen dar. Laut Vorgaben der Bundesregierung soll bis zum Jahr 2030, im Vergleich zu 2005 die Reduktion der Luftschadstoffe um 45% erreicht werden. Dies führt dazu, dass weiterhin Maßnahmen im Bereich der Logistik getroffen und umgesetzt werden. Deutschland benötigt eine umweltfreundliche und moderne Logistik, denn sie bewegt die Wirtschaft. 

Zielsetzung und Aufbau der Arbeit
Ziel dieser Arbeit ist es, dem Leser einen Überblick in den Bereichen Logistik und Nachhaltigkeit zu verschaffen. Durch eine anschließende Zusammenführung werden die konkreten Ansatzpunkte der nachhaltigen grünen Logistik erläutert und an einem verständlichen Beispiel dargestellt.

Die vorliegende Arbeit unterteilt sich in insgesamt fünf Kapitel. Nach der Einleitung werden zu- nächst die Grundlagen des Themas erläutert. Dabei wird unabhängig voneinander auf die einzel- nen Bereiche Logistik und Nachhaltigkeit eingegangen, welche Hauptbestandteile der Arbeit sind. In Kapitel drei liegt das Wesentliche auf den Aufgaben und Zielen einer modernen Logistik mit dem Schwerpunkt auf den einzelnen Haupteinsatzgebieten.

Im nachfolgenden vierten Kapitel wird auf die Nachhaltigkeit in der Logistik genauer eingegan- gen. Dies wird anhand eines einfachen Transportlogistik Beispiels der Firma DHL aufgezeigt. Schlussendlich wird im letzten Kapitel ein Fazit für den Leser gezogen. Ein in die Zukunft gerich- teter Ausblick schließt die Arbeit ab.

Handlungsweise bei der Einführung eines Warenwirtschaftssystems in einem mittelständischen Großhandel

Im heutigen elektronischen Zeitalter trägt im Einzel- und Großhandel die schnelle Verfügbarkeit von Informationen zur Wettbewerbsfähigkeit und zu einem Erfolgsfaktor bei. Daher setzen Unternehmen bei der Steuerung und Planung von Warenflüssen auf EDV- gestützte Systeme. Solche elektronischen Lösungen werden unter dem Begriff „Warenwirtschaftssystem“ (WWS) aufgeführt. Die meisten Unternehmen bevorzugen allerdings ihre altbewährten Methoden, da eine Umstellung auf ein modernes Warenwirtschaftssystem zu Beginn kostenintensiv ist. Daher werden bestehende Funktionen erweitert oder an die neuen Anforderungen angepasst. Durch diese Anpassungen oder Erweiterungen entstehen Fehlerquellen, die auf eine unzureichende Kommunikationsfähigkeit der verschiedenen Systeme untereinander zurückzuführen sind. Bei der manuellen Eingabe wichtiger Daten in ein computergestütztes System treten häufig Fehler auf, die menschlich sind. Ein weiterer negativer Aspekt ist der Zeitaufwand, der ohne ein abgestimmtes Warenwirtschaftssystem entsteht. Außerdem müssen bei der Recherche von einzelnen Informationen, wie beispielsweise dem aktuellen Lagerbestand oder den neusten Verkaufszahlen, oftmals verschiedene Datenquellen durchsucht werden.

Vielen Unternehmen fehlt es an der ausführlichen Beratung welcher Lösungsansatz für die jeweilige Firma der Beste wäre, da die eigenen Lösungen nicht dafür vorgesehen sind die Aufgabe eines Warenwirtschaftssystems zu übernehmen.

Ziel und Aufgabe der Arbeit
Das Ziel dieser Projektarbeit ist es, die Grundlagen, Strukturen und Arten eines Warenwirtschaftssystems zu erläutern. Anhand eines Beispielunternehmens wird ein einfacher Lösungsansatz zur Einführung eines Warenwirtschaftssystems gezeigt.
Der Schwerpunkt dieser Arbeit liegt auf dem Auswahl-, Beschaffungs- und Einführungsvorgang eines Warenwirtschaftssystems in einem mittelständischen Großhandel für Unterhaltungselektronik.

In dieser Projektarbeit wird darauf aufmerksam gemacht, dass in vielen mittelständischen Unternehmen auf eigens entwickelte und ergänzte Systeme gesetzt wird. Diese Unternehmen sehen hauptsächlich den relativ hohen Investitionseinsatz, welcher sich jedoch mittelfristig durch Kosten- und Zeitersparnis und der Angleichung von Datenbeständen amortisiert.

Erstellen eines Testplanes für das Unternehmen S-W-E

Softwarequalität begegnet uns tagtäglich in unserem Alltag. Wir sind umgeben von Programmen und softwaregesteuerten Geräten denen wir teilweise unser Leben anvertrauen. Ein Auto besitzt als Beispiel Fahrerassistenzsysteme die Beschleunigungs- und Bremsvorgänge steuern, auf deren Funktionalität wir uns verlassen. Gerade von der Automobilindustrie wird des Öfteren in den Medien oder Fachzeitschriften berichtet, dass zum Beispiel Softwarepannen von Steuergeräten, Navigationssystemen oder dem Motormanagement auftreten. Durch fehlerhafte Software entstehen hohe Kosten, Verärgerungen von Kunden treten auf oder ganze Rückrufaktionen werden gestartet. Programme können aber auch leicht zu bedienen sein und zuverlässig laufen. Solche Programme haben zuvor ein ausgearbeitetes Software-Qualitäts-Konzept durchlaufen, welches auf die jeweilige Software angepasst wurde.

Ziel und Aufbau der Arbeit
Ziel dieser Arbeit ist es einen Testplan für eine Individualsoftware der Firma S-W-E zu erstellen. Mittels dieser Software kann die Firma einen Mehraufwand von 50000 Euro im Jahr einsparen. Die Voraussetzung dafür ist, dass durch die erstellten Testfälle eine ausreichende Überdeckung der Software gewährleistet ist und diese im Betrieb fehlerfrei funktioniert.
Im vorliegenden Assignment wird die systematische Vorgehensweise zur Definierung von Testfällen, welche eine Anweisungs-, Zweig- und Pfadüberdeckung besitzen sollen, dokumentiert.
Dabei soll darauf geachtet werden, welche Testfälle für welche Überdeckung notwendig sind. Um die Testfälle zu erstellen, sollte sich ein passender Kontrollfluss, der sich im Programmtext enthält, überlegt werden.
Anschließend ist zu zeigen, ob eine Funktions- und Ausgabenüberdeckung für einen Black-Box- Test mittels der bereits erstellten Testfälle erreicht wird.
Zum Abschluss soll dargestellt werden, welche Integrations- und Systemtests für das Projekt erforderlich sind.

Aufgabengebiet und Einsatz der Computer-Forensik im betrieblichen Umfeld

Einen Tag ohne digitale Unterstützungen, sei es privat oder beruflich, kann man sich kaum noch vorstellen. Mittels Smartphone, Tablet oder PC tauchen wir täglich in die digitale Welt ein und hinterlassen dort unsere Spuren. Die wenigsten machen sich dabei Gedanken über die Sicherheit oder die Publikation ihrer privaten Daten.
Aufgrund dessen stellt die Sicherheit der Informationstechnik ein wachsendes Problem dar. Organisationen wie Industriezweige, Banken, Krankenhäuser, Polizei, Öffentliche Einrichtungen und viele mehr, nutzen solche digitalen Dienste für den reibungslosen Ablauf von Geschäfts- und Arbeitsprozessen. Angewiesen auf die Informationstechnologie, werden die oben genannten Organisationen zu einem idealen Ziel für Angreifer. Im Jahr 2015 wurde auf 58% der Unternehmensrechner mindestens ein Malware-Infizierungsversuch verzeichnet.
Angesichts der zahlreichen Angriffe auf Unternehmen, werden Forensiker mit der Ermittlung digitaler Spuren beauftragt, bevor die Polizei eingeschaltet wird.
Meist befinden sich die Täter in den eigenen Reihen, die sich berechtigterweise im selben Netzwerk befinden. Tatmotive reichen hierbei von Neid, Neugierde, Erpressung, Verkauf von Daten oder einfache Delikte wie Kollegen schlecht dastehen zu lassen.

Ziel und Aufgabe der Arbeit
Ziel dieser Projektarbeit, ist das Aufgabengebiet und den Einsatz der Computerforensik im betrieblichen Umfeld darzustellen. Dazu werden die Grundlagen der Computerforensik, mit Hilfe der Definition, verschiedenen Vorgehensweisen und den Anforderungen der forensischen Untersuchung aufgeführt. Anhand eines ausgewählten Szenarios, wird gezeigt, wie man unter Anwendung des BSI Leitfaden und der Durchführung einer Post-mortem-Analyse, den mutmaßlichen Täter überführt. Des Weiteren werden die erfolgreich gesicherten Datenquellen aufgelistet, die im Falle eines Prozesses, als Beweismittel dienen. Eine Überarbeitung und Verbesserung des Sicherheitskonzeptes, wird für die Firma vorgeschlagen und teilweise durchgeführt, damit solch ein Vorfall in Zukunft nicht mehr auftritt.

NoSQL-Datenbanken – Aufbau, Möglichkeiten und Grenzen

Das World Wide Web ist ein Bereich in dem Entwicklungen schnell überholt sind. Das Internet ist einer der rasantesten Bereiche was die Veränderung betrifft. Tagtäglich entstehen neue Probleme für die schnellstmöglich eine Lösung gefunden werden muss, um den Wachstum und die Weiterentwicklung nicht zu bremsen.
Ein besonders wichtiges Thema, welches auch zukünftig immer mehr in den Vordergrund rückt, ist das drastisch ansteigende Datenvolumen. Das Analyseunternehmen IDC prognostiziert, dass der voraussichtliche Umfang der weltweiten Datensphäre im Jahr 2025 auf kolossale 163 Zettabyte (ZB) anwachsen wird. Das bedeutet eine Verzehnfachung der Datenmenge gegenüber dem Jahr 2016. 
Ein grundlegendes Problem von relationalen Datenbanken, die große Datenmengen indizieren liegt darin, dass sie bei steigendem Mengenaufkommen zwangsläufig immer langsamer werden, was für Firmen ein größeres Problem darstellt, da sie eine schnelle Verfügbarkeit von Daten benötigen. Dadurch, dass Daten in unterschiedlichsten Formaten vorliegen, passen diese auf den ersten Blick nicht in das relationale Raster der SQL-Datenbanken. Eine Umstellung auf NoSQL- Datenbanken kann hier Abhilfe schaffen, da diese eine höhere Geschwindigkeit aufweisen und keinerlei Struktur unterliegen.

Ziel und Aufgabe der Arbeit
Die Datenbankwelt reorganisiert sich derzeit stark und dass trotz der damaligen Datenexplosion durch das WEB2.0. In der Informatik ist NoSQL einer der Bereiche, der sich derzeit am rasantesten entwickelt. Dadurch ist es besonders schwer Bücher zu diesem Thema zu finden, da sich die API des Produktes höchstwahrscheinlich bis zum Abschluss eines Kapitels verändert hat. Aus diesem Grund wird in dieser Projektarbeit auch auf die allgemeinen Grundlagen Theorien und Techniken von NoSQL-Datenbanken eingegangen.
Ziel dieser Arbeit ist es, den praktischen Einsatz von NoSQL-Systemen zu erläutern, deren grundlegenden Aufbau darzustellen und die Möglichkeiten sowie Grenzen anhand eines jeweiligen Konzeptes aufzuzeigen. Zu Beginn der Projektarbeit soll eine Einführung in die Grundlagen von NoSQL Datenbanken gegeben werden, um die für die anschließende Ausarbeitung notwendigen Begriffe verständlich zu machen. Nachdem der Begriff NoSQL genauer erklärt wurde, werden grundlegende Konzepte vorgestellt, welche im NoSQL-Umfeld eingesetzt werden. Im weiteren Verlauf werden die vier verbreitetsten Datenbanktypen erläutert und jeweils ein Vertreter erörtert.