Smart Home Network Simulation for Visualisation and Generation of IoT/SmartHome Network traffic

Andreas T. Meyer-Berg 3830cbd157 Adds Sensor Label %!s(int64=3) %!d(string=hai) anos
examples 69b7c0e71d Merge branch 'GlobalScheduler' %!s(int64=4) %!d(string=hai) anos
gradle 0416ffdcce Updates Gradle to 5.4.1 %!s(int64=5) %!d(string=hai) anos
libs b439b521b2 Finaly fixes Weka dependency %!s(int64=5) %!d(string=hai) anos
libs_src b439b521b2 Finaly fixes Weka dependency %!s(int64=5) %!d(string=hai) anos
src 3830cbd157 Adds Sensor Label %!s(int64=3) %!d(string=hai) anos
.gitignore b439b521b2 Finaly fixes Weka dependency %!s(int64=5) %!d(string=hai) anos
README.md b00e30311e Updates Readme %!s(int64=4) %!d(string=hai) anos
build.gradle b439b521b2 Finaly fixes Weka dependency %!s(int64=5) %!d(string=hai) anos
gradle.properties 353e2ff9dd Enables running the GUI via gradle %!s(int64=6) %!d(string=hai) anos
gradlew ffaa9fd17f Enables execution of gradlew on linux systems %!s(int64=6) %!d(string=hai) anos
gradlew.bat 3b5ec28546 Initializes gradle as build tool %!s(int64=6) %!d(string=hai) anos
settings.gradle 3b5ec28546 Initializes gradle as build tool %!s(int64=6) %!d(string=hai) anos

README.md

IoT Dataset Generation Framework

IoT Dataset Generation Framework for Visualization and Generation of IoT/SmartHome Network traffic

Short Paper Link

The short paper "IoT dataset generation framework for evaluating anomaly detection mechanisms" by Andreas Meyer-Berg, Rolf Egert, Leon Bck, and Max Mhlhuser for this framework is presented at https://doi.org/10.1145/3407023.3407036.

Gradle tasks

Gradle will download required libraries and handle the build process

$ gradlew build     # Assembles and tests this project

$ gradlew jar       # Creates an executable Jar-file

$ gradlew javadoc   # Generates Java Doc for the framework

$ gradlew test      # Runs the included unit tests

$ gradlew run       # Runs the IoTDatasetGenerationFramework as a JVM Application

$ gradlew runIt     # Runs the IoTDatasetGenerationFramework as a Jar-file

$ gradlew tasks     # Displays further available tasks

Prerequisites

Required Libraries

Gradle downloads these during the build process

  • JUnit4 - Java unit test framework
  • Math3 - Apache Common Maths (for Distribution function)
  • Weka 3 - Weka machine learning framework (for example anomaly detection algorithms)

Installation

Clone repository $ git clone git@git.tk.informatik.tu-darmstadt.de:SPIN/IoTDatasetGenerationFramework.git Go to folder $ cd IoTDatasetGenerationFramework Build project (and run) $ gradlew run

Adaptations and custom implementations

To change code of the framework, it is possible to import it into an IDE of choice. Custom implementations of devices, protocols etc. can also be written in a separate project and later be imported.
For access to libraries during development the Jar files in "\build\install\SmartHomeNetworkSim\lib" can be imported. While running the framework, externally implemented programs can be imported.

Developed by

Andreas T. Meyer-Berg (As part of his Bachelor Thesis)