Schlagwort: Hardware

Powerbutton in Schreibtisch einbauen

Da mich mein PC an der Stelle, wo er vorher unter dem Schreibtisch stand, gestört hat, habe ich ihn an eine andere Stelle gestellt. Nur waren jetzt die Anschlüsse und vor allem der Powerbutton nicht mehr so leicht erreichbar.

Die Anschlüsse hatte ich bereits vorher auf meinen Schreibtisch geholt durch eine Kabeldurchführung mit integriertem USB Hub und Audio.

USB Hub in Schreibtisch

Ich brauchte also noch eine Lösung für den Powerbutton. Dazu habe ich mir einen beleuchteten Taster für Powerbutton und Power LED und noch eine zusätzliche LED für die HDD LED bestellt:

Bei einer weiteren Kabeldurchführung ersetzte ich die Blende durch eine neue, 3D-gedruckte mit passenden Löchern:

Blender Zeichnung von Blende für Powerbutton

https://www.thingiverse.com/thing:6895930

So kann ich jetzt ohne Probleme meinen PC an- und ausschalten, ohne dass er neben mir stehen muss.

Pooltemperatursensor – autonome Stromversorgung mit Solar

Vor anderthalb Jahren habe ich davon berichtet, wie ich einen Pooltemperatursensor gebaut habe. Der Akku hielt zu Beginn noch ca. 2–3 Monate. Da ich aber oft vergessen habe, ihn rechtzeitig aufzuladen, war er oft sehr tief entladen, was dazu führte, dass die Akkulaufzeit sich nach dem 3. bis 4. Mal aufladen schon auf 1–2 Wochen verkürzte. Deswegen sollte ein Solar-Panel helfen, die Akkulaufzeit auf den ganzen Sommer zu verlängern, wenn nicht sogar den Sensor komplett autonom mit Strom zu versorgen.

Welche Leistung muss die Solarzelle haben?

Diese Frage stand natürlich bei der Planung als Erstes im Raum. Von der PV-Anlage auf dem Dach hatte ich einige Daten, die ich versucht habe, ins Kleine zu übertragen.

Im Sommer (von April bis Oktober) produzierte diese durchschnittlich ungefähr 40 kWh pro Tag. Bei einer Maximalleistung von 10kW sind das 4 kWh/kW/Tag bzw. 4 Wh/W/Tag.

Den Leistungsbedarf des Sensors berechnete ich aus Akkulaufzeit und Akkukapazität. Der Akku hat 2500mAh bei 3,7V. Das sind 9,25Wh. Das reichte für ca. 6,5 Tage (hier mache ich den größten Fehler, da die Akkukapazität aufgrund der vielen Ladevorgänge schon sehr gering war. Dieser Fehler bewegt mein Endergebnis nach oben, d. h. ich berechne zu viel Leistung. Das ist besser als zu wenig.). Damit komme ich auf 1,42Wh/Tag. Pro W produziere ich 4Wh. Insgesamt benötige ich also 1,42Wh/Tag : 4Wh/W/Tag = 0,35W.

Als nächstes berechnete ich den Verlust meines Ladereglers. Hier habe ich auf der 5V Seite bei 3,7V 0,16A gemessen (die Spannung bricht auf 3,7V zusammen, wenn entsprechend wenig Leistung vorhanden ist). Das sind 0,592 W. Auf der Seite des Akkus habe ich bei 3,47V 0,121A gemessen. Das sind 0,42W. Es kommen also nur ca. 0,42W/0,592W = 71 % der Energie durch. Hier mache ich wieder einen größeren Fehler, da ich eigentlich schon einen Verlust bei der Berechnung im 2. Absatz einen Verlust mit eingerichtet habe, nämlich den Verlust des Wechselrichters. Da ich diesen aber nicht kenne, rechne ich den Verlust meines Ladereglers nochmal obendrauf. Auch hier wird das Endergebnis nach oben bewegt, was aber, wie schon erwähnt, nicht so schlimm ist, als andersherum. Meine 0,35W multipliziere ich jetzt also noch mit 1/0,71, um dann auf ein Endergebnis von 0,35W*(1/0,71) = 0,49W zu kommen.

