Hallo,
für den BusMonitor für Windows und Linux habe ich einen separaten Thread eingerichtet, um ihn unabhängiger weiter zu entwickeln und er ist für den Dauerbetrieb besser geeignet. Das Tool bietet einige möglichkeiten.
Eine kurze Beschreibung der Funktionen:
Update auf Version 4.4:
Hier habe ich ein kleines Beispielprogramm für den ESP8266 D1 mini :
knxset.png
knxsql.png
knxip.png
Downloadlink :
http://www.knx-board.org/download.php?file=KNX6v44.zip
Ich habe beschlossen, keine Updates mehr hier zu verlinken, da die Update Funktion diese Aufgabe übernimmt. Allerdings werden dort nur die letzten Updates angezeigt (Ab Version 5.84, die beim letzten Eintrag zum Download bereitsteht (#28)). Alle Änderungen, Verbesserungen oder neuen Ergänzungen, die dazwischen liegen, sind ausschließlich in der App Historie einsehbar.
für den BusMonitor für Windows und Linux habe ich einen separaten Thread eingerichtet, um ihn unabhängiger weiter zu entwickeln und er ist für den Dauerbetrieb besser geeignet. Das Tool bietet einige möglichkeiten.
Eine kurze Beschreibung der Funktionen:
- Dauerhafte Aufzeichnung : Speichert die Telegramme kontinuierlich in einer SQLite Datenbank.
- Übersichtliche Darstellung : Zeigt die Telegramme in einer ListView an (wählbar: 100, 250 oder 1000 Einträge).
- Exportmöglichkeiten : Der Inhalt der ListView kann in Text oder CSV Dateien gespeichert werden.
- KNX Gateway Unterstützung : Unterstützt sowohl IP als auch USB KNX Gateways, inklusive KNX Secure.
- ETS Eport : Durch Import einer XML Datei mit Gruppenadressen aus der ETS können die meisten DPTs angezeigt und ausgewertet werden.
- DPT Senden : Die gängigsten DPTs können direkt aus dem Monitor gesendet werden.
- Zeit und Datumssynchronisation : Sendet einmal täglich (um 00:00 Uhr) das Datum und die Uhrzeit auf den Bus.
- DPT16 Unterstützung : Datum kann auch einmal täglich als DPT16 gesendet werden.
- Timer Funktion : Verfügt über 10 Timer für DPT1, DPT5, DPT16 und DPT17.
- Email Benachrichtigungen : Bietet eine 10 fache Email Funktion für DPT1, DPT5 und DPT16.
- SQL Viewer : Ein integrierter SQL Viewer ermöglicht es, Telegramme über einen Kalender tageweise einzusehen.
- Diagrammfunktion : Im SQL Viewer gibt es die Möglichkeit, Diagramme zu erstellen.
- Systeme : Läuft auf Windows PC und auf dem Raspberry Pi unter Mono oder Wine (Diagrammfunktion geht noch nicht)
Code:
sudo apt-get update sudo apt-get install mono-complete sudo apt-get install libsqlite3-dev sudo apt install ca-certificates sudo update-ca-certificates
- Verbindungsprobleme behoben : Insbesondere bei nicht Secure IP Gateways.
- Gesendete Telegramme : Diese werden nun beige im Monitor angezeigt.
- Neue Funktion : UDP Server: Auf Wunsch kann ein UDP Server hinzugefügt werden. Telegramme, die über diesen Server empfangen werden, werden farblich hervorgehoben (helles Cyan). Hierbei kann ein Port angegeben und ein bestimmter String an die IP Adresse des BusMonitors gesendet werden.Die Idee dahinter war, dass man mit einem ESP8266, ESP32 oder Arduinoboard eigene Lösungen dazu bauen kann. Vorsicht bei beiden Systemen kann es sein das der UDP Port freigegeben werden muss für die Firewall.
Code:
- DPT1 : 1/0/0:DPT:1 für True oder 1/0/0: DPT:0 für False - DPT5 : 6/0/9:DPT5:50 für 50% - DPT16 : 11/6/0:DPT16:Hallo
Code:
include <ESP8266WiFi.h> include <WiFiUdp.h> const char *ssid = "SSID"; const char *password = "WLAN Passwort"; WiFiUDP udp; const int udpport = 8080; const char *udpserverip = "IP Adresse des UDP Servers eintragen"; const int pinD1 = 5; const int pinD2 = 4; const int pinD3 = 0; const int pinD6 = 12; const int pinD7 = 13; const int ledPin = 2; void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Verbinde mit WLAN..."); } Serial.println("Verbunden mit WLAN !!!"); udp.begin(udpport); pinMode(pinD1, INPUT_PULLUP); pinMode(pinD2, INPUT_PULLUP); pinMode(pinD3, INPUT_PULLUP); pinMode(pinD6, INPUT_PULLUP); pinMode(pinD7, INPUT_PULLUP); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, HIGH); } void loop() { if (digitalRead(pinD1) == LOW) { sendudpmessage("1/0/0:DPT1:1"); delay(500); } if (digitalRead(pinD2) == LOW) { sendudpmessage("1/0/0:DPT1:0"); delay(500); } if (digitalRead(pinD3) == LOW) { sendudpmessage("6/0/9:DPT5-4:90"); delay(500); } if (digitalRead(pinD6) == LOW) { sendudpmessage("6/0/9:DPT5-4:100"); delay(500); } if (digitalRead(pinD7) == LOW) { sendudpmessage("11/6/0:DPT16:Hallo Freddie"); delay(500); } int psize = udp.parsePacket(); if (psize) { char inpacket[255]; int len = udp.read(inpacket, 255); if (len > 0) { inpacket[len] = 0; } Serial.printf("Empfangene Daten : %s\n", inpacket); parseudpmessage(inpacket); } delay(50); } void sendudpmessage(const String &message) { udp.beginPacket(udpserverip, udpport); udp.print(message); udp.endPacket(); Serial.println("Telegramm gesendet : " + message); } void parseudpmessage(const String &message) { if (message == "10/0/3:1") { digitalWrite(ledPin, LOW); Serial.println("LED an"); } else if (message == "10/0/3:0") { digitalWrite(ledPin, HIGH); Serial.println("LED aus"); } else { Serial.println("Unbekanntes Telegramm empfangen."); } }
knxset.png
knxsql.png
knxip.png
Downloadlink :
http://www.knx-board.org/download.php?file=KNX6v44.zip
Ich habe beschlossen, keine Updates mehr hier zu verlinken, da die Update Funktion diese Aufgabe übernimmt. Allerdings werden dort nur die letzten Updates angezeigt (Ab Version 5.84, die beim letzten Eintrag zum Download bereitsteht (#28)). Alle Änderungen, Verbesserungen oder neuen Ergänzungen, die dazwischen liegen, sind ausschließlich in der App Historie einsehbar.
Kommentar