Raspberry4 mit GPIO klappt nicht

Bei Raspbbian (Debian auf dem Raspberry) gibt es das Programm gpio womit man den Ausgang/Eingang etc steuern kann.

Das aber auffällt ist, dass “readall” nicht funktioniert (Unbekanntes Board 17). Anfangs dachte ich an einen Fehler, aber ein apt upgrade brachte keinen Erfolg. Auch andere Programme zu steuern des GPIO Ports schlugen fehl.

Die Lösung ist eine neue Version per Hand zu installieren.

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

Danach klappt es bei mir mit dem schalten. 😃

Ich steuere jetzt meinen Lüfter auf dem Raspberry Pi mit Node Red 😃 Ein Beschaltungsplan findet man hier. Ich nutze da aber nur den Anteil mit dem Transistor. Den bekommt man z.B. bei ELV für wenige Cent. Etwas Schrumpfschlauch drüber und fertig 😃 Passende Steckbrücken gibt es auch 😃

[{"id":"c071c762.57f998","type":"ui_chart","z":"bdd1b89d.421f98","name":"","group":"64f6d013.8d639","order":3,"width":0,"height":0,"label":"CPU Temp","chartType":"line","legend":"false","xformat":"dd HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"20","ymax":"","removeOlder":"2","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":430,"y":240,"wires":[[]]},{"id":"ca9663e7.644d5","type":"ioBroker in","z":"bdd1b89d.421f98","name":"CPU Temp","topic":"moma.0.cpuTemperature.main","payloadType":"value","onlyack":"","func":"all","gap":"","x":100,"y":200,"wires":[["c071c762.57f998","a6b7a76.0ef4558"]]},{"id":"3ce6d04a.15a9a","type":"inject","z":"bdd1b89d.421f98","name":"","topic":"","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":40,"wires":[["90974c36.e234a"]]},{"id":"98ebd182.46717","type":"inject","z":"bdd1b89d.421f98","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":80,"wires":[["90974c36.e234a"]]},{"id":"90974c36.e234a","type":"pi-gpiod out","z":"bdd1b89d.421f98","name":"gpio17 11d","host":"::1","port":8888,"pin":"17","set":true,"level":"0","out":"out","sermin":"1000","sermax":"2000","x":630,"y":40,"wires":[]},{"id":"a6b7a76.0ef4558","type":"function","z":"bdd1b89d.421f98","name":"Steuerung","func":"var temp = parseInt(msg.payload);\nvar result = -1;\nif (temp >= 50) {\n    result = 1;\n}\nif (msg.payload < 45){\n    result = 0;\n}\n\nmsg.payload=result;\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":160,"wires":[["6c03f947.cff3b8"]]},{"id":"6c03f947.cff3b8","type":"switch","z":"bdd1b89d.421f98","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"-1","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":470,"y":140,"wires":[[],["90974c36.e234a","e03796c8.4f0ff8"]]},{"id":"e03796c8.4f0ff8","type":"debug","z":"bdd1b89d.421f98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":710,"y":180,"wires":[]},{"id":"64f6d013.8d639","type":"ui_group","z":"","name":"CPU","tab":"9f7696fe.37b808","disp":true,"width":"6","collapse":false},{"id":"9f7696fe.37b808","type":"ui_tab","z":"","name":"System","icon":"dashboard","disabled":false,"hidden":false}]

Update: Damit die Ansteuerung klappt, habe ich noch pigpiod auf dem Raspberry aktiviert und das entsprechende Node Red Modul benutzt. Damit kann Node Red auch auf einem anderen System laufen!

Veröffentlicht unter Bash, Linux, Linux-Welt | Verschlagwortet mit , , , , , , | Schreib einen Kommentar

Apple Music via Browser

Musik am PC/Mac über den Browser

Mit dem Apple MusicKit ist es möglich Apple Music, jetzt auch über den Browser nutzen zu können. Dafür wurde musi.sh ins Leben gerufen und steht als Open-Source Projekt zur Verfügung auf GitHub.

Mit Musi.sh kann man fast alles was man auch über iTunes mit Apple Music machen kann. Man kann keine Musik kaufe – das ist iTunes 🙂

Neben den eigenen Playlists steht die Liste der Künstler, Alben, Songs und der zuletzte hinzugefügten zur Auswahl.

Die kuratierten Bereiche “Für dich” und “Entdecken” (Browse) stehen auch zur Verfügung. Einzig das Radio ist leider nicht verfügbar. Radio soll aber auch noch kommen.

Und wer datenschutzrechtliche Bedenken hat kann die Software ja auch selbst hosten 🙂

….neben der Qualität kann man auch noch last.fm connecten.

Veröffentlicht unter Nützliches | Verschlagwortet mit , , , , | Schreib einen Kommentar

Warum man .gitKeep nicht verwenden sollte

Wer mit Git arbeitet wird irgendwann an den Punkt kommen wo man gerne ein leeres Verzeichnis hinzufügen möchte – aber das geht nicht. Es muss wenigstens eine Datei enthalten sein.

Die einfachste Lösung wäre jetzt, eine leere Datei anzulegen – nennen wir sie einfach .gitkeep

Das nächste Problem kommt nun aber wenn Dateien während der Entwicklung im Ordner angelegt werden. Also muss man diesen Ordner in der .gitignore (im Root Ordner) eintragen.

Es geht aber auch einfach!

einfach und simpel kann man eine .gitignore in diesem Ordner anlegen – wer sagt denn, dass das nur im Rootordner geht?!

Dadurch werden alle Dateien in dem Ordner ignoriert, die Datei selbst kann von Git sofort hinzugefügt werden und man muss sonst nichts machen 🙂

