Neueste Beiträge

#1
Sonstiges / Aw: Neu: 55_MiniSIP.pm - ein S...
Letzter Beitrag von betateilchen - 29 Mai 2026, 20:07:16
Zitat von: betateilchen am 27 Mai 2026, 21:07:49Primäre Aufgabenstellung:

Wenn es eine primäre Aufgabenstellung gibt, sollte es ja mindestens noch ein weiteres Einsatzszenario geben.
Ja, tut es auch.

Auf meinem Schreibtisch steht seit kurzem ein Telefon mit Erweiterungsmodul, bei dem sich die meisten Tasten frei belegen lassen.

Du darfst diesen Dateianhang nicht ansehen.

Alleine das Erweiterungsmodul stellt 20 Tasten auf drei Ebenen (insgesamt 60) zur Verfügung. Und von diesen Erweiterungsmodulen kann man bis zu drei Stück installieren...
Jede der Tasten besitzt eine LED, die rot grün oder orange leuchten können. Und das Ganze dann auch noch als Dauerlicht, schnell blinkend oder langsam blinkend. Wie man das eben bei professionellen Telefonanlagen kennt, um Besetztanzeigen, geparkte oder gehaltene Anrufe zu signalisieren.

Und das wollte ich nun auch in FHEM für die Anzeige von diversen Geräte-Status verwenden.
Um das zu erreichen, muss an das Telefon eine SIP Message geschickt werden, deren body folgenden Inhalt hat:

my $body = <<"BODY";
k=$key
a=message
c=$command
o=$color
l=$label
n=**55
BODY


$key      = die Nummer der Funktionstaste
$label    = die Beschriftung, die an der Taste angezeigt wird
$color    = die Farbe, in der die LED leuchten soll
$command  = der Befehl, der die LED schaltet (on/off/park/...)
a=message : legt fest, ob sich die Taste beim Drücken mittels INVITE oder MESSAGE meldet
n=**55    : Die "Nummer" die von der Taste gewählt wird, wenn sie INVITE benutzt


Bei den Tasten habe ich mich für den Typ MESSAGE entschieden, dann gibt es keine zu wählende Nummer, sondern es kommt im body des vom Telefon geschickten SIP-Paketes eine Zeile "k=48" an, wenn die Taste 48 gedrückt wurde.


Dann habe ich mir eine 99_snomUtils.pm angelegt, dort ist ein FHEM Befehl "snomled" definiert.
Nun kann ich mit

snomled snom 48 on orange Button 48
dafür sorgen, dass die Taste 48 mit "Button 48" beschriftet wird und orange leuchtet.

Prinzipiell geht es dann so weiter:

  • alle Geräte, für die eine Statusanzeige auf dem Telefon gewünscht ist, sind in einer structure enthalten
  • diese structure löst immer dann, wenn sich an einem der devices ein status ändert, ein event aus
  • auf dieses event triggert ein notify und ruft eine Funktion in der 99_snomUtils.pm auf
  • in dieser Funktion wird ermittelt, welches device eine Änderung gemeldet hat und welche Statusanzeige deshalb aktualisiert werden muss

Funktioniert jetzt seit einer Woche recht problemlos.

Natürlich gibt es auch den anderen Weg: Mittels einer Taste auf dem Telefon eine Lampe schalten oder ein Rollo auf- oder zuzufahren.

Das eigentlich trickreiche an der Sache war die Kombination der beiden Tastennutzungsarten.
Das reine Schalten per Tastendruck gelingt quasi out-of-the-box, ich kann die Taste auch als "Action-URL" konfigurieren, dann wird einfach ein HTTP-GET ausgelöst, das z.B. in FHEM eine HTTPAPI aufruft. Dann lässt sich aber keine Rückmeldung in Form einer LED am Telefon geben.

Die LED Anzeige funktioniert nur beim Tastentyp "Button" - der kann aber keinen HTTP request auslösen...
#2
ESP Familie / Aw: BoseFix32 — lokaler SoundT...
Letzter Beitrag von fred_feuerstein - 29 Mai 2026, 19:10:01
Nach Update auf die 0.8.5 waren alle Lautsprecher sofort da! Scheint also funktioniert zu haben :)
Und die Import/Export Funktion bei dem Direkt-Streams und der erstmalige Import der Browser-Streams hat funktioniert.

Hatte im Issue zu den "Verbessungen bei vielen Lautsprechern" noch ergänzt als Comment, ob es möglich wäre, die Sortierung der Speaker zu ändern. Beispielsweise man pickt einen Speaker und schiebt ihn hoch oder runter.

Solange das mit dem Finden der Lautsprecher wieder gut funktioniert, braucht man denke ich auch keine anzulegende IP-Listen-Möglichkeit, die dann vom sixback nach und nach geadded wird. Schauen wir also mal wie es sich weiter verhält.


Ich muss das mit DLNA die Tage noch mal genauer testen. Hatte jetzt schon Fälle, da konnten Kacheln von meinem Standard-DLNA (Fritzbox), obwohl es eine alte Box war mit eingerichtetem STORAGE_MUSIC für die Fritzbox, dann nicht richtig gespeichert und abgespielt werden.

Habe meine Backup Box, die noch keinen festen Platz hat, mal neben meinen Arbeitsplatz geholt, da kann ich nebenbei immer mal was probieren.

Wenn mir was auffällt, notiere ich es mal auf meinem virtuellen Zettel.


Weisst Du eigentlich wieviele User sixback nutzen? Würde mich mal interessieren, weil ja sonst kaum Rückmeldungen kommen. Weder hier noch bei Github, oder? :)
#3
ESP Familie / Aw: BoseFix32 — lokaler SoundT...
Letzter Beitrag von tostmann - 29 Mai 2026, 18:50:51
Danke fürs serielle Log — das war genau der fehlende Baustein, und es war kein Multicast-Problem, wie ich zuerst vermutet hatte. Der entscheidende Hinweis steht ganz oben in Deinem Dump:

Debug exception reason: Stack canary watchpoint triggered (bg-discover)
Der Name in der Klammer ist der Task, der den Scan im Hintergrund fährt. Heißt: der Discovery-Task ist seinen Stack übergelaufen und das Gerät hat sich mitten im Scan neu gestartet. Danach ist das Speaker-Inventar leer — daher ,,findet 0 von 9", während das manuelle Hinzufügen (ein komplett anderer Code-Pfad) weiterhin geklappt hat. Das passt exakt zu dem, was Du beschrieben hast.

Was das Log sonst noch zeigt, die Zeilen mit
Preferences.cpp ... nvs_open failed: NOT_FOUND, ist übrigens harmlos — das ist nur der normale ,,diesen NVS-Namespace gibt es noch nicht"-Hinweis direkt nach einem frischen Flash, kein Defekt.

Warum es Dich trifft und die kleinen Testaufbauten nicht: je mehr Speaker auf den SSDP-Burst antworten, desto tiefer wird der Aufrufstapel im Scan — bei 9 Geräten reicht das, um den Stack zu sprengen, bei 2-3 nicht.

Gefixt in v0.8.5: der Discovery-Task sammelt die SSDP-Antworten jetzt erst ein und probt die Speaker danach (vorher mitten in der Empfangsschleife, mit dem 1-KB-Empfangspuffer noch auf dem Stack), und der Task-Stack wurde verdoppelt. Auf S3, C6 und C3 läuft der Scan damit sauber durch und findet alle Speaker.

v0.8.5 ist bereits online. Du kannst direkt per OTA aktualisieren — kein USB nötig, keine Partitions-Änderung. Nach dem Update sollte der Scan Deine 9 wieder von allein finden, ohne manuelles Nachtragen. Falls bei Dir mit 9 Geräten wider Erwarten doch noch etwas hakt, schick nochmal ein kurzes serielles Log oder klick den Snapshot-Button, dann schaue ich weiter — ich konnte den Fix hier nur bis 3 Speaker gegentesten, das Überlauf-Verhalten selbst ist aber raus.