Eine Solarzelle mit mindestens 0,5W wird also laut dieser Rechnung locker ausreichen, da ich an zwei Faktoren zu viel gerechnet habe.

Auswahl der Komponenten

Auf der Suche nach einer passenden Solarzelle bin ich auf dieses Modell mit 0,75W gestoßen. Diese müsste eigentlich locker reichen. Da ich aber noch nicht so viel Vertrauen in meine Rechnung gehabt habe, habe ich zusätzlich noch ein größeres Panel mit 2,9W bestellt.

Das Solar-Panel schließe ich dann direkt per Micro-USB-Kabel an die Ladeplatine von meinem Sensor an.

Zusammenbau

Die Solarzelle habe ich auf eine Abzweigdose geklebt, worin ich sie dann an das Kabel, das von der einen Dose in die andere geht, angeschlossen habe. Als Verbindungsstück zwischen den 2 Dosen dient eine 3D-gedruckte Halterung, mit der ich die Solarzelle auch ausrichten kann.

Im Gehäuse ist das Solar-Panel einfach per USB-Kabel an die Ladeplatine direkt angeschlossen.

Geht meine Rechnung auf?

Ich hatte ja schon Bedenken, ob ich in meiner Rechnung nicht irgendwo einen Denkfehler drin haben könnte.

In folgendem Diagramm sieht man die Spannung des Akkus in den letzten 7 Tagen. Man sieht, dass sie zwar nachts etwas gesunken ist, tagsüber konnte der Akku aber wieder komplett aufgeladen werden und das, obwohl die letzten Tage eher bewölkt und regnerisch waren.

Ein Upgrade für den Homeserver Teil 15 – Stromverbrauch

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Zum Abschluss dieser Serie möchte ich noch ein paar Worte über den Stromverbrauch verlieren. Diesen habe ich über mehrere Wochen mit einer Shelly Plug S gemessen. Das Ergebnis: Im „Leerlauf“ braucht der Server inklusiv zweier Festplatten ca. 20-25W. Mit Leerlauf meine ich hier keinen Leerlauf im Sinne von „Der Server macht nichts“, sondern ich meine den Zustand, den der Server hat, wenn man gerade nicht aktiv auf ihn zugreift, z. B. durch Hochladen von Dateien oder durch großen Datenverkehr übers VPN. Es laufen also natürlich trotzdem einige Dienste, die Leistung brauchen.

Auf das Jahr hochgerechnet macht das 0,0225kW × 24h × 365 = 197,1 kWh im Jahr. Das sind je nach Strompreis knapp 70 € im Jahr oder 6 € im Monat.

Ein Upgrade für den Homeserver Teil 1 – Die Hardware

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Auswahl der Hardware

Es sollte ein Mini-PC sein, der möglichst wenig Strom braucht, aber trotzdem gut Leistung hat. Dabei fiel meine Wahl auf einen „ECS Elitegroup LIVA Z3 Plus„. Dieser hat einen i5 aus dem Jahr 2019 mit nur 15W TDP und ist für ~200 € zu haben.

Dazu brauchte ich noch eine SSD. SSD-Speicher ist ja in den letzten Jahren sehr billig geworden. Deshalb durften es 500 GB schon sein. Ich entschied mich für eine „Crucial P3

Arbeitsspeicher braucht der PC auch noch. Maximal sind 64 GB möglich. Ich brauche zwar viel, da ich vermutlich mehrere VMs laufen lassen möchte, 64 GB wären aber schon sehr viel. 32 GB RAM sollten reichen. (Vorher hatte ich 8 GB)

