Hauptmenü

Neueste Beiträge

#1
Homematic / Aw: Debmatic nach jedem Update...
Letzter Beitrag von passibe - 15 Januar 2026, 11:04:10
Evtl. auch einfach auf OpenCCU umsteigen? Vor allem, wenn du sowieso Proxmox benutzt.
#2
MQTT / Aw: Verbindungsversuche von zi...
Letzter Beitrag von passibe - 15 Januar 2026, 11:01:15
Sehr gut!

Aber bitte nicht die IP eintragen, weil die sich – wenn sie nicht statisch definiert ist – ändern kann. Sondern mit dem Hostnamen bzw. Containernamen arbeiten.
#3
MQTT / Aw: Verbindungsversuche von zi...
Letzter Beitrag von rabehd - 15 Januar 2026, 10:57:44
Ich hätte es nie gedacht, aber das scheint es gewesen zu sein.
Ich habe jetzt die IP von Docker drin. Ich glaube das schon mal versucht zu haben, aber da wahrscheinlich 192... statt 172...  :(

Danke für den Tipp.
#4
Bastelecke / Aw: ESP RGBWW Controller - Fir...
Letzter Beitrag von pjakobs - 15 Januar 2026, 10:16:28
Release Candidate

vor etwas über zwei Jahren habe ich angefangen, die Firmware für ESP[8266|32|32c3] Controller zu überarbeiten, und so rückblickend ist viel passiert:

Firmware

  • Migration auf die aktuellste SMING Version
    die alte Firmware steckte auf SMING 4 fest und war auf neueren Versionen nicht mehr kompilierbar, was ein Problem war, weil erst mit den neueren Versionen andere Controller als der ESP8266 unterstützt wurden
  • Verfügbarkeit zusätzlich auf ESP32 Plattformen
    damit konnte ich eine Firmware bauen, die sich jetzt problemlos für alle drei relevanten Controller compilieren lässt
  • LittleFS statt SPIFFS
    - besseres wear levelling
    - besseres Fehler handling
    Dieser Schritt war riesig für mich, statt des alten Layouts, wo es jeweils ein Firmware und ein Frontend Image gab, ist in dieser Version das Frontend im Firmware Image eingebettet, dadurch gibt es nur noch eine Flash Datei und das Dateisystem bleibt frei.
    Die Partitionierung ist heute so, dass es zwei ROM Bereiche gibt (rom 0 und rom 1) und zwei LittleFS Dateisysteme, von denen aktuell nur das erste genutzt wird. Ich will in der nächsten Version eine Backup / Versionierungsfunktion für die Konfiguration einbauen, dafür würde ich dann die zweite LittleFS Partition nutzen.
  • ConfigDB statt Konfigurationsstruktur im RAM
    Noch ein riesen Schritt für mich: zusammen mit Mikee74, dem Maintainer des SMING Frameworks haben wir eine Konfigurationsdatenbank für SMING entwickelt. Jetzt kann ich die notwendigen Konfigparameter als JSONSchema definieren und beim bauen der Firmware werden daraus C++ Accessor Klassen (also getter und, wenn auch etwas aufwendiger, setter) generiert. Ich kann auf die Konfigurationsparameter also so zugreifen, als seien sie normale C++ Klassen, dahinter liegt allerdings eine Datenbank, die diese Daten in JSON Strukturen im Dateisystem speichert.
    ConfigDB kümmert sich dabei halbautomatisch um das Locking, so dass nicht zwei konkurrierende Zugriffe auf eine Struktur geschehen und liefert mir zudem eine Streaming API um die Konfiguration direkt über HTTP zu senden und zu empfangen.
  • mDNS
    die Controller nutzten nun mDNS um alle anderen Controller im Netz zu finden. Sie führen eine lokale Liste der sichtbaren Controller die vom Frontend genutzt wird, um die Swarm Funktionalitäten zu implementieren. Mehr dazu im Frontend Block.
  • neues PWM für die ESP32 Familie
    eines der Probleme beim ESP8266 ist die Tatsache, dass die PWM Funktion softwarebasiert ist, und deshalb keine hohen Frequenzen kann. Der ESP32 hat PWM Hardware mit wirklich gutem Funktionsumfang und einer großen Bandbreite an möglichen Frequenzen.
    Ich habe eine neue PWM Implementierung für den ESP32 für SMING geschrieben, und dann nochmal eine verbesserte für die Controller Firmware (die muss ich noch zu SMING submitten, in der Hoffnung, dass sie den strengen Augen dort genehm ist)
    Die Basis-PWM ist im Grunde einfach eine Reimplementierung des Interface für den ESP8266 für den ESP32, die viele Parameter als Default so setzt, dass sich das System ziemlich genau so verhält wie erwartet - mit der Ausnahme, dass höhere Frequenzen möglich sind.
    Die erweiterte PWM implementation nutzt das led_c Interface das Espressif hier anbietet weitergehend und definiert Gruppen von Kanälen, die gemeinsame Eigenschaften haben. Dadurch konnte ich zusätzlich zur 'normalen' PWM ein paar Funktionen einbauen, die die elektromagnetische Verträglichkeit der Controller erhöhen sollte. So können die Kanäle jetzt phasenverschoben betrieben werden (default für die ESP32(c3) Builds der Firmware. Das heißt, dass für jeden Kanal (R, G, B, WW, CW) der PWM Zyklus um ein fünftel der Zykluslänge verschoben beginnt. Was bedeutet das? Normalerweise beginnt der Zyklus für alle Kanäle gleichzeitig bei t=0ms, sind mehrere Kanäle an (egal mit welcher Helligkeit) schalten alle zu diesem Zeitpunkt an und erzeugen eine große Stromspitze auf der 12V Schiene. Phasenverschoben werden sie entsprechend später geschaltet, etwa R bei 0µs, G bei 200µs, B bei 400µs und so weiter, damit "verwischt" sich der Einschaltimpuls und die Stromspitze wird über einen breiten Bereich gestreckt und damit flacher.
    Die zweite Funktion, die die Verträglichkeit erhöhen sollte ist ein Spread Spectrum. Normalerweise laufen PWM Controller mit einer konstanten Grundfrequenz, etwa 1kHz. Das heißt, dass die Schaltvorgänge sich exakt jede Millisekunde widerholen und somit ein EM Feld von 1kHz ausgesendet wird. Bei den LED Controllern kann da ziemlich viel Strom geschaltet werden, dass heißt dann auch, dass ziemlich viel Energie in das Feld geht - zumal die MOSFETs ja "hart" schalten, also ein steiles dI/dt haben. Das lässt sich systembedingt nicht wirklich ändern, aber durch Spread Spectrum Modulation kann ich diesen Peak "verschmieren", und das geht so: wenn am Controller eine PWM Frequenz von 1kHz eingestellt und zudem Spread Spectrum mit einem Spread von 15% konfiguriert ist, dann springt die tatsächliche PWM Frequenz zufällig zwischen 1kHz-15% und 1kHz+15% herum, so dass das tatsächlich ausgestrahlte Spektrum zwischen 850Hz und 1150Hz verschmiert wird. Die Energie wird, statt auf einer schmalen Frequenz, auf allen 300 diskreten Frequenzen in diesem Bereich abgegeben, beträgt also auf jeder einzelnen Frequenz nur 1/300stel dessen, was sonst auf einer Frequenz abgegeben werden würde.
    (wenn jemand mit mehr HF / Funkamateurwissen als ich hier was korrigieren will, nur zu)
  • Bugfixes
    Während der Arbeit mit der Firmware habe ich mehrere Bugs, sowohl in Sming als auch in darunterliegenden Komponenten wie etwa dem IP Stack (LWIP) gefunden, das alte Problem, dass Controller manchmal nur noch eine leere Seite statt des Web Frontends zeigten ist damit behoben. Durch LittleFS können auch Controller, die das Frontend nicht mehr laden können, weil das SPIFFS kaputt ist ("no filesystem mounted") wieder aktiviert werden.

Frontend
  • komplette Neuimplementierung auf Quasar
    Das alte Frontend war mit AngularJS implementiert und um damit auf eine aktuelle Version zu kommen, wäre nicht weniger Aufwand nötig gewesen, wie es nötig war, das Frontend komplett neu auf einer modernen Plattform zu implementieren.
    Ich habe mich damals für Quasar entschieden, weil das mir auch die Möglichkeit bietet, Apps für Android und Apple zu bauen, auch wenn diese im Grunde nur embedded Browser mit der Webapp sind.
  • Reimplementation der bestehenden Webapp
    Ich habe, soweit das möglich ist, die Funktionen der alten App 1:1 reimplementiert, die entsprechenden Settings für ColorMode, TransitionMode etc. funktionieren wie gehabt
  • Swarm Funktionen
    Ich finde es nervig, wenn so einfache Dinge wie Leuchten irgendein Cloud API benötigen, um zu funktionieren, viele große Unternehmen finden das aber super, denn so können Kunden gebunden werden. Wenn dann irgendwann eine Technologie "zu alt" ist, werden die entsprechenden Cloud Funktionen abgeschaltet und man hat mit Glück noch eine dumme Leuchte, mit Pech ein Leuchte, die sich gar nicht mehr bedienen lässt. (es gibt da gerade so einen Fall mit einem Staubsaugroboter, wenn ich mich recht entsinne).

    Mein Ansatz für den Lightinator war daher, Schwarm-Funktionen einzubauen, so dass Nutzer ohne einen Server (Cloud oder Hausautomation) mehrere Controller von einer App aus bedienen können.

    Das geht über das einfach ein- und Ausschalten weit hinaus und ermöglicht es etwa, Szenen zu bauen, die über mehrere Controller hinweg abgespielt werden oder die Firmware auf allen Controllern im Schwarm upzudaten.
    (wie sehr ich mittlerweile der Firmware vertraue seht ihr vielleicht daran, dass ich neulich mitten in der Nacht ohne groß darüber nachzudeken auf "update all" geklickt habe - und es gibt Räume bei mir, die haben keine anderen Leuchten als die vom ESP Controller betriebenen.

Ich will die Frontend Funktionen gar nicht alle aufzählen, ich glaube (hoffe) sie sind weitgehend selbsterklärend.

Im Laufe des Tages werde ich die aktuelle development Version zur "stable" machen, und betrachte das als den Release Candidate für die finale 5.0.

Ideen für eine 5.1 habe ich genug, aber vielleicht sollte ich mal eine Weile lang wieder andere Projekte machen.

PS: heute oder morgen sollten neue Platinen für einen kleineren, ESP32C3 basierten Controller kommen. Ich hatte ein bisschen Probleme mit dem Startup Verhalten des C3, der scheinbar ein paar GPIOs "floaten" lässt, was mir immer wieder einen meiner MOSFETs zerschossen hat. Die neue Version nutzt andere Pins und sollte funktionieren. Dann mache ich auch eine neue Version des größeren Controllers aus der Sammelbestellung mit dem ESP32C3.
#5
Automatisierung / Aw: DOIF triggert nicht
Letzter Beitrag von Guybrush - 15 Januar 2026, 09:33:25
mit dem do always geht es. das doif sollte aber auch ohne dem eigentlich funktionieren. es scheint aber so zu sein, dass der gespeicherte zustand nicht mehr passt, nachdem das doelseif greift und das gerät abschaltet
#6
Anfängerfragen / Aw: FHEM auf welcher Hardware
Letzter Beitrag von Ralli - 15 Januar 2026, 09:21:14
Zitat von: Bartimaus am 14 Januar 2026, 19:25:43Den Sinn von PBS verstehe ich nicht, meine Backups laufen über die interne Funktion täglich auf ne externe HDD und wöchentlich nochmal auf meine QNAPs per NFS. Wenn man damit einfach und schnell wenigstens den PVE-Host sichern könnte....

Deduplizierung.
#7
FLOORPLAN / Aw: Floorplan in allen Styles ...
Letzter Beitrag von daheim - 15 Januar 2026, 09:10:19
Guten Morgen Rudolf,

danke für deine Antwort.

Ja das mit der Konsole... Hätte ich auch eher drauf kommen können...

Hier der Fehler:
In der Übersicht der Floorplan
f11floorplanstyle.css:1  Failed to load resource: the server responded with a status of 404 (Not Found)

Auf dem Floorplan selbst

Dachgeschoss:7
GET http://<IP-FHEM-Server>:8083/fhem/css/f11floorplanstyle.css net::ERR_ABORTED 404 (Not Found)

Logisch die Datei heißt floorplanstyle.css. Die Datei f11floorplanstyle.css gibt es nicht. Auch nicht im Backup bzw. restoreDir.

Habe die floorplanstyle.css dupliziert zur f11floorplanstyle.css und alles geht wieder.

Wieso das so passiert ist, keine Ahnung.

Hauptsache es sieht wieder normal aus, Frau ist glücklich, Ehe gerettet  8)

Viele Grüße
Daniel
#8
Anfängerfragen / Aw: FHEM auf welcher Hardware
Letzter Beitrag von betateilchen - 15 Januar 2026, 08:23:30
Zitat von: Damian am 14 Januar 2026, 22:02:31und man sich nicht wo anders ein aktuelles Backup hinterlegt hat.

Nachvollziehbar. Aber:

  • 1 GB S3 Glacier Deep Archive bei AWS kosten in einem europäischen Rechenzentrum 0,00099 US$ pro Monat.
  • Macht bei 4TB ca. 4 US$.
  • Dafür baue ich keine redundante Hardware für ein "Backup-Backup" selbst auf.
#9
FHEM Code changes / Revision 30741: controls_fhem....
Letzter Beitrag von System - 15 Januar 2026, 08:20:40
Revision 30741: controls_fhem.txt: fhemupdate checkin

controls_fhem.txt: fhemupdate checkin

Source: Revision 30741: controls_fhem.txt: fhemupdate checkin
#10
Homematic / Aw: Debmatic nach jedem Update...
Letzter Beitrag von yersinia - 15 Januar 2026, 07:39:47
Demnach scheint es den (automatisierten bzw als Abhängigkeit definierten) trigger für
dpkg-reconfigure pivccu-modules-dkmsnach einem Kernel update (inkl headers) nicht zu geben - und wahrscheinlich behilfst du dir da mit dem Script selbst.
Es gab zumindest mal ein issue dazu - inkl einen Workaround. Eventuell hilft es auch, den dpkg aufruf aus apt heraus zu generieren (APT::Update::Post-Invoke-Success) oder ein anderes Paket zu installieren (pivccu-modules-raspberrypi).