Veröffentlicht unter git, Linux-Welt | Verschlagwortet mit , , | 2 Kommentare

[UniFi] Umstellung Gäste-Portal auf https

In meinem Beitrag vom 03. Januar 19 hatte ich erläutert wie man den UniFi CloudKey auf https umstellen kann. Ist das geschafft, kann man nun das Gäste-Portal und auch die Anfragen auf https umstellen. Damit sichert man, das oftmals ohne Verschlüsselung aufgestellte WLAN ab und niemand kann Login Daten oder den Voucher etc. pp. mit lesen.

Es müssen dazu unter Einstellungen > Gäste Portal (Settings > Guest Control) die 3 Haken gesetzt werden und die Webseite des Controllers angegeben werden. Es muss in diesem Fall ein Hostname sein, da Let´s Encrypt keine Zertifikate für IP-Adressen ausstellt.

Danach auf Speichern klicken – Fertig

Die nächsten Gäste werden nun auf die mit https gesicherte Seite gelangen und können sich dort einloggen.

Veröffentlicht unter Linux-Welt | Verschlagwortet mit , , , , , , , , | Schreib einen Kommentar

UniFi Controller mit Let´s Encrypt (SSL) Zertifikat

UniFi ist das Netzwerksystem von Ubiquiti mit einem tollem Softwaresystem aus Software-Controller, vielfältigen WLAN Access-Points, Netzwerkswitchen, Routern und das alles zu guten Preisen. Der Controller (CloudKey) bietet auch die Möglichkeit ein Hotspot-Gäste-Portal anzubieten. Damit der Controller mit SSL Verschlüsselung operiert sind einige Vorbereitungen notwendig.

Vorbereitungen

Als Namen für den Controller habe ich wlan.sotzny.de gewählt.

1. Natürlich benötigt man vorher das Let´s Encrypt Zertifikat. Dafür habe ich bei mir im Froxlor eine Subdomain wlan.sotzny.de angelegt und Froxlor kümmerte sich darum das Domain zu überprüfen und das Zertifikat zu besorgen. Hier kann man auch einen eignen Prozess etablieren der das für einen macht. Am Ende muss man die .crt und .key Datei besitzen.

2. Auf dem UniFi Security Gateway muss in der Datei /etc/hosts ein Eintrag für die Domain mit der IP des CloudKeys erfolgen. Dazu verbindet man sich mit dem Device Passwort (aus Site) und dem Benutzernamen admin

echo 192.168.100.100   wlan.sotzny.de  >> /etc/hosts

Dies ist notwendig, damit intern die Nutzer auf den Cloudkey umgeleitet werden.

Einspielen des Zertifikates

Es gibt zwei Stellen wo das Zertifikat genutzt werden muss. Einmal läuft auf dem Cloudkey ein nginx der einfach nur die .crt und die .key Datei benötigt.

Die Zertifikatsdateien sind per scp auf den cloudkey nach /etc/ssl/private zu kopieren:

# per SSH auf den CloudKey Verbinden - Device Passwort aus Einstellungen > Site
ssh root@unifi

# nginx beenden
/etc/init.d/nginx stop

# in diesem Ordner liegen die SSL Zertifikate
cd /etc/ssl/private

# entfernen der alten Dateien - optional sichern
rm cloudkey.crt
rm cloudkey.key

# Link setzen von den Let´s Encrypt Certs auf die neuen Orte
ln -s wlan.sotzny.de.crt cloudkey.crt
ln -s wlan.sotzny.de.key cloudkey.key

# Restart
/etc/init.d/nginx start

Nach einem Restart ist Port 443 auf dem CloudKey bereits umgestellt. Aber der Controller selbst ist eine JAVA-Anwendung die auf Port 8443 läuft. Um der Java-Machine das Let´s Encrypt Zertifikat zu überreichen muss man einen Java KeyStore (JKS) erstellen. Für die Erstellung benötigt man zuerst die Schlüssel als PKS12.

Dafür und für den JKS wird ein Passwort benötigt. Der Controller kennt das Passwort und kann den JKS öffnen.

Das Passwort lautet: aircontrolenterprise

# beenden des UniFi Controllers
service unifi stop

# alten JKS löschen
rm unifi.keystore.jks

# umwandeln nach pkcs12
openssl pkcs12 -export -in cloudkey.crt -inkey cloudkey.key -out unifi.p12 -name unifi -password pass:aircontrolenterprise

# JKS erstellen
keytool -importkeystore -srckeystore unifi.p12 -srcstoretype PKCS12 -srcstorepass aircontrolenterprise -destkeystore unifi.keystore.jks -storepass aircontrolenterprise

# alte pkcs12 Datei wieder löschen
rm  unifi.p12 

Jetzt wurde der neue JKS erstellt und kann benutzt werden. Damit der Zugriff gewährleistet ist sollten noch die Dateirechte neu gesetzt werden.

# Berechtigungen neu setzen
chown root:ssl-cert cloudkey.crt cloudkey.key unifi.keystore.jks
chmod 640 cloudkey.crt cloudkey.key unifi.keystore.jks

# restart
/etc/init.d/nginx restart; /etc/init.d/unifi restart 
Port 443 (nginx) funktioniert..
Port 8443 (Java) auch – natürlich nur intern zu erreichen 🙂

Automatisches Update

Damit nun das Zertifikat ständig aktualisiert wird sollte man nun einen Cron-Job einrichten, welcher das Let´s Encrypt Zertifikat auf den CloudKey kopiert und das Skript zum Austausch aufruft. 1x die Woche sollte genügen 😀

Veröffentlicht unter Blogroll | Verschlagwortet mit , , , , , | 2 Kommentare