Skip to content

Fix setNotifyDev wiring and NOTIFYDEV state handling in 98_BLEYC01.pm#1

Merged
ahlers2mi merged 3 commits into
mainfrom
copilot/fix-bleyc01-typo-and-notifydev
May 12, 2026
Merged

Fix setNotifyDev wiring and NOTIFYDEV state handling in 98_BLEYC01.pm#1
ahlers2mi merged 3 commits into
mainfrom
copilot/fix-bleyc01-typo-and-notifydev

Conversation

Copilot AI commented May 12, 2026

Copy link
Copy Markdown
Contributor
  • Analyse: Text::Trim wird nur importiert, nirgends tatsächlich benutzt
  • use Text::Trim; aus FHEM/98_BLEYC01.pm entfernen
  • Validierung durchführen (kein Problem gefunden)
Original prompt

Problembeschreibung

In FHEM/98_BLEYC01.pm gibt es mehrere Bugs rund um setNotifyDev:

1. Tippfehler im Funktionsnamen

Der Funktionsname lautet aktuell BLEYC01_setNotfiyDev (falsche Reihenfolge: Notfiy statt Notify). Dies betrifft:

  • Die Funktionsdefinition in Zeile 41
  • Den InternalTimer-Aufruf in Zeile 191 ("BLEYC01_setNotfiyDev")

→ Beide umbenennen zu BLEYC01_setNotifyDev

2. Fehlende NOTIFYDEV-Zuweisung

In der Funktion wird notifyRegexpChanged() aufgerufen, aber $hash->{NOTIFYDEV} wird nie gesetzt. Dadurch gibt get devices (Zeile 229: devspec2array($hash->{NOTIFYDEV})) keine sinnvollen Werte zurück.

$hash->{NOTIFYDEV} muss vor dem Aufruf von notifyRegexpChanged gesetzt werden.

Fix für die Funktion

sub BLEYC01_setNotifyDev($) {
  my ($hash) = @_;

  if( $hash->{DEVICE} ) {
    $hash->{NOTIFYDEV} = $hash->{DEVICE};
    notifyRegexpChanged($hash, $hash->{DEVICE});
  } else {
    $hash->{NOTIFYDEV} = "";
    notifyRegexpChanged($hash, '');
  }
}

3. Version bump

Die aktuelle Version steht in BLEYC01_Define:

$hash->{FVERSION} = "98_BLEYC01.pm:v1.3.0";

→ Bitte auf v1.4.0 erhöhen.

Zusammenfassung der Änderungen

  1. BLEYC01_setNotfiyDevBLEYC01_setNotifyDev (Funktionsdefinition)
  2. "BLEYC01_setNotfiyDev""BLEYC01_setNotifyDev" (InternalTimer-Aufruf)
  3. $hash->{NOTIFYDEV} = $hash->{DEVICE} bzw. $hash->{NOTIFYDEV} = "" in der Funktion ergänzen
  4. FVERSION von v1.3.0 auf v1.4.0 setzen

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: guck doch mal drüber ob ich ein Problem mit dem setNotfiyDev habe

Assistant: Das Repository ahlers2mi/FHEM-BLEYC01 ist leider nicht öffentlich zugänglich (oder existiert nicht). Ich kann daher keinen Einblick in den Code nehmen.

Könntest du mir bitte:

  1. Das Repository öffentlich stellen, oder
  2. Den relevanten Code direkt hier in den Chat einfügen?

Dann schaue ich mir das setNotifyDev-Problem gerne genauer an! 🔍

User: jetzt?

Assistant: Ja, ich habe mehrere Probleme mit setNotifyDev gefunden:


🐛 Problem 1: Tippfehler im Funktionsnamen

sub BLEYC01_setNotfiyDev($) {   # ← "Notfiy" statt "Notify"
InternalTimer(gettimeofday(), "BLEYC01_setNotfiyDev", $hash);  # ← gleicher Tippfehler

Der Tippfehler ist konsistent (beide Male NotfiyDev), daher funktioniert der Aufruf zwar – aber es ist fehleranfällig und unschön.


🐛 Problem 2: NOTIFYDEV wird nicht gesetzt

In BLEYC01_setNotfiyDev wird notifyRegexpChanged() aufgerufen, aber $hash->{NOTIFYDEV} wird nie gesetzt. Das bedeutet:

  • Der get devices-Befehl in Zeile 229 (devspec2array($hash->{NOTIFYDEV})) gibt nichts oder falsche Werte zurück, weil NOTIFYDEV leer ist.
  • notifyRegexpChanged braucht NOTIFYDEV normalerweise als Basis.

Die auskommentierte Zeile 37 deutet darauf hin, dass du das mal hattest:

#    $hash->{NOTIFYDEV}  = AttrVal($hash->{name}, "notifyDev", "forwardRemote");

🐛 Problem 3: NOTIFYDEV wird in BLEYC01_updateDevices nicht aktualisiert

Nach dem Parsen des DEF und dem Setzen von $hash->{DEVICE} sollte $hash->{NOTIFYDEV} ebenfalls auf das Gerät gesetzt werden, bevor BLEYC01_setNotfiyDev aufgerufen wird.


✅ Empfohlene Fixes

Fix 1 – Tippfehler korrigieren (optional, aber sauber):
Überall NotfiyDevNotifyDev

Fix 2 – NOTIFYDEV in BLEYC01_setNotfiyDev setzen:

sub BLEYC01_setNotifyDev($) {
  my ($hash) = @_;

  if( $hash->{DEVICE} ) {
    $hash->{NOTIFYDEV} = $hash->{DEVICE};   # ← das fehlt!
    notifyRegexpChanged($hash, $hash->{DEVICE});
  } else {
    $hash->{NOTIFYDEV} = "";
    notifyRegexpChanged($hash, '');
  }
}

Soll ich einen PR mit diesen Fixes erstellen?

User: mach mal einen PR, aber bitte auch eine Versionierung einbauen

Assistant: Wir warten noch auf deine Bestätigung im Dialog – sobald du den PR-Auftrag bestätigst, legt der Coding-Agent los und erstellt den Pull Request mit allen Fixes! 🚀

This pull request was created from Copilot chat.

Copilot AI changed the title [WIP] Fix typos and set NOTIFYDEV in BLEYC01 module Fix setNotifyDev wiring and NOTIFYDEV state handling in 98_BLEYC01.pm May 12, 2026
Copilot AI requested a review from ahlers2mi May 12, 2026 13:08
Agent-Logs-Url: https://github.com/ahlers2mi/FHEM-BLEYC01/sessions/751caecb-15c1-4db5-8022-400c23ad7810

Co-authored-by: ahlers2mi <58474751+ahlers2mi@users.noreply.github.com>
@ahlers2mi ahlers2mi marked this pull request as ready for review May 12, 2026 13:13
@ahlers2mi ahlers2mi merged commit 611d599 into main May 12, 2026
1 check failed
@ahlers2mi ahlers2mi deleted the copilot/fix-bleyc01-typo-and-notifydev branch May 12, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants