Flugdaten aus Hannover von einem Raspberry Pi per MQTT mit Mqtt-Spy empfangen

Es muss nicht immer MQTT.fx sein um MQTT Daten zu empfangen. Der Java-Client Mqtt-Spy hat viel mehr Optionen. Es braucht nur das JAR von Github geladen zu werden und dann ein doppelklick auf das JAR, und schon läuft der MQTT-Client unter Mac, Windows, Linux …

Es braucht nur der Server test.mosquitto.org und als Topic /Anzahl/Flugzeuge/Hannover eingegeben zu werden und schon werden meine Flug-Daten die von einem Raspberry Pi empfangen werden alle 5 Minuten aktualisiert.

mqtt-spy-einstellungen „Flugdaten aus Hannover von einem Raspberry Pi per MQTT mit Mqtt-Spy empfangen“ weiterlesen

Besser als Fussball: MQTT Java Client mit Paho

Fussball? Wie kann man per Java einen MQTT Client mit Paho schreiben, der z.B. die Anzahl Flugzeuge in Hannover anzeigt? Und das innerhalb der ersten Halbzeit, da nur 2 Klassen benötigt werden.

Mein Raspberry Pi sendet an den öffentlichen Testserver test.mosquitto.org unter den Topic /Anzahl/Flugzeuge/Hannover alle 5 Minuten die aktuelle Anzahl, so das dieses Beispiel jeder nachvollziehen kann.

Hier die Architektur:

mqtt

Wir brauchen zuerst ein Eclipse Maven Projekt mit Java 1.8 mit dieser pom.xml und einen Eintrag des Paho Repo, da es in Maven Central nicht vorhanden ist: „Besser als Fussball: MQTT Java Client mit Paho“ weiterlesen

Java News zu der am 22.06.2016 veröffentlichten Eclipse Neon 4.6 Version

Hier eine schöne Aufzählung der Neuerungen der neuen Eclipse Neon Version.

Bildschirmfoto 2016-06-29 um 21.39.14

Bildschirmfoto 2016-06-29 um 21.38.42

Cool:

Content Assist now supports substring patterns. Enter any part of the desired proposal’s text, and Content Assist will find it! For example, completing on selection proposes all results containing selection as a substring.

The Refactor > Rename popup now shows an Options… link which opens the full Rename dialog that provides more options like renaming a field’s getter and setter methods.

You can now select multiple elements in views like Package Explorer and Outline and then search for References, Declarations, Implementors, and Read/Write Access (where applicable):

Wie kann ein Timer in Java mit Quartz erstellt werden?

Manchmal möchte man Ereignisse mit Java zeitgesteuert oder wiederholt ausführen. Das geht auch mit Java Mitteln. Die bekannte java.util.Timer Klasse kann schon was. Der Open Source Framework Quartz hat ua. aber diese Vorteile:

  • persistence mechanismen
  • flexible Zeitplanung
  • Thread-Pool
  • Managment Schemen
  • flexibel
  • fehlertolerant, auch nach Systemstart

Quartz ist ein kleiner Framework der nur quartz-x.y.z.jar im Classpath benögigt (inkl. log sl4j-api.jar, und c3p0.jar). Er kann Standalone oder im Server als J2EE Anwendung verwendet werden. Die wichtigsten drei Klassen sind Task/Job, Trigger und der Listener.

Sie spielen so zusammen:

quartz-uebersicht

Wie kann ein Timer in Java mit Quartz erstellt werden? „Wie kann ein Timer in Java mit Quartz erstellt werden?“ weiterlesen

Anzahl der Flugzeuge mit 3 Zeilen Java Code ausgeben via REST API mit Jersey und JDom 2.0

Mit Java ist es nicht schwer, einen REST Client zu erstellen. Das geht mit Jersey und JDom in 3 Zeilen.

Hier nun mal ein Beispiel.

Die Anzahl der Flugzeuge in Hannover wird von mir mit einem Raspberry Pi empfangen und an thingspeak gesendet.

jdom-2.0
Diese Daten kann jeder leicht abfragen. „Anzahl der Flugzeuge mit 3 Zeilen Java Code ausgeben via REST API mit Jersey und JDom 2.0“ weiterlesen

Fritzbox Telefonbuch (Phonebook) mit Java bearbeiten via JDom und SAXBuilder

Wer eine Fritzbox hat, kann dort auch Telefonbücher anlegen, so das beim Anruf eine E-Mail versendet wird. Bei mir wird bei Anruf auch eine Pushover Nachricht auf das Handy gesendet und der Name und die Nummer mit openHAB via Karotz angesagt, so das ich schon hören kann, wer anruft.

fritz
Das läuft über das openHab Fritzbox 064 Binding ganz gut. Von dem Bindig wird aber bisher nur das erste Telefonbuch aus der Fritzbox ausgelesen. Wer ein anderes benutzt muss die Daten exportieren und in dem ersten Telefonbuch wiederherstellen, da es keine löschen Funktion in der Fritzbox gibt.

Bei mir war noch das Problem, das viele Telefonnummern (über 600) Blanks, Bindestriche und Klammern enthielt. Z.B. (0)511-123 456 und die wird bisher in dem Binding nicht erkannt. Deshalb habe ich einen kleinen Konverter geschrieben, der alle Blanks, (,),- löscht und auch alle Nr. die kein +49 haben und mit 0 beginnen mit dem gültigen prefix +49 ohne 0 ergänzt. Weitere Regeln können leicht angepasst werden.

In diesem Java Programm, kann man auch sehen, wie mit einem SAXBuilder ein JDom Dokument erzeugt gelesen und verändert werden kann. Hier das Programm: „Fritzbox Telefonbuch (Phonebook) mit Java bearbeiten via JDom und SAXBuilder“ weiterlesen

Papyrus 1.1.3 UML 2.0 Designer läuft auch unter Eclipse Mars.1

Die UML 2.5 Umgebung Papyrus läuft auch unter Eclipse Mars.1 und bietet u.a. folgende Diagramme:

  • Class Diagram
  • Object Diagram
  • Package Diagram
  • Composite Structure Diagram
  • Component Diagram
  • Deployment Diagram
  • Profile Diagram
  • Use case Diagram
  • Activity Diagram
  • State machine Diagram
  • Communication Diagram
  • Sequence Diagram
  • Timing Diagram
  • Interaction overview Diagram

Die Installation läuft „Papyrus 1.1.3 UML 2.0 Designer läuft auch unter Eclipse Mars.1“ weiterlesen

UML Designer 5.0 für Eclipse Mars.1 installieren

Für die aktuelle Eclipse Mars.1 Version

eclipse mars.1gibt es einen kostenlosen UML 2.5 Designer. Mit ihm können ua. folgende Diagramme modelliert werden, wie auf der Homepage zu sehen:

  • Package Hierarchy Diagram
  • Class Diagram
  • Component Diagram
  • Composite Structure Diagram
  • Deployment Diagram
  • Use Case Diagram
  • Activity Diagram
  • State Machine Diagram
  • Sequence Diagram
  • Profile Diagram

„UML Designer 5.0 für Eclipse Mars.1 installieren“ weiterlesen

Ecore & EMF: Wie kann eine bidirektional Verbindung in Eclipse zwischen zwei Klassen im ecore-Model modelliert werden?

Hier am Beispiel von einem Arzt und einer Adresse. Wenn nun von der Adresse auf den Arzt und umgekehrt navigiert werden soll, kann die bidirektionale Verbindung im Feld EOpposite wie folgt eingetragen werden (rechts auf den Pfeil der Combobox klicken):

opposite
„Ecore & EMF: Wie kann eine bidirektional Verbindung in Eclipse zwischen zwei Klassen im ecore-Model modelliert werden?“ weiterlesen

Lucene: Welche Annotationen sind nötig, damit ein Ecore-Model die Java Klasse für Lucene mit Hibernate indexiert?

Diese drei:

  • org.hibernate.search.annotations.Indexed
  • org.hibernate.search.annotations.DocumentId
  • org.hibernate.search.annotations.Field

Die @Indexed annotation markieren, dass die Entitys indiziert
werden sollen.

Das Attribut ID der Entity muss mit @DocumentId annotiert werden, damit Hibernate
Search ein Mapping zwischen Dokumenten im Index und Entitys in der Datenbank herstellen kann.

Und die @Field annotation. Mit diesem Parameter kann angegeben werden, wie das Feld heißen soll und wie es indiziert werden soll und ob der Inhalt in Tokens zerlegt werden soll oder nicht, und ob der Inhalt auch im Index gespeichert werden soll, welche Filter und Analyzer für das Feld verwendet werden sollen.

Im ecore Modell:
ecore-anno

Ergebnis in der generierten Java Klasse:
ecore-klasse

Ecore: Wie kann ein Java Attribut für die Hibernate Suche im Ecore Modell annotiert werden?

Wie kann in einer Java Klasse ein Attribut für die Hibernate-Suche wie folgt annotiert werden?

Dazu folgende EAnnotation als Value mit den voll qualifizierter Namen einfügen, damit auch die imports aufgelöst werden können

ecore value

ecore annotation

Und für die Maven pom.xml, den folgenden Eintrag, damit die Hibernate Klassen auch gefunden werden können:

Eclipse EcoreTools: Wie können *.aird (*.ecore) Modelle per UML unter Eclipse Mars bearbeitet werden?

Mit den Ecore Tools können gut Modelle per UML modelliert und das Java-Modell generiert werden. Die Ecore Tools können leicht über den Menüpunkt: Hilfe -> Eclipse Marketplaces … installiert werden:
ecor tools

Nach einem Neustart können die *.aird (ecore) Dateien über das Menü: Windows-Show View … Model Explorer geöffnet werden:

aird „Eclipse EcoreTools: Wie können *.aird (*.ecore) Modelle per UML unter Eclipse Mars bearbeitet werden?“ weiterlesen

Ecore mit Texo: Wie kann im Annotationsmodell die Spalte für EString vergrößert werden?

Default wird für EString eine Länge von 255 Zeichen verwendet. Wie kann die Spalte nun vergrößert werden wenn ein:
Error Code: 1406. Data too long for column … at row …
kommt?

Einfach das Annotationsmodel um diesen Eintrag ergänzen:
Annotation

Dann das Modell einmal neu generieren, schon ist die Spalte wie gewünscht annotiert:

Eclipse go to Mars 4.5 Release oder wie wird Eclipse Mars auf dem Mac OS X installiert?

Heute ist die Mars 4.5 Version von Eclipse veröffentlich worden. Was gibt es neues?
Ok, dann mal auf die Mars Download Seite und das Programm laden. Ich war übrigens der 6,666 Download!

Für den Mac geht es jetzt super einfach.

Installation

Download des Eclipseeclipse-jee-mars-R-macosx-cocoa-x86_64.tar.gz oder andere gewünschte Version.
Dann einen doppelklick auf die Datei zum entpacken. Nun noch die Eclipse.app in das Programme Verzeichnis verschieben. Dann das Programm starten durch einen doppelklick auf Eclipse.app. Das geht gefühlt schneller als vorher!

Mehr ist für die installation auf einem Mac nun nicht mehr nötig. Hier die IDE, mit den Versions Dialog:
Eclipse Mars

Mars, das war’s. That’s it. Happy coding!