Noch mit drin in v0.8.5 (das war GitHub #8): Deine selbst angelegten Stream-Kacheln liegen jetzt im Gerät (NVS) statt nur im Browser — sie überstehen also einen USB-Erase und einen Browserwechsel, inklusive Export/Import.

Grüße!

#4
ESP Familie / Aw: BoseFix32 — lokaler SoundT...
Letzter Beitrag von fred_feuerstein - 29 Mai 2026, 15:48:45
Also auch nach längerem Strom abziehen und wieder einstecken hat es nicht funktioniert.
Teilweise nach dem Scan Versuch war der ESP gar nicht mehr erreichbar per Web.

Dann hier also mal ein Log nach dem Klick auf Scan:
[15:42:08][inv] discovery starting (sync phase)
[15:42:08][inv][ssdp] M-SEARCH burst sent, listening 4s ...
[15:42:08]Guru Meditation Error: Core  0 panic'ed (Unhandled debug exception).
[15:42:08]Debug exception reason: Stack canary watchpoint triggered (bg-discover)
[15:42:08]Core  0 register dump:
[15:42:08]PC      : 0x4037ea3a  PS      : 0x00060236  A0      : 0x80383324  A1      : 0x3fcca2e0 
[15:42:08]A2      : 0x3fcea3c4  A3      : 0xffffffff  A4      : 0xb33fffff  A5      : 0x403775ec 
[15:42:08]A6      : 0x00000001  A7      : 0x00000024  A8      : 0x00060223  A9      : 0x3fcca2e0 
[15:42:08]A10     : 0x00060223  A11     : 0x00000003  A12     : 0x00060223  A13     : 0x00060423 
[15:42:08]A14     : 0x0000003c  A15     : 0x0000cdcd  SAR     : 0x00000018  EXCCAUSE: 0x00000001 
[15:42:08]EXCVADDR: 0x00000000  LBEG    : 0x40056f5c  LEND    : 0x40056f72  LCOUNT  : 0xffffffff 
[15:42:08]
[15:42:08]
[15:42:08]Backtrace: 0x4037ea37:0x3fcca2e0 0x40383321:0x3fcca310 0x40383356:0x3fcca330 0x403834c0:0x3fcca350 0x403765b3:0x3fcca370 0x403765cd:0x3fcca3a0 0x40376749:0x3fcca3c0 0x403775f8:0x3fcca3e0 0x421147c2:0x3fcca400 0x421176c5:0x3fcca430 0x400398b5:0x3fcca460 0x42113d91:0x3fcca480 0x42113ef5:0x3fcca4b0 0x420cb1a9:0x3fcca4f0 0x4209bf3e:0x3fcca510 0x4208d752:0x3fcca530 0x420ade32:0x3fcca560 0x42085d15:0x3fcca580 0x4207dcca:0x3fcca5a0 0x4207e0b5:0x3fcca5d0 0x4207e20f:0x3fcca600 0x4207e426:0x3fcca630 0x4207f31d:0x3fcca660 0x4207f359:0x3fcca6a0 0x4207f37f:0x3fcca6d0 0x4207b52d:0x3fcca700 0x42077a19:0x3fcca740 0x42088b7f:0x3fcca770 0x420741b8:0x3fcca790 0x4208774f:0x3fcca7b0 0x42087903:0x3fcca7d0 0x42072de9:0x3fcca820 0x4200723b:0x3fcca860 0x4200674a:0x3fcca8d0 0x4200c1b9:0x3fcca930 0x4200dfca:0x3fcca960 0x4200e2a7:0x3fcca9c0 0x4204f4a6:0x3fcca9e0 0x42052006:0x3fccab70 0x420529f8:0x3fccb100 0x4201b37e:0x3fccb140 0x4037e935:0x3fccb160
[15:42:08]
[15:42:08]
[15:42:08]
[15:42:08]
[15:42:08]ELF file SHA256: 7327ee12e
[15:42:08]
[15:42:09]Rebooting...
[15:42:09]ESP-ROM:esp32s3-20210327
[15:42:09]Build:Mar 27 2021
[15:42:09]rst:0xc (RTC_SW_CPU_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
[15:42:09]Saved PC:0x4037dc61
[15:42:09]SPIWP:0xee
[15:42:09]mode:DIO, clock div:1
[15:42:09]load:0x3fce2820,len:0x10cc
[15:42:09]load:0x403c8700,len:0xc2c
[15:42:09]load:0x403cb700,len:0x30c0
[15:42:09]entry 0x403c88b8
[15:42:09]
[15:42:09]=========================================
[15:42:09]  SixBack 0.8.4
[15:42:09]  Build: 2026-05-29 11:19:39
[15:42:09]  Copyright (c) 2026 Dirk Tostmann
[15:42:09]  License: PolyForm Noncommercial 1.0.0
[15:42:09]  Commercial use prohibited — see LICENSE
[15:42:09]=========================================
[15:42:09][mbedtls] PSRAM allocator installed (threshold=512, psram_free=8188 KB)
[15:42:09][fs]   LittleFS mounted, 176128/10354688 bytes used
[15:42:09][   590][E][Preferences.cpp:47] begin(): nvs_open failed: NOT_FOUND
[15:42:09][improv] starting (idle-window 30s, NVS-creds present)
[15:42:10][wifi] NVS credentials present, trying ssid=hannebambel HOME
[15:42:11][wifi] connected, IP=192.168.123.173
[15:42:11][wifi] PS=NONE TX=max CPU=240 MHz — optimized for reliability
[15:42:11][improv] reset window after AP connect — improvLastActivityMs=2385 improvActive=1
[15:42:11][wifi] up, IP=192.168.123.173 MAC=1C:DB:D4:74:9F:44 RSSI=-73
[15:42:11][mdns] sixback.local advertised
[15:42:11][  2398][E][Preferences.cpp:506] getString(): nvs_get_str len fail: speakers NOT_FOUND
[15:42:11][inv] no NVS-state, starting fresh
[15:42:11][  2417][E][Preferences.cpp:506] getString(): nvs_get_str len fail: presets NOT_FOUND
[15:42:11][inv]  0 known speakers, presets loaded
[15:42:11][failsafe] IP unchanged (192.168.123.173) — nothing to do
[15:42:11][  2428][E][Preferences.cpp:506] getString(): nvs_get_str len fail: slots NOT_FOUND
[15:42:11][spot] no NVS slot-map, start empty
[15:42:11][  2444][E][Preferences.cpp:506] getString(): nvs_get_str len fail: library NOT_FOUND
[15:42:11][spot] no NVS library, start empty
[15:42:11][spot/worker] running
[15:42:11][spot] init done — preset-pressed callback registered, TLS-clients ready, worker spawned
[15:42:11][bose] cloud-replacement listening on :8000
[15:42:11][bose] tell speakers to use: http://192.168.123.173:8000
[15:42:11][ui]   web/api listening on http://192.168.123.173:80/
[15:42:11][ui]   mDNS: http://sixback.local/
[15:42:11][health] boot #12  last-reset=PANIC  crashes-lifetime=7  wifi-reboots=0  heap-reboots=0
[15:42:11][health] task-wdt subscribed=1 (timeout=30s)
[15:42:11][auto] startup  enabled=0  bootDelayMs=10000  dryRun=0  maxPerBoot=4  cronIntervalS=1800
[15:42:11][auto] disabled at boot — task stays alive but idle (re-enable + reboot or wait for cron tick reload)
[15:42:11]
[15:42:11][setup] SixBack ready - UI: http://sixback.local/
[15:42:11][setup] Trigger speaker discovery: curl -X POST http://sixback.local/api/speakers/discover
[15:42:16][  7390][E][Preferences.cpp:47] begin(): nvs_open failed: NOT_FOUND

Habe jetzt die 9 Boxen manuell hinzugefügt. Das hat fehlerfrei funktioniert. Keine Ahnung warum der Scan gar nichts gefunden hat.

Als Idee: Bei Bosman und opensoundcloud kann man IP-Adressen von lautsprechern speichern, die bei Bedarf (wenn nicht automatisch per scan gefunden) dann "automatisch" manuell vom System hinzugefügt werden.
Vielleicht könnte man hier auch so eine IP-Liste pflegen.

Denn ich musste eben nochmal den Stecker ziehen und nach Start sind erneut keinerlei Lautsprecher zu sehen....
#5
FHEM Development / Aw: Zukunft von subversion?
Letzter Beitrag von betateilchen - 29 Mai 2026, 15:25:16
Zitat von: Otto123 am 29 Mai 2026, 09:54:39Ursprüngliche Frage von betateilchen war aber die Unterstützung von vorhandenen Entwicklertools, Editoren, Plugins usw.

Inzwischen habe ich die bisher benutzten Tools auch auf dem neuen macBook wieder in Betrieb, eben in den vorherigen Versionen, die auch noch subversion unterstützen. Auf die Installation von updates dieser Tools werde ich einfach verzichten. Für meine Zwecke sind sie alle gut und ausgereift, so wie sie jetzt sind.

Insofern kann ich auch noch ein paar Jahre weiter mit svn leben.

Der Thread hatte nicht den Zweck, jetzt kurzfristig eine Umstellung bei FHEM anzustreben, sondern einfach eine Diskussion und anzustoßen und zu erfahren, ob andere Entwickler ähnliche Erfahrungen gemacht haben.
#6
Wallboxen und E-Fahrzeuge / Aw: E-Auto Förderung 2026
Letzter Beitrag von betateilchen - 29 Mai 2026, 15:16:59
Zitat von: Prof. Dr. Peter Henning am 29 Mai 2026, 08:51:11ich bin in Gedanken bei der THG-Prämie gewesen

Von der THG Prämie habe ich bisher noch nichts gehört.
Beantragt habe ich sie am 06.02.26 direkt bei EnBW.
#7
Wallboxen und E-Fahrzeuge / Aw: E-Auto Förderung 2026
Letzter Beitrag von Prof. Dr. Peter Henning - 29 Mai 2026, 15:15:39
Ups, ja. Die 3.000 € hatte ich nicht auf dem Schirm. Thema verfehlt...
#8
FHEM Development / Aw: Zukunft von subversion?
Letzter Beitrag von betateilchen - 29 Mai 2026, 15:14:59
Zitat von: Otto123 am 29 Mai 2026, 09:54:39Zu klären / testen / entwickeln ist:

  • ...
  • FHEM Modul "fheminfo"
  • FHEM Modul "version"
  • Die komplette FHEM Statistik
  • ...
#9
Sonstiges / Aw: Neu: 55_MiniSIP.pm - ein S...
Letzter Beitrag von betateilchen - 29 Mai 2026, 15:08:05
Die neue Version ist eingecheckt, sie beinhaltet jetzt auch die Möglichkeit, authorisierte peers zu verwenden und dafür ist auch eine simple Benutzerverwaltung eingebaut, die den FHEM keystore benutzt.
 
  • Mit set ... user_add username=user password=pass kann man einen user anlegen.
  • Mit set ... user_delete username=user kann man einen user wieder löschen.
  • Mit get ... user_list kann man sich die Liste der angelegten Benutzer ausgeben lassen.
  • Mit attr ... useAuth 1 wird die Authorisierung global eingeschaltet.

#10
ESP Familie / Aw: BoseFix32 — lokaler SoundT...
Letzter Beitrag von tostmann - 29 Mai 2026, 15:02:35
Zitat von: fred_feuersteinUpdate auf 0.8.4 hat wieder OTA funktioniert. Aber danach waren meine 9 Lautsprecher nicht mehr da. Der Scan, der vorher seit Tagen immer alle 9 gefunden hat, findet aktuell keinen einzigen Lautsprecher mehr.

Danke für die ausführliche Rückmeldung — und schön zu lesen, dass DLNA, Spotify und Webradio bei dir soweit laufen. Den Workaround (in der Bose-App vom DLNA starten und dann am Gerät die Speichertaste drücken) kenne ich; den DLNA-Push direkt aus SixBack sauber hinzubekommen ist noch eine eigene Baustelle, da bleibe ich dran.

Zur verschwundenen Erkennung nach dem Update: ich habe den kompletten Diff von 0.8.0 auf 0.8.4 durchgesehen, gezielt auf den Discovery-Pfad. Am Scan selbst (SSDP/M-SEARCH und der Scan-Handler) wurde nichts geändert — der Umbau in diesem Sprung betraf nur das HTTP-Routing (ich habe die Regex-Engine rausgeworfen, weil sie auf den kleinen C3/C6 den Speicher sprengt und Bootloops auslöst) sowie die Partitionierung. Es gibt also keine bewusste Änderung, die die Lautsprecher-Suche lahmlegen würde.

Mein Verdacht ist deshalb ein vorübergehender Zustand direkt nach dem OTA-Neustart: dass der Multicast-/IGMP-Beitritt nach dem Reboot nicht sauber zustande kommt und die M-SEARCH-Antworten der Boxen schlicht nicht ankommen. Das würde dazu passen, dass vorher tagelang alle 9 zuverlässig gefunden wurden und sich an der Suche im Code nichts geändert hat.

Damit ich das messen statt raten kann, zwei kurze Sachen:

  • Mach den Stick einmal richtig stromlos (Netzteil ziehen, ~10 s warten, wieder einstecken — nicht nur den Reset-Knopf) und starte danach den Scan neu. Kommen die 9 dann wieder? Falls ja, war es genau dieser Zustand nach dem OTA-Reboot.
  • Falls du ohnehin seriell drankommst (115200 Baud): schick mir beim Scan die Zeilen ab [inv][ssdp] M-SEARCH burst sent, listening 4s .... Wenn diese Zeile erscheint, aber danach keine Treffer-Zeilen folgen, ist eindeutig die Multicast-Antwort das Problem und nicht der Code.

Wenn sich das bestätigt, ist die naheliegende Gegenmaßnahme ein erneuter Multicast-Join bzw. ein automatischer Scan-Retry kurz nach dem WiFi-Connect — das baue ich aber erst ein, wenn die Logs es zeigen, nicht auf Verdacht. Die 9 Boxen manuell neu anzulegen ersparst du dir damit hoffentlich.

Gruß, Dirk