-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
14_SD_WS.pm new set command replaceBatteryForSec #1074
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1074 +/- ##
==========================================
+ Coverage 63.46% 63.70% +0.23%
==========================================
Files 128 130 +2
Lines 9436 9490 +54
Branches 1492 1500 +8
==========================================
+ Hits 5989 6046 +57
+ Misses 2301 2289 -12
- Partials 1146 1155 +9
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Da gibt es noch ein paar Zeilen, die scheinen falsch eingerückt,
Könnte so ein tab vs leerzeichen Thema sein
Wer ist bloß auf die Idee gekommen, Tabs durch Leerzeichen zu ersetzen :-) |
…FHEM/RFFHEM into master_SD_WS_replaceBattery
Ich habe ein paar Tests für die neue sub erstellt, aber das Ergebnis passt nicht so recht. |
Ich weiß nicht so richtig, was du testen willst. |
changed quotes
Ich habe die Tests darauf angepasst.
Das ist mir auch aufgefallen, wollte aber zunächst die Tests schreiben, bevor wir das an den subs ändern. Die Tests der setFN stehen. |
Ich habe im Netz dazu nichts gefunden. Da du in der SD_Protocols.pm das bei einem Array auch immer ohne carp machst, dachte ich, das das halt nicht funktioniert.
Keine Ahnung, mir fällt in dem Test auch erstmal nichts auf. Im "echten" FHEM habe ich es eben nochmal auf zwei Systemen getestet. Da funktioniert es. |
Mit den gleichen Daten? |
Einmal mit einem SD_WS_33_T und zum zweiten mit den Testdaten des SD_WS_33_TH aus unserem SIGNALduino_Tool, welche du wahrscheinlich auch verwendest. |
Ich vermute, es liegt an dieser Prüfung:
Ich finde keine Stelle, an der ein Internal mit dem Namen des empfangenden IO Devices + protocol_ID gesetzt wird. |
Das könnte passen.
|
Hast Du auch gefunden, wo das gesetzt wird? |
Ich schätze mal, das wird in der 00_SIGNALduino.pm sub SIGNALduno_Dispatch in dieser Zeile
an die sub Dispatch in der fhem.pl übergeben und dann dort weiter verarbeitet:
|
Wenn wir richtig liegen, müsste es reichen, vor dem letzten "replaceBatteryForSec 10" eine Nachricht zu dispatchen. Dabei werden die Internals angelegt. |
Ja, das würde funktionieren, aber ich will nicht Dispatch testen :) |
mocked device under test for replaceBattery check
little improvement for replaceBattery check
…FHEM/RFFHEM into master_SD_WS_replaceBattery
Ich habe das device nun so gemockt, dass der Test funktioniert. Mir sind dabei aber noch zwei Dinge aufgefallen, die ich grundsätzlich diskutieren möchte.
|
Mhmm, ich wüsste jetzt nicht, inwiefern IODev ein Kriterium sein könnte, um zu prüfen, ob die Nachricht passt. Da ist ja gerade mal gewährleistet, das Frequenz und rfmode dazu passt. Ich wollte schon wenigstens prüfen, das es das richtige Protokoll ist. In dem Modul haben wir ja mittlerweile über 20 Protokolle.
Du meinst die Reihenfolge der Prüfungen so ändern?
Das funktioniert genau so. Kann ich ändern. |
Ja, das wäre gut |
Erledigt, deine Änderungen scheinen auch zu funktionieren :-) |
What is the current behavior?
(You can also link to an open issue here, if this describes the current behavior)
Many sensors change their ident after a restart, e.g. when changing the battery.
This creates a new sensor.
What is the new behavior (if this is a feature change)?
The creation of new sensors after changing the battery can be prevented with this new command:
set sensor replaceBatteryForSec seconds
The device then waits the specified time in seconds until a sensor with the same protocol but unknown address is received.
If this is successful, the definition of the device is changed.
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
no
Other information: