Mit der Hilfe eines ESP8266 und eines einfachen IR Modules kann am Stromzähler der aktuelle Stromverbrauch ausgelesen werden ohne das man den Stromzähler PIN benötigt. Die ausgelesenen Werte können dann mittels Home Assistant HASSIO grafisch dargestellt werden.

Benötigte Hardware

Benötigte Software


eHz Elektronischer Haushaltszähler

eHz Digitaler Stromzähler (ESP8266)

Das Gehäuse aus dem 3D Drucker passt beim eHz Elektronischen Haushaltszähler. Mit zwei Magneten wird das Gehäuse am Zähler befestigt da der Stromzähler Eigentum des Netzbetreibers ist!

Die rechten beiden IR Dioden werden beim IR Lese-Schreibekopf verwendet (Volkszähler). Dabei wird permanent zwischen den Unterschiedlichen zur verfügung stehenden Zählerständen geschalten und diese ausgelesen (PIN muss beim jeweiligen Energiekonzern angefragt werden).

In unserem Fall benutzen wir die mittlere IR-Diode zum auslesen des aktuellen Stromverbrauchs am Zähler.

ESP Home config.yaml

  name: strom
  platform: ESP8266
  board: nodemcuv2
# Sensor configuration
  - platform: pulse_counter
    pin: D5
    name: "Energieverbrauch"
    unit_of_measurement: 'W'
    update_interval: 60s
      - multiply: 6
    accuracy_decimals: 0
    icon: 'mdi:flash'
    id: energieverbrauch_w
  - platform: total_daily_energy
     name: "Tagesverbrauch"
     power_id: energieverbrauch_w

  - platform: sntp
    id: my_time

# Enable logging

# Enable Home Assistant API

  password: „xxxxxxxxxx“

  ssid: „xxxxxxxxxx“
  password: „xxxxxxxxxx“


Home Assistant grafische Darstellung

ESP Home Logs

INFO Reading configuration /config/esphome/strom.yaml...
INFO Detected timezone 'CET' with UTC offset 1 and daylight saving time from 27 March 02:00:00 to 30 October 03:00:00
INFO Starting log output from strom.local using esphome API
INFO Successfully connected to strom.local
[19:32:31][I][app:102]: ESPHome version 2021.9.3 compiled on Oct 10 2021, 21:35:03
[19:32:31][C][wifi:501]: WiFi:
[19:32:31][C][wifi:361]:   SSID: 'xxxxxxxxxxxxxxx'[redacted]
[19:32:31][C][wifi:362]:   IP Address:
[19:32:31][C][wifi:364]:   BSSID: xx:xx:xx:xx:xx:xx[redacted]
[19:32:31][C][wifi:365]:   Hostname: 'strom'
[19:32:31][C][wifi:369]:   Signal strength: -51 dB ▂▄▆█
[19:32:31][C][wifi:373]:   Channel: 6
[19:32:31][C][wifi:374]:   Subnet:
[19:32:31][C][wifi:375]:   Gateway:
[19:32:31][C][wifi:376]:   DNS1:
[19:32:31][C][wifi:377]:   DNS2: (IP unset)
[19:32:31][C][logger:193]: Logger:
[19:32:31][C][logger:194]:   Level: DEBUG
[19:32:31][C][logger:195]:   Log Baud Rate: 115200
[19:32:31][C][logger:196]:   Hardware UART: UART0
[19:32:31][C][pulse_counter:147]: Pulse Counter 'Energieverbrauch'
[19:32:31][C][pulse_counter:147]:   State Class: 'measurement'
[19:32:31][C][pulse_counter:147]:   Unit of Measurement: 'W'
[19:32:31][C][pulse_counter:147]:   Accuracy Decimals: 0
[19:32:31][C][pulse_counter:147]:   Icon: 'mdi:flash'
[19:32:31][C][pulse_counter:148]:   Pin: GPIO14 (Mode: INPUT)
[19:32:31][C][pulse_counter:149]:   Rising Edge: INCREMENT
[19:32:31][C][pulse_counter:150]:   Falling Edge: DISABLE
[19:32:31][C][pulse_counter:151]:   Filtering pulses shorter than 13 µs
[19:32:31][C][pulse_counter:152]:   Update Interval: 60.0s
[19:32:31][C][total_daily_energy:024]: Total Daily Energy 'Tagesverbrauch'
[19:32:31][C][total_daily_energy:024]:   Device Class: 'energy'
[19:32:31][C][total_daily_energy:024]:   State Class: 'total_increasing'
[19:32:31][C][total_daily_energy:024]:   Unit of Measurement: 'Wh'
[19:32:31][C][total_daily_energy:024]:   Accuracy Decimals: 2
[19:32:31][C][total_daily_energy:024]:   Icon: 'mdi:flash'
[19:32:31][C][captive_portal:148]: Captive Portal:
[19:32:31][C][ota:029]: Over-The-Air Updates:
[19:32:31][C][ota:030]:   Address: strom.local:8266
[19:32:31][C][ota:032]:   Using Password.
[19:32:31][C][api:135]: API Server:
[19:32:31][C][api:136]:   Address: strom.local:6053
[19:32:31][C][api:140]:   Using noise encryption: NO
[19:32:31][C][sntp:044]: SNTP Time:
[19:32:31][C][sntp:045]:   Server 1: ''
[19:32:31][C][sntp:046]:   Server 2: ''
[19:32:31][C][sntp:047]:   Server 3: ''
[19:32:31][C][sntp:048]:   Timezone: 'CET-1CEST-2,M3.4.0/2,M10.5.0/3'
[19:32:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 68.00 pulses/min
[19:32:32][D][sensor:121]: 'Energieverbrauch': Sending state 408.00000 W with 0 decimals of accuracy
[19:32:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6002.70361 Wh with 2 decimals of accuracy
[19:32:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 68.00 pulses/min
[19:32:32][D][sensor:121]: 'Energieverbrauch': Sending state 408.00000 W with 0 decimals of accuracy
[19:32:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6002.70361 Wh with 2 decimals of accuracy
[19:33:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 67.00 pulses/min
[19:33:32][D][sensor:121]: 'Energieverbrauch': Sending state 402.00000 W with 0 decimals of accuracy
[19:33:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6009.40381 Wh with 2 decimals of accuracy
[19:34:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 68.00 pulses/min
[19:34:32][D][sensor:121]: 'Energieverbrauch': Sending state 408.00000 W with 0 decimals of accuracy
[19:34:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6016.20361 Wh with 2 decimals of accuracy
[19:35:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 70.00 pulses/min
[19:35:32][D][sensor:121]: 'Energieverbrauch': Sending state 420.00000 W with 0 decimals of accuracy
[19:35:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6023.20361 Wh with 2 decimals of accuracy
[19:36:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 75.00 pulses/min
[19:36:32][D][sensor:121]: 'Energieverbrauch': Sending state 450.00000 W with 0 decimals of accuracy
[19:36:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6030.70459 Wh with 2 decimals of accuracy
[19:37:32][D][pulse_counter:159]: 'Energieverbrauch': Retrieved counter: 70.00 pulses/min
[19:37:32][D][sensor:121]: 'Energieverbrauch': Sending state 420.00000 W with 0 decimals of accuracy
[19:37:32][D][sensor:121]: 'Tagesverbrauch': Sending state 6037.70361 Wh with 2 decimals of accuracy

Mycroft / PiCroft is an open source voice assistant.

Hardware required

  • Raspberry Pi
  • Display (in my case 5″Display)
  • JBL GO Bluetooth Speaker
  • Keyboard for setup

PiCroft first setup

PiCroft Setup

Connect JBL Go Bluetooth speaker

Install Pulseaudio-module-bluetooth

sudo apt-get install pulseaudio-module-bluetooth

Setup for setting bluetooth connection every startup at: /sudo nano /etc/rc.local

# Connect Bluetooth Speaker JBL Go
printf "### Connect Bluetooth Speaker ###"
echo "power on \nagent on \ndefault-agent \nconnect XX:XX:XX:XX:XX:XX \nquit" | bluetoothctl

This file needs to be edited at to get audio output: sudo nano /etc/mycroft/mycroft.conf

  "play_wav_cmdline": "aplay %1",
  "play_mp3_cmdline": "mpg123 %1",

Short description

SodaStream Oled Display

Everyone who owns a SodaStream has probably asked themselves how full my CO2 cylinder is. In most cases the cylinder is empty once you have been shopping. Most SodaStream users have a second cylinder, but it still sparked my creativity to come up with a simple solution.

The small software program is currently used to determine the number of impacts pressed and shown on the display (line 2). In line 3 is the added time of the duration / length of the pushed pushes. These values can be used to roughly estimate how much Co2 is still in the cylinder. What is shown graphically in line 4 by means of a progress indicator.

Hardware required

  • Wemos D1 mini (ESP8266)
  • Limit switch Ender 3 Pro
  • OLED Display I2C 0,96 Zoll
  • Cable / single wires
  • 3D Printer + Filament
  • Soldering iron with equipment

Software required

  • Arduino IDE
  • Tinkercad
  • Ultimaker Cura / Prusa Slicer

3D Printer settings

Ender 3 Pro

Print Settings

3D Printer Tinkercad STL File

Tinkercad SodaStream

Arduino IDE Software Code

I have to adapt to publish (currently code excerpt).

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <ESP8266WiFi.h>

#define SCREEN_WIDTH 128 // display width, (pixels)
#define SCREEN_HEIGHT 64 // display height, (pixels)

// I2C connected display SSD1306 
#define OLED_RESET     0 // Reset pin # (or -1 if sharing Arduino reset pin)

#define NUMFLAKES     10 // Number of snowflakes in the animation example

#define LOGO_HEIGHT   16
#define LOGO_WIDTH    16
static const unsigned char PROGMEM logo_bmp[] =
{ B00000000, B11000000,
  B00000001, B11000000,
  B00000001, B11000000,
  B00000011, B11100000,
  B11110011, B11100000,
  B11111110, B11111000,
  B01111110, B11111111,
  B00110011, B10011111,
  B00011111, B11111100,
  B00001101, B01110000,
  B00011011, B10100000,
  B00111111, B11100000,
  B00111111, B11110000,
  B01111100, B11110000,
  B01110000, B01110000,
  B00000000, B00110000 };

Result Pictures


  • Wemos D1 Mini ESP.deepSleep
  • One Case for alle the stuff
  • Smaler Display Case
  • Battery shield + display battery status
  • Change Wemos D1 Mini to ESP8266 BLE + IOS App

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.