Das Java Rätsel läuft noch ein paar Tage!
Java Rätsel des Monats
Wenn wir diese Java Klasse compilieren und ausführen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class RaetselDesMonats { private static final String HALLO_WELT = "Hallo Welt!"; public static void main(String[] args) throws Exception { wieSiehtDieMethodeAus(); String welt = "Hallo Welt!"; System.out.println(welt); System.out.println("Hallo Welt!"); System.out.println(HALLO_WELT); } private static void wieSiehtDieMethodeAus() throws Exception { // nur hier Anpassungen möglich } } |
Welche Lösung bzw. Aussage ist richtig?
1. Es wird immer folgende Ausgabe gemacht, egal was in der wieSiehtDieMethodeAus()
ergänzt wird:
Hallo Welt!
Hallo Welt!
Hallo Welt!
2. Es wird „nichts
“ ausgegeben.
3. Es wird Hallo Welt!
ausgegeben
4. Es kann durch Anpassung, nur in der Methode wieSiehtDieMethodeAus() folgende Ausgabe erzeugt werden?
Was in Java alles geht!
Was in Java alles geht!
Was in Java alles geht!
Dein Vorschlag in Form von 1,2,3 oder 4 bitte posten. Nur Mut!
Hier nun die Lösung:
„Java Rätsel des Monats“ weiterlesen
Für Eclipse gibt es 45 Sprachen dank Babel Language Packs
Eclipse kann auch in 45 Sprachen und auch auf deutsch umgestellt werden. Es gibt da ein Projekt Babel Language Packs. Habe es mal testweise auf deutsch umgestellt. Ist in deutsch zu 89 % übersetzt.
Nach restart einmal schauen, und dann gleich wieder zurück auf englisch 😉
Wie wird wswebcam auf dem Raspberry Pi neu compiliert und installiert?
Mit sudo apt-get install fswebcam
wird wie man mit fswebcam --version
feststellen kann die Version von 2011 von fswebcam installiert:
fswebcam 20110717
Da meine alte Logitech Cam nicht läuft, habe ich erst einmal auf die neueste Version upgedated. Also die Quellen holen und neu compilieren mit:
1 2 3 |
sudo git clone http://github.com/fsphil/fswebcam cd fswebcam sudo ./configure --prefix=/usr |
Es wird folgender Error ausgegeben:
configure: error: GD graphics library not found
Also noch die libgd neu installieren mit:
sudo apt-get install libgd2-xpm-dev
Dann nochmal
1 |
sudo ./configure --prefix=/usr |
ausführen.
Ok, Ausgabe nun:...
hecking for getpagesize... yes
checking for working mmap... yes
checking for gdImageCreateTrueColor in -lgd... yes
checking for gdImageStringFT in -lgd... yes
checking for gdImageJpeg in -lgd... yes
checking for gdImagePngEx in -lgd... yes
Buffer type ........... 16 bit
PNG support ........... yes
JPEG support .......... yes
Freetype 2.x support .. yes
V4L1 support .......... yes
V4L2 support .......... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
Dann ein make
zum compilieren und make install
.
Dann checken ob die neue Version installiert wurde, mit
fswebcam --version
Ausgabe:
fswebcam 20140113
Nun noch mit rm -rf fswebcam/
das Verzeichnis löschen.
Ok, die Cam wird erkannt, lsusb
ergibt:
Bus 001 Device 004: ID 046d:0840 Logitech, Inc. QuickCam Express
Aber es kommt mit fswebcam test.jpg
zu folgenden Fehler und es wird kein Foto erstellt:
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 360x296.
Error starting stream.
VIDIOC_STREAMON: Broken pipe
Unable to use mmap. Using read instead.
--- Capturing frame...
Timed out waiting for frame!
Speicherzugriffsfehler
Da muss ich dann mal ander mal schauen, was das nun wieder ist.
Oder habt IHR eine Idee?
Fix, siehe diesen neuen Blogeintrag. Das müsste auch hier laufen, oder?
Wie kann auf einem Raspberry Pi die neueste Java 1.8 Version von Oracle installiert werden?
Zuerst das System des Raspberry Pi updaten und neu starten mit:
1 2 3 4 5 6 |
sudo apt-get update sudo apt-get upgrade sudo apt-get clean sudo rpi-update sudo ldconfig sudo reboot |
Schauen, welche Version jetzt installiert ist mit java -version
:
1 2 3 |
java version "1.6.0_27" OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1~deb7u1+rpi1) OpenJDK Zero VM (build 20.0-b12, mixed mode) |
Entweder über den den Packetmanager:
1 |
sudo apt-get update && sudo apt-get install oracle-java8-jdk |
oder per Hand, dann so:
Dann das JDK 1.8 von der Oracle Seite downloaden. Die Seite wurde nach hier verschoben. Es wird die Linux ARM v6/v7 Hard Float ABI Version mit 83 MB benötigt.
In das Download Verzeichnis wechseln und mit scp die Datei auf den rPi kopieren z.B.:
1 |
scp jdk-8-linux-arm-vfp-hflt.tar.gz root@192.0.0.0:/root |
Dann in den rPi wechseln und und das Archive in das /opt Verzeichnis entpacken, das dauert ein paar Minuten:
1 |
sudo tar zxvf jdk-8-linux-arm-vfp-hflt.tar.gz -C /opt |
Nun Java aktivieren und das Archive löschen mit:
1 2 3 4 5 |
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_33/bin/javac 1 sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_0_33/bin/java 1 rm jdk-8-linux-arm-vfp-hflt.tar.gz sudo update-alternatives --config javac # Auswahl 1 für Version 1.8 eingeben |
sudo update-alternatives --config java
# Auswahl 1 für Version 1.8 eingeben
Und checken ob es geklappt hat mit java -version
ergibt nun:
1 2 3 |
java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode) |
Java 1.8.0 ist nun erfolgreich installiert.
Wie kann Webmin auf einem Raspberry Pi auf die neueste Version (1.680.1) aktualisiert werden?
Den laufenden Webmin aufrufen mit https://{IP-Adresse}:10000/
Aktuelle Version von Webmin feststellen über die Webmin Download-Seite.
Dann über das Menü: Webmin-Webmin-Konfiguration->Webmin aktualisieren
In den Webmin aktualisieren Dialog die Aktuelle URL eingeben:
http://prdownloads.sourceforge.net/webadmin/webmin_1.680_all.deb
Dann auf Webmin aktualisieren klicken und ca. 10 min warten:
Webmin ist echt cool! Oder?
Wie wird ein VdS-zertifizerter Funk-Rauchmelder #HM-SEC-SD von #HomeMatic in #Fhem auf einem #Raspberry Pi eingebunden?
Habe von meinen netten Kollegen einen Gutschein erhalten 🙂 Dafür habe ich mir ua. diesen Funk-Rauchmelder HM-SEC-SD gekauft, hier die Ansicht von hinten, mit eingelegten Batterien:
So, mit zwei Schrauben hängt er nun im Server-Raum an der Decke …
Jetzt noch nach dieser Anleitung in Fhem anmelden. Obwohl ich bisher nur einen Rauchmelder haben, ist er mit einem virtueller Aktor als Teamlead verbunden (Variante 2). So kann über set Rauchmelder_Team alarmOn
der Alarm getestet werden:
Aus gehts mit set Rauchmelder_Team alarmOff
:
Zuvor aber anlernen und peeren:
set HMLAN_1 hmPairForSec 600
define TeamDev CUL_HM 111111
set TeamDev virtual 1
set Rauchmelder_Team peerChan 0 az_Brandmelder single set
Cool, jetzt kann der VdS-zertifizerte Funk-Rauchmelder
von überall angeschaltet werden.
Aber erst noch eine Benachrichtigung bei Brandalarm versenden per Pushover. Dazu ua. in der fhem.cfg folgenden Code einfügen und den Token und User ersetzen:
# Benachrichtigung bei Brandmelder an
#
define pushBrandmelderAn notify az_Brandmelder:smoke-Alarm.* {\
system ("curl -s -F 'token=xxxxxxxxx' -F 'user=xxxxxxxxxx' -F 'message=Brandmelder Alarm' -F 'title=Fhem: Brandmelder ist an' -F 'priority=1' -F 'sound=1' https://api.pushover.net/1/messages.json");;\
}
attr pushBrandmelderAn group Brandmelder
attr pushBrandmelderAn room Arbeitszimmer
Kann dann so als Alarmmelder dienen.
JavaFX TOP 11 Neuerungen ggü. Swing Mindmap
Neue FritzBox Firmware 6.05 (eher Bug fix als Neue Features)
Es gibt eine neue Firmware für die FritzBox, mit diesen Angaben vom Hersteller:
Die Update-Datei "FRITZ.Box_7490.113.xx.xx.image" in
diesem Verzeichnis enthält das aktuelle FRITZ!OS (Firmware)
für die FRITZ!Box 7490.
Achtung: Diese Update-Datei ist nur für FRITZ!Box 7490 geeignet!
Beachten Sie die Hinweise zur Durchführung des Updates am Ende dieser Datei.
Produkt: FRITZ!Box 7490
Version: FRITZ!OS 6.05 (113.06.05)
Sprache: deutsch
Release-Datum: 06.03.2014
Neue Features: - Verbesserungen für DSL, Internet, WLAN, Telefonie, Sytem, Mediaserver und USB (6.05)
Version: FRITZ!OS 6.05 (113.06.05)
Sprache: deutsch
Release-Datum: 06.03.2014
Neue Features: - Verbesserungen für DSL, Internet, WLAN, Telefonie, Sytem, Mediaserver und USB (6.05)
Installation hat super geklappt.
Sieht aber eher nach einem Bugfix, als nach neuen Features aus.
TOP 10 Java 8 Mindmap oder was gibt es Neues in Java 8?
Wie kann mit dem Mac OS X unter Eclipse ein JavaFX Programm erstellt werden, da Swing in Java 8 deprecated ist?
Es muss die JavaFX lib dem Classpath hinzugefügt werden. Die liegt auf dem Mac unter:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar
Dann z.B. ein Klasse von javafx.application.Application
ableiten und die start
Methode überschreiben. Wir wollen nur einen Button anzeigen, der seinen Text bei klick ändert. Hier der ganze JavaFX Code:
package de.wenzlaff;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
// Classpath um JavaFX jfxrt.jar ergänzen, es liegt in:
// /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar
public class StartFxGui extends Application {
private Button button;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
button = new Button("Mein erstes JavaFX Programm!");
button.setOnAction(new EventHandler
@Override
public void handle(ActionEvent arg0) {
button.setText("cool");
}
});
VBox root = new VBox();
root.getChildren().add(button);
Scene scene = new Scene(root, 200, 200);
stage.setScene(scene);
stage.show();
}
}
Wie kann das blinken der LED am CUL abgeschaltet und damit Strom gespart werden?
Wer einen CUL am Raspberry Pi hat wo Fhem läuft, den nervt evl. das blinken der LED.
Das kann aber mit dem folgenden Befehl abgeschaltet werden:
set myCUL led 00
Also mit zweimal 00 und dann auf set klicken:
Man kann die LED auch wieder an oder auf blinken schalten mit:
aus 00
an 01
blinken 02
So kann man auch Strom sparen, immerhin 20 mA ;-). Das macht im Jahr wieviel?
Wie kann ich den die LEDs am rPi ausschalten?
Wie kann die neue SYSMON Funktion ShowValuesText auf den Fhem Server mit Raspberry Pi für Pushover und E-Mail genutzt werden?
Das coole Tool SYSMON im Fhem Server kann nun auch seit ein paar Tagen seine Informationen als Text mit der Funktion SYSMON_ShowValuesText wiedergeben. Diese Infos können dann wie hier als HTML Tabelle auch per E-Mail oder Pushover versendet werden:
Ich habe es in meiner täglichen Pushover Benachrichtigung eingefügt, so bekomme ich immer um 12 Uhr diese Meldung direkt auf mein Handy bzw. iPad:
Hier der entsprechende Code, für die fhem.cfg:
#
# Fhem: Um 12 Uhr täglich den rPi Systemstatus versenden
#
define pushSystmonStatus at *12:00:00 {\
my $sysinfo=SYSMON_ShowValuesText('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: °C', 'uptime_text:System up time:', 'fhemuptime_text:FHEM up time', 'ram:RAM', 'idletime_text:idle time', 'stat_cpu_text:CPU'));;\
system ("curl -s -F 'token=-dein Token-' -F 'user=-dein User' -F 'message=$sysinfo' -F 'title=Fhem Systemstatus' http://api.pushover.net/1/messages.json");;\
}
Wenn man alle Parameter haben will, kann man auch einfach nur sysmon verwenden:
my $sysinfo=SYSMON_ShowValuesText('sysmon')
Für die Pushover Benachrichtigung wird aber nicht alles angezeigt, da die max. Anzahl an Zeichen bei 512 liegt. Aber für E-Mail oder andere Zwecke gehts.
Noch weitere Ideen?
Mit Mac OS X Maverick einen CUL CC1101 868Mhz von Busware für FS20 für den Raspberry Pi mit culfw 1.55 flashen und in Fhem einbinden
Der CUL-V3-OEM CC1101 für 868 Mhz von Busware mit fester lambda/4 Mikroantenne wird ohne Firmware geliefert. CUL V3 – ATMega32U4 Prozessor, 2,5 kB RAM, 32 kB Flashmemory, 1 kByte EEPROM, Herstellungs Video):
Zuerst muss also der CUL mit einer aktuellen Firmware geflasht werden, so wie
hier für Mac OS X beschrieben. Also die aktuelle culfw 1.55 Firmware oder neuer laden und in ein Verzeichnis entpacken.
Dann brauchen wir noch das Programm zum flashen der Firmware, welches wir mit
sudo port install dfu-programmer
auf der Konsole installieren können.
Testen ob der Programmer richtig installiert wurde geht mit
$ dfu-programmer
Ausgabe: „Mit Mac OS X Maverick einen CUL CC1101 868Mhz von Busware für FS20 für den Raspberry Pi mit culfw 1.55 flashen und in Fhem einbinden“ weiterlesen
Eclipse (altgr. ἔκλειψη ‚Sonnenfinsternis‘, ‚Finsternis‘, ‚Verdunkelung‘) vs. Neumond lat. interlunium
Wer wissen will, wann Neumond bzw. Vollmond ist, kann die Daten von -2000 bis in das Jahr 4000 auf den Tabellen der NASA nachschlagen.
Z.b. im Jahr 2014:
1 2 3 4 5 6 7 8 |
Year New Moon First Quarter Full Moon Last Quarter Jahr Neumond Vollmond 2014 Jan 1 11:14 Jan 8 03:39 Jan 16 04:52 Jan 24 05:19 Jan 30 21:39 Feb 6 19:22 Feb 14 23:53 Feb 22 17:15 Mar 1 08:00 Mar 8 13:27 Mar 16 17:09 Mar 24 01:46 Mar 30 18:45 Apr 7 08:31 Apr 15 07:42 t Apr 22 07:52 Apr 29 06:14 A May 7 03:15 May 14 19:16 May 21 12:59 |
und 2015
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Year New Moon First Quarter Full Moon Last Quarter Jahr Neumond Vollmond 2015 Jan 5 04:53 Jan 13 09:47 00h01m Jan 20 13:14 Jan 27 04:48 Feb 3 23:09 Feb 12 03:50 Feb 18 23:47 Feb 25 17:14 Mar 5 18:06 Mar 13 17:48 Mar 20 09:36 T Mar 27 07:43 Apr 4 12:06 p Apr 12 03:44 Apr 18 18:57 Apr 25 23:55 May 4 03:42 May 11 10:36 May 18 04:13 May 25 17:19 Jun 2 16:19 Jun 9 15:42 Jun 16 14:05 Jun 24 11:03 Jul 2 02:20 Jul 8 20:24 Jul 16 01:24 Jul 24 04:04 Jul 31 10:43 Aug 7 02:03 Aug 14 14:54 Aug 22 19:31 Aug 29 18:35 Sep 5 09:54 Sep 13 06:41 P Sep 21 08:59 Sep 28 02:50 t Oct 4 21:06 Oct 13 00:06 Oct 20 20:31 Oct 27 12:05 Nov 3 12:24 Nov 11 17:47 Nov 19 06:27 Nov 25 22:44 Dec 3 07:40 Dec 11 10:29 Dec 18 15:14 Dec 25 11:11 |
Die Daten sind da in UTC (koordinierte Weltzeit) angegeben. Für Deutschland muss dann zu den Zeitangabe noch zwei Stunden jeweils hinzugezählt werden. So das der Neumond 2014, der der Frühjahrs-Tagundnachtgleiche am nächsten kommt, auf den 30. März um 18:45+2= 20:45 Uhr fällt.
Der Neumond findet weltweit zum selben Zeitpunkt statt (der aber in verschiedenen Zeitzonen verschiedenen Ortszeiten entspricht).
Der neue Arduino-Clone ist heute eingetroffen: „Schokuino“ ( neue essbare Nanotechnologie )
Der neue Arduino-Clone „Schokuino“ wurde mir heute von den lieben Kollegen zum Abschied überreicht. Das Arduino-Logo mit den 2 x + gefällt mir auch besser als das Orginal. Welche CPU da wohl verbaut wurde? Bahlsen-CPU aus Hannover oder eine von Dauerbrot.de? Der Kuchen inkl. Leiterbahnen hat auch sehr lecker geschmeckt.
Da bleibt nach 7 Jahren kein Auge trocken 😉 Danke … keeping in touch …
Wie wird der JeeLink an einen Raspberry PI mit Fhem installiert bzw. eingebunden?
1. JeeLink in rPi USB stecken.
2. Checken ob er erkannt wurde mit lsusb in der Konsole.
Ausgabe:
...
Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
...
3. Weitere Infos in der Boot-Log mit dmesg ausgeben.
Ausgabe:
...
[ 9.069977] usb 1-1.2: Detected FT232RL
[ 9.075480] usb 1-1.2: Number of endpoints 2
[ 9.109559] usb 1-1.2: Endpoint 1 MaxPacketSize 64
[ 9.115965] usb 1-1.2: Endpoint 2 MaxPacketSize 64
[ 9.156771] usb 1-1.2: Setting MaxPacketSize 64
[ 9.168775] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
...
An der Ausgabe kann der verbundenen Port erkannt werden ( hier /dev/ttyUSB0 ).
4. Den JeeLink in der fhem.cfg eintragen mit dem ermittelten Port:
define myJeeLink JeeLink /dev/ttyUSB0
In Fhem gibt es für den JeeLink eine Modul-Beschreibung.
Nachdem der Fhem-Server restartet wurde, ist der JeeLink vorhanden:
Details:
Und die Events werden ausgegben. Hier nur das allgemeine rauschen von irgendwelchen Sensoren die auf der 868 MHzFrequenz senden:
Unter Mac Maverick iOS 10.9.1 den Speicherort für Backups von iTunes für iPhone, iPad… von SSD auf Festplatte oder ähnlich verschieben
Zuerste den Backup Ordner lokalisieren, wo bisher die Backups gespeichert werden.
Das geht über das Menü: iTunes-Einstellungen-Geräte
mit der Maus, dann eine Backup Datei in der Listbox selektieren und mit der Rechten-Maustaste im Kontextmenü „Im Finder Anzeigen“ wählen.
Unten den Pfad ablesen:
z.B.:
~/Library/Application Support/MobileSync/Backup
Dann iTunes schließen.
Alle backups aus den obigen Ordner in den neuen Ziel-Ordner auf die Festplatte verschieben
Neues Festplatten Verzeichnis anlegen z.B.:
mkdir /Volumes/Macintosh\ HD\ 2\ TB/iTunes/Backup
Den alten Ordner löschen:
rmdir ~/Library/Application Support/MobileSync/Backup
Dann einen Symbolischen-Link mit ln -s im Terminal erzeugen (Pfad anpassen).
Also z.B.:
ln -s /Volumes/Macintosh\ HD\ 2\ TB/iTunes/Backup ~/Library/Application\ Support/MobileSync/Backup
Nun kann iTunes wieder gestartet werden, und alle Backups werden jetzt immer dort gespeichert und die kopierten sind auch wieder da.
Für die iTunes Media siehe auch hier.
Wie wird ein Fensterkontakt HM-SEC-SC-2 von Homematic mit einem Heizungsthermostat HM-CC-RT-DN mit Fhem auf Raspberry Pi gekoppelt
Wie hier sehr gut beschrieben vorgehen.
1. Den Fensterschalter mit dem Heizungsventil HM-CC-RT-DN peeren. Das läuft über Kanal 03 WindowRec mit:
set
z.B.:
set az_Fenster_Schalter peerChan 0 az_Heizungsthermostat_WindowRec single
dann und das ist Wichtig, am Fenster-Schalter den Kontakt mit dem Kugelschreiber drücken, sonst wird es nicht ausgeführt.
Kontrolle unter Attributes, bei der peerIds muss die ID vom Schalter stehen:
2. Wenn das Fenster aufgeht, soll die Temperatur autom. abgesengt werden. Dazu wird der im Heizungsthermostat integrierte Schalter über Kanal 4 ClimRT_tr ausgeschaltet mit:
set
z.B.:
set az_Heizungsthermostat_Klima regSet winOpnMode off
Kontrolle in den Readings unter R-winOpnMode, muss dann auf off gesetzt sein.
3. Dann soll noch die Temperatur auf 5 Grad (mögliche Werte von 5-30 Grad) eingestellt werden (Kanal 3), die autom. beim öffnen des Fensters eingestellt werden soll mit
set
z.B.:
set az_Heizungsthermostat_WindowRec regSet winOpnTemp 5 az_Fenster_Schalter
Für den älteren Thermostat HM-CC-TC ist die Syntax etwas anders (6-30 Grad, anderer Variablenname)
set
z.B.
set wz_Wandthermostat_WindowRec regSet tempWinOpen 6 wz_Terrassentuer_Schalter
4. Dann noch ein save und rereadcfg.
Wenn alles ok ist, wird nun beim öffnen des Fensters auf 5 Grad geregelt und wenn das Fenster wieder geschlossen wird, auf die eingangs eingestellte Temperatur zurück gestellt.
Diese Regelung kann man gut am folgenden Diagramm erkennen. Das Ventil (blau) wird jeweils geschlossen wenn das Fenster geöffnet wird. Die Ziel Temperatur (grün) geht auf 5 Grad:
Sicherheitsupdate 7.0.6 für iOS 6 und 7 macht es evl. nötig, die iTunes Media von der SSD auf die Festplatte zu verschieben, um für backups Platz zu schaffen
Das neue Sicherheitsupdate für iOS 6 und 7 für iPad…, iPhone und auch Apple TV muss installiert werden, um die Probleme mit SSL/TLS zu fixen.
Vor der Installation wird jeweils ein Backup angefertigt, das für die vielen Apple Geräte doch viel Platz einnimmt. Dafür ist nun meine SSD zu klein. Deshalb wird die iTunes Media wie hier beschrieben auf die Festplatte verschoben.
Für die Backup Dateien siehe diese Anleitung.