FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: LAN-Opfer am 11 Dezember 2015, 20:39:58

Titel: [Gelöst]Probleme mit Bewegungsmelder seit Update
Beitrag von: LAN-Opfer am 11 Dezember 2015, 20:39:58
Hallo,

seit einem Update vor 2 Tagen funktioniert folgender notify nicht mehr:

BM_Motion_Garten:motion:.on.* { if (Value("ZW.AS_LICHT") eq "off" && ReadingsVal("BM_Motion_Garten","brightness","80") < "100") { fhem("set ZW.AS_LICHT on-for-timer 30; set ZW.AS_LICHT dim 99") } }

Hinter "BM_Motion_Garten" steht ein HM-Sen-MDIR-O-2. "ZW.AS_LICHT" ist ein FIBARO System FGD211 Universal Dimmer 500W (Z-Wave) - auf Befehle ("set ZW.AS_LICHT on-for-timer 30; set ZW.AS_LICHT dim 99") reagiert er, wie gewohnt (Lampe schaltet für 30 Sekunden ein mit 99% Helligkeit).
Der Bewegungsmelder selbst reagiert auch noch, wenn ich daran vorbei laufe:

Logfile
2015.12.11 19:22:00 3: BM_Motion_Garten_Reset: scanning

FileLog_BM_Motion_Garten
2015-12-11_19:17:00 BM_Motion_Garten brightness: 44
2015-12-11_19:17:00 BM_Motion_Garten motion: on (to broadcast)
2015-12-11_19:17:00 BM_Motion_Garten motionCount: 66_next:116s
2015-12-11_19:17:00 BM_Motion_Garten motion
2015-12-11_19:17:00 BM_Motion_Garten trigger_cnt: 66
2015-12-11_19:21:59 BM_Motion_Garten Activity: alive
2015-12-11_19:22:00 BM_Motion_Garten scanning
2015-12-11_19:31:59 BM_Motion_Garten Activity: dead


Ein erneuter Update und shutdown restart haben nichts gebracht.
Kann ich das irgendwie debuggen - hat jmd. eine Idee, woran es liegen könnte?

Uwe
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: LAN-Opfer am 11 Dezember 2015, 22:13:50
...es fehlt noch was:
in der 99_myUtils.pm habe ich noch eine Funktion zum Zurücksetzen drin:


sub BM_MotionHandling($$){
my($device, $event) = @_;
return if($attr{$device}{subType} ne "motionDetector");

my $ResetAT = $device."_Reset";
if($event eq "motion") {
   # Bewegung erkannt, erstelle AT um Status wieder zurückzusetzen
         if (defined($defs{$ResetAT})) {
           fhem "modify ".$ResetAT." +00:05:00 {BM_MotionHandling(\"$device\", \"scanning\")}";
         } else {
         fhem "define ".$ResetAT." at +00:05:00 {BM_MotionHandling(\"$device\", \"scanning\")}";
         }
} elsif($event eq "scanning") {
   # Status des Devices wieder zurücksetzen
   readingsSingleUpdate($defs{$device}, "state", $event, 1);
}
}



Ich muss zugeben, dass ich das alles zusammenkopiert und ausprobiert habe, bis es funktioniert hat - alles verstanden habe ich leider nicht :-(

Uwe
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: marvin78 am 12 Dezember 2015, 09:44:02
Ich nehme an, es liegt am Stringvergleich, der keiner sein sollte. Gut ist immer, wenn man das Log verwendet

BM_Motion_Garten:motion:.on.* {if (Value("ZW.AS_LICHT") eq "off" && ReadingsVal("BM_Motion_Garten","brightness","80") < 100) {fhem("set ZW.AS_LICHT on-for-timer 30;set ZW.AS_LICHT dim 99")}}
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: LAN-Opfer am 12 Dezember 2015, 14:57:28
Zitat von: marvin78 am 12 Dezember 2015, 09:44:02
Gut ist immer, wenn man das Log verwendet
...du meinst, verbose von 3 auf 5 setzen?

Uwe
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: marvin78 am 12 Dezember 2015, 14:59:35
Das und eventuell mit der Perl Funktion Log selbst ein wenig Log produzieren um die Bedingungen zu testen. Eventuell hilft aber auch der Rest meines Beitrags oben schon!?
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: LAN-Opfer am 12 Dezember 2015, 15:23:46
...ich dachte auch schon daran, dass da eventuell schon immer ein fehlerhafter Ausdruck drin wäre, der aber bisher funktionierte und nun durch eine restriktivere Behandlung nicht mehr funktioniert.
ReadingsVal("BM_Motion_Garten","brightness","80") < 100
ReadingsVal liefert doch einen numerischen Wert zurück? Die "80" habe ich nur abgeschrieben - keine Ahnung, was die bedeuten. Hat aber viele Wochen funktioniert.
Jetzt sollte ich vielleicht ReadingsVal("BM_Motion_Garten","brightness","80") in ein Log schreiben - ich weiss aber nicht, wie...

Uwe
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: marvin78 am 12 Dezember 2015, 15:28:27
Richtig und trotzdem hast du oben die 100 in Anführungszeichen gesetzt. Die 80 muss auch nicht in Anführungszeichen, sonst ist sie ein String und es würde einen Fehler geben, da du keinen Stringvergleich machst.  Dazu empfehle ich ein Perl Handbuch.

Die Funktion mit der du loggen kannst:

Log VERBOSELEVEL, TEXT

Beispiel:

Log 3, "Test: ".ReadingsVal($NAME,"brightness",80);

Ein wenig Transferdenken überlasse ich dir.

Es fehlen einfach weiter Infos, um die besser helfen zu können. Welche benötigt würden, ist ja bekannt.
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: Damu am 12 Dezember 2015, 15:56:25
Hallo

Ich hab das selbe auch am laufen.
Bei mir scheinen die Bewegungsmelder noch zu gehen.
Nur gehen Sie nicht mehr auf scanning zurück.
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: LAN-Opfer am 12 Dezember 2015, 19:10:03
Zitat von: marvin78 am 12 Dezember 2015, 15:28:27
Es fehlen einfach weiter Infos, um die besser helfen zu können. Welche benötigt würden, ist ja bekannt.
Ich danke dir - ohne Anführungszeichen geht es jetzt  :) Das habe ich dann schon von Anfang an falsch gehabt und jetzt hat es sich gerächt  :'(
Sorry - Perl ist für mich Neuland - sollte ich mir mal aneignen. Aber phyton auch und ... ;-)
FHEM betreibe ich in der neusten Version 5.7 (ich habs im Profil nachgezogen - dachte aber, nach dem Update wäre immer die neuste Version drauf) - ansonsten hoffe ich, vollständige Infos geliefert zu haben, lasse mich aber gerne eines Besseren belehren.
Mich würde noch interessieren, was die 80 bedeuten und wo man das nachlesen kann? Wie gesagt: ich habe das nur irgendwo abgeschrieben. Aber irgendwo müsste ja beschrieben sein, wie die Datenstruktur von diesem Sensor aussieht.

Uwe
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: franky08 am 12 Dezember 2015, 22:06:49
Die 80 ist der default wert.
ZitatReadingsVal(<devicename>,<reading>,<defaultvalue>)
Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt von "list device" angezeigt wird)
VG
Frank
Titel: Antw:Probleme mit Bewegungsmelder seit Update
Beitrag von: LAN-Opfer am 12 Dezember 2015, 22:22:25
danke - dann weiss ich das jetzt auch - ich finde aber im Wiki keine Angaben, welche Werte in welchem Format (und Wertebereich) von diesem Sensor gelesen werden können.

Uwe
Titel: Antw:[Gelöst]Probleme mit Bewegungsmelder seit Update
Beitrag von: franky08 am 12 Dezember 2015, 22:30:41
Dann sieh dir die Register vom device mal an, dort müsstest du das finden können (kann ich nicht prüfen da ich dieses device nicht habe)

VG
Frank