Als Letztes brauchte ich noch eine große Festplatte. Ich habe zwar bereits eine, die reicht mit ihrem einen Terabyte aber kaum mehr aus, da sie mittlerweile Speicher für Nextcloud, Überwachungskameraaufnahmen (inkl. Aufnahmen der Nistkastenkamera), Medien für meinen Jellyfin-Server und Backups meines PCs und des Servers ist. Außerdem möchte ich häufige Aufnahmen, die ständig überschrieben werden (Überwachungskamera) aus Datensicherheitsgründen getrennt haben von wichtigen Dateien wie die der Nextcloud. Dabei fiel meine Wahl auf eine externe 4 TB 3,5″ Festplatte.

Zusammenbau

Im Lieferumfang des Mini-PCs enthalten sind der Mini-PC selbst, das Netzteil, Schrauben, ein Wärmeleitpad dessen Sinn ich noch nicht verstanden habe, eine Halterung, um den PC per VESA-Halterung an einem Monitor zu befestigen und eine Anleitung.

Verpackung des Mini-PCs
Verpackung des Mini-PCs
Lieferumfang des Mini-PCs
Lieferumfang des Mini-PCs

Der Zusammenbau ist nicht kompliziert. Der Mini-PC lässt sich mit 4 Schrauben öffnen. Dann kann man den RAM und die SSD wie gewohnt einbauen.

Öffnen des Mini-PCs
Öffnen des Mini-PCs
Geöffneter Mini-PC
Geöffneter Mini-PC
Mini-PC mit eingebautem RAM und SSD
Mini-PC mit eingebautem RAM und SSD

Test mit Ubuntu

in Ubuntu angekommen wollte ich zunächst ausprobieren, ob alles an Hardware korrekt erkannt wurde. Das war zunächst nicht der Fall. Von der SSD war nichts zu sehen. Also habe ich den Rechner nochmal aufgeschraubt und gesehen, dass die SSD nicht komplett eingerastet war. Das ging hier etwas schwerer als gewohnt.

CPU und RAM wird erkannt
CPU und RAM wird erkannt
SSD wird erkannt
SSD wird erkannt
HDD wird erkannt
HDD wird erkannt

Anschließend wollte ich noch mit dem Programm „cpuburn“ testen, wie warm der PC unter Volllast wird. Mittels

und anschließendem

konnte ich dann mit

die Temperatur auslesen. Diese bewegte sich nach einigen Minuten bei knapp 80 °C. Das ist in Ordnung. Ein

ergab, dass alle Kerne auf stabilen 2,8GHz takten. Es finden also anscheinend keine Drosselung aufgrund der Temperatur statt.

Der Rechner ist, besonders unter Last, übrigens recht laut. Da er bei mir im Keller stehen wird, macht mir das nichts aus. Als Desktop-Rechner kann ich ihn aber nicht empfehlen.

Die Hardware ist jetzt fertig zusammengebaut und getestet. Im nächsten Schritt werde ich Proxmox auf dem Mini-PC installieren.

Tribit Maxsound Plus Ladeelektronik reparieren

Vor gut einem Jahr berichtete ich darüber, dass mein Bluetooth-Lautsprecher den Geist aufgegeben hat und konnte feststellen, dass es wohl an der Ladeelektronik liegt. Damals konnte ich aber keine passende Ladeplatine finden.

Wenn man nach dem richtigen Begriff sucht, findet man doch ganz schnell was Passendes. Meine Idee war damals nach einer 7,4 bzw. 8,4V Ladeplatine zu suchen. Der Begriff, den es hier braucht, ist aber „2S“, denn es handelt sich um 2 3,7V Akkus, die in Serie geschaltet sind. Also habe ich für knapp 5 € diese Platine gekauft:
https://www.ebay.de/itm/275276607102?var=575545698944

Einbau

Den USB-C-Anschluss auf der Platine konnte ich leider nicht verwenden, da sie sonst nicht in das Gehäuse des Lautsprechers hineingepasst hätte. Also eben weiterhin mit dem Micro-USB Anschluss. Die Verdrahtung ist recht einfach: Das Kabel des Micro-USB Anschlusses im Gehäuse an VIN/GND und sowohl die Anschlüsse der Batterie, als auch die Anschlüsse der Hauptplatine des Lautsprechers an BAT/GND. Jetzt kann der Lautsprecher schon wie gewohnt geladen und verwendet werden.

Ladeplatine von oben
Testaufbau

Die Platine konnte ich dann ganz hinten im Lautsprecher verstecken.

Verstecken der Ladeplatine

Vorher habe ich noch ein Loch ins Gehäuse an der Stelle gebohrt und mit Heißkleber aufgefüllt, an der ungefähr die LEDs der Ladeplatine liegen, sodass man auch von außen sehen kann, ob der Lautsprecher gerade lädt oder schon voll ist.

LadeLED von außen

Als Nächstes wollte ich noch die alten Lade-LEDs auslöten, da ich sie nicht mehr brauchte und die rote LED bei mir dauerhaft an war und somit denn Akku leer zog.

Das hat leider nicht so geklappt, wie ich es mir vorgestellt habe, aber immerhin habe ich mit meiner Aktion die LED zerstört, was zwar nicht das war, was ich vorhatte, aber am Ende den gleichen Effekt hatte.

Und wieder mal wurde ein Gerät vorm Müll gerettet 😉

Waveshare Modbus Relais in Homeassistant

In diesem Beitrag möchte ich dir zeigen, wie ich ein 8-fach Modbus Relais von Waveshare in Homeassistant eingebunden habe.

Material

Aufbau

Der Aufbau ist nicht kompliziert. Die Anschlüsse A+, B- und GND müssen mit den entsprechend gleichnamigen Anschlüssen am Relais verbunden werden. Dann ist nur noch eine Spannungsversorgung für das Relais notwendig und man kann loslegen.

Mitgelieferte Software

Im Waveshare Wiki findet man neben zahlreichen Beispielen auch einen Beispielcode in Python. Dieser sendet die Daten direkt über „serial“ an das Modbus Relais und zur Berechnung der Paritätsbytes wird ebenfalls ein eigenes Pythonmodul mitgeliefert. Das ist etwas umständlich, da es für Modbus bereits fertige Pythonmodule wie minimalmodbus gibt.

Steuerung mit Minimalmodbus

Nach der Installation mit

kann das Modul verwendet werden. Folgendes wäre ein Beispielcode:

In Zeile 3 wird der Pfad zum USB -> Modbus Konverter und die ID des Relais angegeben. Die ID wird in den meisten Fällen 1 sein. Bei mir habe ich sie aber geändert, da am selben Modbus auch ein Stromzähler hängt, der die ID 1 bekommen hat. Mit den Funktionen get_relais() und set_relais(relais, on/off) kann man jetzt die Relais schalten und deren Status abfragen.

Einbindung in Homeassistant

Um das Modbus Relais in Homeassistant einzubinden, verwende ich MQTT. Dieses sollte bereits installiert und eingebunden sein. Mein Code sieht dann folgendermaßen aus:

Hinzu kommt jetzt die Anbindung an MQTT. Wichtig ist dabei

  • Z. 8: Siehe oben
  • S. 23+25: Hier werden die Statuswerte der Relais an MQTT gesendet
  • Z. 29: Hier wird das MQTT Topic subscribed, an das nachher die Befehle zum setzen gesendet werden
  • Z. 43: Hier findet die Verbindung zum MQTT Broker statt

In Homeassistant verwende ich nun folgende Konfiguration:

Jetzt kann ich die Relais auch in Homeassistant schalten. Dabei muss das Pythonskript dauerhaft laufen, was man bspw. mit einer systemd Service Unit erreicht.

Gleichzeitig Modbus Relais und Stromzähler auslesen

Da ich, wie bereits erwähnt, einen Stromzähler und Relais an einem Modbus hängen habe und immer nur ein Programm auf den Modbus zugreifen kann, muss ich im selben Skript auch den Stromzähler auslesen. Das Skript dazu sieht so aus:

