eprints (HSR Hochschule für Technik Rapperswil)
Not a member yet
1196 research outputs found
Sort by
Out-of-the-Box Visualisierungssystem für Zähler- und Anlagenüberwachung mit M-Bus- und Modbus-Anbindung auf Raspberry Pi Basis
Heute fehlen in kleinen bis mittleren Gebäuden oder Anlagen kostengünstige, leicht installierbare Systeme, die verschiedene Zähler und Geräte (M-Bus, Modbus) einheitlich erfassen und visualisieren können. Diese Lücke im Markt war Motivation für die vorliegende Masterarbeit. Ziel war es, eine Lösung zu entwickeln, die eine einfache Erfassung, Verarbeitung und Darstellung von Messdaten ermöglicht und so einen praxisnahen Mehrwert für Betreiber schafft.
Das Projekt wurde iterativ umgesetzt, mit Fokus auf Prototyping, modularer Architektur und enger Abstimmung im Team. Potenzielle Benutzer wie etwa Gebäudeverwalter und private Betreiber, wurden in mehreren Phasen involviert: durch Interviews zur Anforderungsanalyse, Feedback zu frühen Prototypen und Tests der Weboberfläche. Dadurch konnten sowohl die Benutzerfreundlichkeit als auch die Praxistauglichkeit laufend verbessert werden.
Die Arbeit zeigt, dass eine flexible und generische Plattform auf Basis von Raspberry Pi erfolgreich realisiert werden kann. Betreiber erhalten damit ein Werkzeug, das sowohl Kosten senken als auch die Transparenz über Verbräuche und Zustände erhöhen kann. Langfristig könnte die Verbreitung solcher Lösungen zu Effizienzsteigerungen, geringeren Betriebskosten und einem positiven ökologischen Impact führen
BoltFinder: A Prototype for ML-Assisted Climbing Route Digitization
Switzerland has around 47,000 climbing routes, yet detailed information about these routes is fragmented across various platforms and printed guidebooks. The Swiss Alpine Club (SAC), a leading climbing organization, currently manages climbing sectors manually, highlighting the lack for automation. An automated solution poses challenges, such as gathering a comprehensive dataset, detecting small objects such as bolts and anchors, and using algorithmic traversal of predictions to determine accurate climbing routes for diverse areas. Tackling these challenges streamlines climbing route digitization.
BoltFinder is a proof-ofconcept solution leveraging machine learning to automate digitization of climbing routes. BoltFinder uses YOLOv11 to detect bolts and anchors in climbing wall images. Based on these detections, routes are identified through an algorithm that leverages Voronoi diagrams. A React-based frontend offers a user-friendly interface for reviewing and editing predictions and routes. The backend consists of an ExpressJS API for managing the business workflow, including the route generation algorithm, and a FastAPI responsible for handling image tiling and generating predictions. The PostgreSQL database employs a relational data model to organize and manage route structures. Model tracking is managed through MLFlow, ensuring robust performance monitoring, scalability, and adherence to MLOps principles.
The prototype uses YOLOv11 to detect bolts and anchors. Using 1024px tiles, the model exhibits a mAP\@25 score of 0.89 for bolts. YOLOv11 surpasses Faster R-CNN in precision and F1 score by ~20%. The system identifies climbing routes with an accuracy of 78% across 102 routes. 21 identified routes exhibit minor deviation whereas major deviation is observed in only one route. These results establish BoltFinder as an automated solution for climbing route digitization, providing significant value to climbers and the SAC. The prototype shows strong potential. Further improvements are possible via drone imagery, classifying different bolt types, and identifying bolt conditions like rust or wear
Concept Alternatives for the Management of Architectural Decisions in Clean Architectures
As software systems become more complex, it is increasingly important to design architectures that can adapt to change, scale effectively, and remain easy to manage. Clean Architecture is a popular approach that helps achieve these goals by organizing systems into layers, each with clear responsibilities. However, applying Clean Architecture can be challenging, especially when it comes to making and keeping track of important architectural decisions. The existing decision management tools often lack domain-specific features and can be difficult to use. There is a need for a better tool that not only helps document decisions, but also guides users through making them in a structured and consistent way.
The objective of this project was to design a new tool concept to address the shortcomings of current tools for managing architectural decisions, particularly in the context of Clean Architecture. This involved analyzing existing tools to understand their limitations, developing a conceptual framework for a new tool that guides users through architectural decision-making, and creating an initial proof-of-concept to demonstrate feasibility. The envisioned tool should help users make decisions in a guided manner and to document those decisions in a way that supports the development of the software. The second objective was to analyze and collect key architectural decisions that repeatedly occur when working with Clean Architecture. The resulting collection is envisioned to guide software architects and developers effectively when they make decisions that align with the key principles of Clean Architecture. This collection also serves as an example of a guidance model that shows the viability of the proposed tool concepts.
The project resulted in an outline for the new tool and a proof-of-concept implementation in Go. The new tool will have an easy-to-use command line interface. It works in combination with the Clean Architecture decision collection that provides concise step-by-step guidance on key architectural decisions such as setting up the initial structure of the system, defining key components and choosing how different parts of the system will interact. The proof-of-concept, while simple, demonstrates how such a tool could work and lays the foundation for further development. Future enhancements could include features such as interactive decision workflows, integration with software development environments, and advanced analysis tools (for example, machine learning) to help make better decisions. Overall, the tool together with the proof-of-concept provide a suited starting point for improving the way in which architectural decisions are made and documented, helping to create more flexible and maintainable software systems
Automated Testing Framework for Malware Detection in Microsoft Defender for Endpoint
Microsoft Defender for Endpoint (MDE) is a widely used security platform that protects enterprise systems against malware and other threats. Despite its powerful capabilities, the detection mechanisms behind MDE remain largely opaque. The detection logic is updated frequently through cloud-driven changes, but without versioning or public documentation. This lack of transparency presents a challenge: security teams are unable to verify whether new threats are being effectively detected or whether previous detection capabilities have silently changed.
This thesis presents an automated testing framework that executes real-world malware samples in isolated virtual machines and analyzes MDE's response via its official cloud Application Programming Interface (API). The system is implemented in PowerShell and uses Microsoft Hyper-V to ensure clean, reproducible testing environments for each sample. Detection results are retrieved and compiled into structured reports that highlight alert types, detection gaps, and behavioral consistency. One key feature is a similarity analysis based on Levenshtein distance, which compares newly returned MDE alert titles against a reference list. This enables the system to flag alerts that may indicate mutated malware or changes in detection terminology, providing early indicators of MDE’s shifting detection patterns. The framework allows configuration through both a Command Line Interface (CLI) and external JavaScript Object Notation (JSON) files, and all results can be stored in a persistent datastore for potential future trend comparison.
By offering a safe, repeatable, and data-driven approach to malware testing, this framework fills a critical visibility gap in endpoint protection assurance. It allows organizations to proactively validate MDE’s responses to threats, understand behavioral changes in its detection engine, and build evidence-based trust in their endpoint defense strategy
Zero-Knowledge Sudoku
Imagine sharing that you know a secret without revealing the secret itself. This is what zero-knowledge proofs (ZKPs) aim to do. In ZKPs there is a prover who claims knowledge of something and a verifier who checks this claim. The goal of this project is to further explore current technologies revolving around ZKPs and understand possible adaptations to an everyday application beyond blockchain use cases.
To explore the practical use of ZKPs, this project introduces a web puzzle application that keeps the solutions of individual users private using ZKPs. A user can solve a logic- based puzzle like Binairo or Sudoku and check the validity of their solution by sharing only a ZKP of the solution. That way, the solution never leaves the user’s device. To further strengthen the security, the following two checks are implemented: (1) making sure that the solution matches the original puzzle, and (2) integrating the user’s ID during the generation process. These checks prevent users from reusing a proof to “solve” other puzzles or for the proof to be stolen by another user. To implement this application, different ZKP frameworks are considered. Circom and snarkjs are selected because of their active development, clear documentation and good web development capabilities.
The final result is a secure application that demonstrates how ZKPs can be applied in a realistic and practical way. This highlights their broader potential in digital security. In most applications, the impact of ZKPs is intentionally hidden, as good cybersecurity aims to operate in the background. The ZKP-Puzzles application puts the ZKPs in the spotlight and visualizes how ZKPs work
Urban Sprawl Metrics
Die Zersiedelung beschreibt die unkontrollierte Ausbreitung der Siedlungsfläche auf Kosten von Natur- und Landwirtschaftsflächen.
Das Bundesamt für Raumentwicklung (ARE) hat den Auftrag des Bundes, die Zersiedelung in der Schweiz zu beobachten und diese einzugrenzen.
Politisch bezeugte besonders die gescheiterte "Zersiedelungsinitiative" vom 10. Februar 2019 die Dringlichkeit der Thematik.
Die Zersiedelung ist demnach nicht nur ein geographisches, sondern auch ein gesellschaftliches Thema.
Mit der von Schwick et al. im Buch "Zersiedelung messen und begrenzen" begründeten Methoden zur Bestimmung der Zersiedelung wurde ein Fundament zur Erfassung dieses Problems geschaffen.
Das Projekt zielt darauf ab, den "USM Calculator" Webservice, eine Webapplikation, basierend auf den erwähnten Methoden, um zusätzliche Funktionen zu erweitern.
Die angestrebten Ziele umfassen die Ermöglichung weiterer Schritte in Richtung Unabhängigkeit von dritter Software, wie beispielsweise QGIS.
Ausserdem wird die Machbarkeit einer parallelisierten Berechnung mehrerer Regionen untersucht, um grössere Datenmengen effizienter zu berechnen.
Im Rahmen dieser Arbeit wurde der Webservice um zusätzliche Funktionen ergänzt, die es ermöglichen, die statistischen Inputdaten für die Bestimmung der Zersiedelung zu bearbeiten.
Ausserdem wurde eine Lösung konzipiert, um die Rasterdaten der bebauten Fläche anzupassen und deren Einfluss auf die Zersiedelung unmittelbar zu untersuchen.
Die Inputdaten können direkt im Frontend (umgesetzt mit Vue.js) der Webapplikation angepasst werden.
Dabei kann die bebaute Fläche, die mittels GeoTIFF-Raster auf einer Leaflet-Karte dargestellt wird, pixelweise verändert werden.
Anschliessend kann das Raster als Input für die Verarbeitung im Python-Backend verwendet werden.
Zudem können statistische Inputdaten (GeoPackage, GeoJSON), wie z.B. die Einwohneranzahl oder Arbeitsplätze einer Region bearbeitet werden.
Die parallelisierte Berechnung mehrerer Untersuchungsgebiete wurde evaluiert und führt zu einer reduzierten Rechenzeit.
Die Erweiterungen tragen massgeblich dazu bei, Veränderungen der Siedlungsstruktur besser verfolgen zu können.
Für Raumplanende fällt die Anpassung der Inputdaten und anschliessende Kalkulation einfacher aus.
Die Förderung des Verständnisses von Zersiedelung sowie die Entwicklung von Massnahmen zu deren Eindämmung kann durch den Einsatz der Software in der Lehre und Forschung weiter vorangetrieben werden
3D-Module for ’Algorithm & Data Structure Visualizer (ADV)’
The Algorithms and Data Structures course uses a tool called Algorithm & Data Structure Visualizer (ADV) to help students better understand the behavior of their code.
During coding exercises, it allows students to step through their algorithms and see a visual representation of how the code executes.
Since the ADV originally supported only 2D visualizations, a separate standalone tool was developed using JOGL to display 3D landscapes for pathfinding algorithms.
The goal of this project was to create a new module for the ADV that can render 3D landscapes and serve as a replacement for the standalone JOGL-based solution.
A central challenge was the efficient handling of large datasets.
Until now, the ADV supported only 2D elements and algorithms that typically generated no more than 20 to 30 snapshots, each with around 10 to 20 elements.
In contrast, the new landscape module needed to process matrices as large as 200 by 200, resulting in up to 40,000 data points, and support as many as 150 snapshots per session.
A previous semester thesis attempted this before, but the resulting prototype suffered from major performance limitations and was not suitable for practical use.
The newly developed landscape module supports both automatically generated and manually defined matrices of any size.
To enhance user interaction, the generated landscapes include mouse and keyboard controls.
Like all other ADV modules, it relies on a snapshot-based communication protocol.
To handle the significantly larger data volume, the protocol was extended to support partial snapshots.
This allows the ADV-UI to construct new snapshots incrementally by applying only the changes to the previous state, which greatly reduces both data transmission and memory usage.
Additionally, since the ADV had not been maintained for several years, major version upgrades were performed across the entire application, including updates to Java, JavaFX and Gradle
Nutzerzentrierte Entwicklung einer Webapplikation für das operative Produktionsmanagement
Die SFS Group Schweiz AG ist ein international tätiger Industriekonzern mit Hauptsitz in Heerbrugg, der sich auf die Entwicklung und Herstellung von Präzisionskomponenten, Befestigungssystemen und industriellen Versorgungslösungen spezialisiert hat. In den globalen Produktionswerken werden täglich zahlreiche Kennzahlen erfasst, um die Leistung der Produktionsanlagen zu überwachen und kontinuierlich zu verbessern.
Ziel dieser Bachelorarbeit ist es, die Nutzung dieser Kennzahlen durch direkte Führungskräfte in der Produktion zu fördern. Dazu wurde ein bestehender Prototyp für die digitale Durchführung der wöchentlichen Meetings in der Produktion, der im Rahmen einer vorangegangenen Studienarbeit entstanden ist, weiterentwickelt und funktional ausgebaut. Im Fokus standen dabei eine intuitive Darstellung der Kennzahlen, die Einführung einer Notizfunktion sowie die Integration eines Aufgabenmanagements.
Die Entwicklung erfolgte nutzerzentriert: In Interviews und Usability-Tests wurden Anforderungen und Verbesserungspotenziale ermittelt und in Form von Wireframes konzeptionell aufgearbeitet. Auf dieser Grundlage wurde die Applikation technisch überarbeitet und in ihrer Architektur, Benutzeroberfläche und Funktionalität deutlich verbessert. Die neu gestaltete Team-Übersicht ermöglicht eine schnelle Erfassung der wichtigsten Kennzahlen, während Aufgaben und Notizen die operative Kommunikation direkt in der Applikation unterstützen.
Die anschliessende Validierung durch Tests und Nutzerrückmeldungen bestätigt eine erhöhte Benutzerfreundlichkeit sowie die Erfüllung der zuvor definierten Anforderungen. Die Applikation bietet damit eine belastbare Grundlage für einen produktiven Pilotbetrieb und die zukünftige Weiterentwicklung
Erweiterung der Vanlife-Applikation um Community-Features und Medienservice
Die Vanlife-Travel-Applikation ist eine Plattform zur Buchung und Planung generierter Campingreisen. Um die Nutzerbindung zu stärken und den Austausch innerhalb der Community zu fördern, fehlten bislang soziale Funktionen sowie eine nachhaltige Lösung zur Verwaltung multimedialer Inhalte.
Ziel dieser Bachelorarbeit war es daher, zentrale Community-Features wie Stories, Likes und öffentliche Profile sowie einen skalierbaren Medienservice zu konzipieren und umzusetzen.
Basierend auf in Workshop erstellten Szenarien wurde ein MVP definiert, das zentrale Funktionen wie die Erstellung und Verwaltung von Stories, die Personalisierung und das Teilen von Reisen sowie das Hochladen von Bildern umfasst.
Die Umsetzung erfolgte innerhalb der bestehenden Microservice-Architektur mit Java, Spring Boot und React mit Redux. Basierend auf einer Nutzwertanalyse wurde die Cloudlösung Azure Blob Storage als Bildablage verwendet. Die Lösungen wurden entlang der definierten funktionalen Anforderungen entwickelt, um sie anschliessend mit Usability-Prinzipien zu ergänzen und mithilfe automatisierter Tests und Usertests zu validieren.
Die erweiterte Applikation ermöglicht es Vanlifern, ihre Reisen mit multimedialen Stories zu dokumentieren, öffentlich zugänglich zu machen oder gezielt mit Bekannten zu teilen. Öffentliche Reisen sind auf einer Entdeckungsseite sichtbar und können geliked werden. Die Stories ersetzen die bisherigen Reviews und beeinflussen die Bewertung von Unterkünften.
Der entwickelte Medienservice sorgt für eine sichere, skalierbare und kosteneffiziente Verwaltung von Bildern. Insgesamt wurde mit der Erweiterung eine funktionale und benutzerfreundliche Grundlage geschaffen, die den Community-Austausch innerhalb der Plattform erheblich steigert
Automatisierung des Deployments und Testings von HMI-Software
Die Firma Syntegon entwickelt Verpackungsmaschinen für die Lebensmittel- und Pharmaindustrie. Im Rahmen eines Entwicklungsprojekts für ein neues webbasiertes HMI (Human Machine Interface) bot sich die Möglichkeit, im Zuge dieser Masterarbeit ein automatisiertes Deployment mittels Build-Pipeline sowie einen Update-Service zu realisieren.
Die Pipeline wurde in Azure DevOps umgesetzt und mithilfe von Terraform portabel gestaltet. Sie ermöglicht das Bauen, Testen und – nach Freigabe durch den Anwender – das automatische Ausrollen neuer Softwareversionen auf die Maschinen. Ergänzend wurde ein Web-service entwickelt, der eine Maschinenübersicht bereitstellt und Rollbacks von Updates unterstützt.
Für das Testing wurde ein Framework auf Basis von Playwright und NUnit implementiert. Zusätzlich ermöglicht die Integration von OPC UA den direkten Zugriff auf die Runtime des HMIs, sodass Zustände sowohl auf Server- als auch auf Client-Seite überprüft und manipuliert werden können.
Durch die Kombination aus automatisierter Pipeline und integriertem Testing kann die Erstellung von Sondermaschinen künftig effizienter und kostengünstiger erfolgen. Gleichzeitig verbessert sich die Qualität des HMIs, was zu höherer Kundenzufriedenheit und reduzierten Servicekosten beiträgt