Hinzu kommt hier die Verbindung zur Influx Datenbank (Z. 12) und das eigentliche Auslesen des Stromzählers ab Z. 57. Es werden auch noch andere Stromzähler, die über Tasmota angebunden sind, ausgelesen, um einige Werte zu berechnen. Wichtig hier ist auch die Variable relais_freigabe, die dafür sorgt, dass wenn gerade der Stromzähler ausgelesen wird, mit dem Setzen des Relais noch kurz gewartet wird, da dies nicht gleichzeitig passieren kann.

Bildquelle: waveshare.com, wikipedia.org

Pool-Temperatursensor mit dem ESP

Ich weiß nicht, wie ich auf die Idee gekommen bin, die Temperatur im Pool zu messen. War dann aber doch ein interessantes Projekt.

Hardware

Batteriebetrieben sollte er sein, da Netzspannung im Pool … Ihr wisst, was ich meine. Also fiel ein Raspberry schon mal weg – der braucht zu viel Strom. Etwas Kleineres musste her, ein Microcontroller, ein ESP, genauer gesagt ein Wemos D1 mini. Dazu noch ein Akku und ein Board, um den Akku aufzuladen und den ESP mit Strom zu versorgen.

Die Verkabelung des Sensors ist relativ einfach – Plus (rot) auf 5V, GND (Schwarz) auf GND und den Daten-Pin (Gelb) auf D4. Zwischen D4 und 5V muss dann noch der 4,7kOhm Widerstand geschalten werden.

Damit später der deepSleep funktioniert, müssen wir D0 mit RsT verbinden. Da jedoch dann die Verbindung über USB nicht mehr funktioniert, ist es nicht besonders sinnvoll, diese direkt zusammen zu löten. Ich mache das mit 2 kurzen Kabeln und einer Klemme.

Im Gehäuse sieht das ganze bei mir dann so aus:

Software

Eines vorweg: Mein Programm ist nicht schön und es gibt bestimmt viele Wege, es besser zu machen, aber es funktioniert. Ich sende meine Werte direkt in die Influx Datenbank (wäre – besonders bei mehreren Sensoren – über MQTT wohl sinnvoller).

Der ESP sendet dann alle 30 Minuten die Temperatur. Die Daten landen auf meinem Homeserver, wo ich sie dann mit Grafana visualisieren kann.

Visualisierung

Hier noch ein paar Beispieldaten über 7 Tage. In grün die Pooltemperatur und in gelb die Außentemperatur:

Beispieldaten Pooltemperatursensor

Tribit Maxsound Plus defekt? Mal aufschrauben…

Meine Bluetooth-Box (Tribit Maxsound Plus) wollte sich nach gut 3 Jahren nicht mehr aufladen. Also ging’s dem Lautsprecher mit Schraubenzieher und Lötkolben an den Kragen… Vielleicht gibt es ja ein Ersatzteil.

Nach ein paar Videos wurde mir klar, wie einfach das eigentlich ist. Das Schutzgitter lässt sich mit einem Schraubenzieher aufhebeln:

Tribit Maxsound
Tribit Maxsound

Und dann kann man mit acht Schrauben die Box öffnen. (Ja, der wurde einige Male nass. Der weiße Dreck ist Kalk)

Tribit Maxsound

Evtl. muss man dann noch etwas mit dem Schraubenzieher hebeln.

Tribit Maxsound

Und schon sieht man die Innereien.

Was war nun bei mir kaputt?

Da sich die Tribit nicht mehr aufgeladen hat, vermutete ich zunächst den Akku. Nach ein paar Messungen am Akku und der Platine stellte sich aber heraus, dass wohl die Ladeelektronik defekt sein muss. Den Akku konnte ich mit einem 7,5V Netzteil aufladen und dann funktionierte wieder alles.

Bis auf die Ladeelektronik. Aufladen konnte ich ihn immer noch nicht über die USB-Buchse. Also kaufte ich mir ein 8V Netzteil und legte die Anschlüsse des Akkus und den Anschluss an der Platine nach außen (An der Stelle, wo sich die Halteschlaufe befand). So kann ich den Lautsprecher wahlweise im Akkubetrieb oder im Netzbetrieb laufen lassen. Den Akku kann ich so mit einem Labornetzteil auch laden (Nebenher IMMER die Spannung messen, um den Akku nicht zu überladen) ohne die Box wieder aufzuschrauben.

Tribit Maxsound
Lautsprecher im Akkubetrieb
Tribit Maxsound
Lautsprecher im Netzbetrieb

Die Schlaufe passte gerade noch rein:

Tribit Maxsound

Wasserdicht ist der Tribit nun natürlich nicht mehr. Aber so ist es besser, als ihn zu entsorgen oder jahrelang in der Schublade liegen zu lassen.

Links:

Logitech G915 mit Linux verwenden (Piper/Ratbag/solaar)

Vor einigen Wochen habe ich mir mal wieder eine neue Tastatur gekauft. Die Beleuchtung und Makros sind unter Linux ja immer so eine Sache – Bei manchen Herstellern funktioniert es problemlos, bei anderen gar nicht und bei wieder anderen funktionieren nur manche Geräte, andere wiederum nicht. Bei der G915 von Logitech ging es allerdings bis auf ein paar Kleinigkeiten recht gut.

Piper/Ratbag – für die Steuerung von Beleuchtung und Makros

Nach etwas Recherche stellte sich heraus, dass man die Tastatur wohl mit der Software „Piper“ ganz gut einstellen kann. Installiert war Piper schnell, danach gab es allerdings schon das erste Problem: Die Tastatur wurde nicht erkannt.

Piper zeigt an, dass kein Gerät gefunden wurde

Nach etwas Suchen im Internet kam ich dann auf die Lösung: Die USB-ID stimmte bei mir nicht mit der überein, die standardmäßig für diese Tastatur im Quellcode von Ratbag* festgelegt ist. Also schnell die ID mit lsusb im Terminal herausgesucht und anschließend die Konfiguration von Ratbag überarbeitet:

Die ID ist hier „046d:c541“. Nun muss in folgender Datei:

die Zeile mit „DeviceMatch=“ folgendermaßen überarbeitet werden:

am Schluss ist die ID, die mit dem vorherigen Befehl ausgelesen wurde. Anschließend dann noch den Service neustarten:

Jetzt wird die Tastatur von Ratbag erkannt:

Makro Einstellungen von Piper

Oben links kann das Profil ausgewählt werden (Umschaltbar durch die Tasten M1-M3 auf der Tastatur).

Im ersten Tab „Tasten“ lassen sich die Makros einstellen. Ich habe meine Tasten G3-G5 auf die Makros „Strg+Shift+Alt+1-3“ gelegt und diese dann anschließend zum Öffnen von verschieden Programmen in den Systemeinstellungen eingestellt. Die Tasten G1 und G2 lassen sich leider nur auf rechte/linke Maustaste stellen. Dieser Bug wird hoffentlich auch bald gefixt – mich stört es aber eigentlich nicht.

LED-Einstellungen von Piper

Unter dem Tab „LEDs“ lässt sich – wer hätte es gedacht – die Beleuchtung einstellen. Für die Tasten und separat das G-Logo lassen sich verschiedene Beleuchtungsmodi einstellen oder auch die Beleuchtung ganz ausschalten.

Zum Schluss nicht vergessen, auf „Zuweisen“ zu klicken. Dann werden die Einstellungen direkt auf der Tastatur gespeichert und Piper wird eigentlich nicht mehr benötigt.

.* Piper ist die grafische Oberfläche für Ratbag

Solaar – Akkustand anzeigen

Der Akkustand der Tastatur lässt sich mit „solaar“ anzeigen.

Solaar war schnell installiert und der Akkustand lässt sich ohne weitere Einstellungen auslesen.

Bei früheren Versionen hatte ich das Problem, dass die Beleuchtung und die Makros der Tastatur sich abgeschaltet haben, sobald solaar gestartet wurde. Dieses Problem ist mittlerweile behoben.