RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von papa » 09.04.2023, 12:58

Wow - das ging ja schnell.
Ist der Spike vielleicht immer auf dem gleichen Kanal ? Könnte mal als schnellen Hack einfach den anderen Pin als Erkennung nehmen?
Anfragen zur AskSin++ werden nur im Forum beantwortet

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von jp112sdl » 09.04.2023, 15:16

papa hat geschrieben:
09.04.2023, 12:58
Ist der Spike vielleicht immer auf dem gleichen Kanal ?
Vielleicht ja.
Ich müsste dazu einen Langzeit-Test machen

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Sunti
Beiträge: 449
Registriert: 10.12.2011, 17:56
Danksagung erhalten: 3 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von Sunti » 11.04.2023, 19:55

Hallo miteinander,

@Jerome - Klasse - hab`s doch gewusst das das für dich ein Klacks ist

Habe deine Änderungen eingearbeitet - beim Test mit zwei kräftigen AA-Zellen hat er brav gemeckert - mit drei Zellen keine Fehlermeldung mehr.

Wie äußern sich die "Fehlbewegungen" - habe den heute wieder aus dem Fenster "gucken" lassen - im Historian kann ich (wieder - siehe Thread oberhalb) keine "Fehlbewegung" erkennen.

Greetz SunTi

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von papa » 11.04.2023, 20:35

jp112sdl hat geschrieben:
09.04.2023, 15:16
papa hat geschrieben:
09.04.2023, 12:58
Ist der Spike vielleicht immer auf dem gleichen Kanal ?
Vielleicht ja.
Ich müsste dazu einen Langzeit-Test machen
Dann probiere mal das hier:
In Motion.h

Code: Alles auswählen

// helper class to check that 2 pins are triggered in a certain time frame
template <int TIMEFRAME>
class TwoPinTrigger : public Alarm {
  uint8_t lastpin;
public:
  TwoPinTrigger () : Alarm(0,true), lastpin(0xff) {}
  virtual ~TwoPinTrigger () {}
  bool check(uint8_t p) {
    bool result = false;
    if( lastpin == 0xff ) { // first trigger
      lastpin = p;
      sysclock.cancel(*this);
      set(millis2ticks(TIMEFRAME));
      sysclock.add(*this);
    }
    else if( lastpin != p ) { // second trigger
      sysclock.cancel(*this);
      lastpin = 0xff;
      result = true;
    }
    return result;
  }
  virtual void trigger (__attribute__ ((unused)) AlarmClock& clock) {
    lastpin = 0xff; // reset after timeout
  }
};


#define motionISR2Pin(device,chan,pin1,pin2,timeframe) static TwoPinTrigger<timeframe> trigger; \
  class device##chan##ISRHandler { \
  public: \
  static void isr1 () { if( trigger.check(pin1)==true) device.channel(chan).motionDetected(); } \
  static void isr2 () { if( trigger.check(pin2)==true) device.channel(chan).motionDetected(); } \
}; \
pinMode(pin1,INPUT); \
pinMode(pin2,INPUT); \
if( digitalPinToInterrupt(pin1) == NOT_AN_INTERRUPT ) \
  enableInterrupt(pin1,device##chan##ISRHandler::isr1,RISING); \
else \
  attachInterrupt(digitalPinToInterrupt(pin1),device##chan##ISRHandler::isr1,RISING); \
if( digitalPinToInterrupt(pin2) == NOT_AN_INTERRUPT ) \
  enableInterrupt(pin2,device##chan##ISRHandler::isr2,RISING); \
else \
  attachInterrupt(digitalPinToInterrupt(pin2),device##chan##ISRHandler::isr2,RISING);
Und dann im init()

Code: Alles auswählen

motionISR2Pin(sdev,1,PIR_PIN1,PIR_PIN2,100);
Ist aber nicht getestet - nur durch den Compiler geschickt.
Anfragen zur AskSin++ werden nur im Forum beantwortet

Surfi
Beiträge: 30
Registriert: 16.01.2019, 13:42
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von Surfi » 12.04.2023, 21:53

Hallo zusammen,

erstmal vielen Dank an jp112sdl und papa. Wahnsinn, wie schnell ihr Lösungen zaubert.
jp112sdl hat geschrieben:
09.04.2023, 12:36
Dann gab es noch vereinzelt Hinweise auf
Surfi hat geschrieben:
04.02.2023, 17:57
häufig "falsche" Bewegungen.
Ich konnte es am Oszi bzw. Logikanalyzer nachvollziehen und scheint durch äußere (EMV) Einflüsse ausgelöst zu werden.
Ich dachte schon, ich hätte Hallus. Interessanterweise meldete der gleiche BM mit gleichem Sketch unter fhem viel mehr "falsche" Bewegungen als an einer CCU.
papa hat geschrieben:
11.04.2023, 20:35
Und dann im init()

Code: Alles auswählen

motionISR2Pin(sdev,1,PIR_PIN1,PIR_PIN2,100);
Ist aber nicht getestet - nur durch den Compiler geschickt.
@papa Der WMDO hat ja nur einen Pir und der WMD 2. Im Sketch wird der Variablenname PIR_PIN1 und PIR_PIN2 für die beiden Pir's des WMD benutzt.
Deine Codezeile bezieht sich hier aber auf den WMDO mit den beiden Komparatorpins am 328 nehme ich an, oder?
Was müsste man dann für den WMD noch ergänzen um beide PIRs zu nutzen?
VG Thomas

Sunti
Beiträge: 449
Registriert: 10.12.2011, 17:56
Danksagung erhalten: 3 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von Sunti » 13.04.2023, 08:26

Hallo miteinander,

Ich rede vom WMDO - AUSSEN - letzte Änderungen von Jerome eingearbeitet

3. Versuch zum Thema "Fehlbewegungsmeldungen" - wie stellt ihr die fest? - Ich habe gerade wieder im Historian nachgeschaut - keinerlei "Fehl"-Bewegungsmeldungen heute Nacht

Greetz SunTi

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von jp112sdl » 13.04.2023, 08:39

Surfi hat geschrieben:
12.04.2023, 21:53
Deine Codezeile bezieht sich hier aber auf den WMDO mit den beiden Komparatorpins am 328 nehme ich an, oder?
Was müsste man dann für den WMD noch ergänzen um beide PIRs zu nutzen?
Ja genau. Beim WMD hast du 4 Pins.
Da es sich um ein 1-Kanal-Gerät handelt, müsste man die Bewegungserkennungen beider PIR "ver-odern".
Sunti hat geschrieben:
13.04.2023, 08:26
3. Versuch zum Thema "Fehlbewegungsmeldungen" - wie stellt ihr die fest?
"Bewegung erkannt" in der CCU , obwohl keine Bewegung stattgefunden hat :wink:

Nächste Woche hab ich auch noch mal Zeit, mich damit näher zu befassen

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
Peter.matic
Beiträge: 20
Registriert: 01.08.2022, 22:00
System: CCU
Hat sich bedankt: 2 Mal
Danksagung erhalten: 4 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von Peter.matic » 13.04.2023, 15:18

Hallo allerseits,

nun muss ich mich doch einmal in die Diskussion einschalten. Ich beschäftige mich auch schon eine ganze Weile mit dem WMD.
Die meisten der hier angesprochenen Probleme habe ich auch schon gelöst.
Ein funktionsfähiges Sketch kann ich auch zur Verfügung stellen.

Alle meine Erkenntnisse habe ich in einem github Repository zusammengestellt, das hier zu finden ist.

Bitte dort weiterlesen.

Ich hoffe, dass alles so funktioniert. Andernfalls hier melden, dann sehen wir weiter.

Viel Spass damit...
Schöne Grüße,
Peter

☕️ https://ko-fi.com/petermatic

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von jp112sdl » 13.04.2023, 17:07

Das ist ja mal alles schön ordentlich aufgeschrieben und dokumentiert. :D

Nur das

Code: Alles auswählen

  motionISR(sdev,1,PIR_PIN1);
  motionISR(sdev,2,PIR_PIN2);
  motionISR(sdev,3,PIR_PIN3);
  motionISR(sdev,4,PIR_PIN4);
  
ist komisch. Funktioniert das so?
Von der Logik her, hast du gerade 4 Geräte-Kanälen Pins zugewiesen, obwohl das Gerät nur 1 Kanal besitzt

Code: Alles auswählen

typedef MultiChannelDevice<Hal,MChannel,1> MotionType;
Hier gilt es immer noch, eine "Gesamt-ISR" für alle 4 Pins (eigentlich eine Logik aus 2x2 Pins) zu bauen.

Bei Bewegung kommt ja immer 1 Impuls des einen Komparatorausgangs gefolgt von einem Impuls des zweiten.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Surfi
Beiträge: 30
Registriert: 16.01.2019, 13:42
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: RWE/Innogy/Livisi Bewegungsmelder WMD - Homematic/AskSinPP Firmware

Beitrag von Surfi » 13.04.2023, 18:50

Hallo Peter,

super dokumentierte Seite, wow.
Peter.matic hat geschrieben:
13.04.2023, 15:18

Ich hoffe, dass alles so funktioniert. Andernfalls hier melden, dann sehen wir weiter.

Viel Spass damit...
ich habe dein Konstrukt mal quick&dirty ausprobiert. Es scheint zu funktionieren auf beiden PIRs. Was mir allerdings aufgefallen ist,
dass bei einer erkannten Bewegung diese 3 Min lang ansteht, egal wie kurz diese wirklich ist.

Also frühestens nach 3 Min meldet der BM wieder "keine Bewegung"

Grüße Thomas
VG Thomas

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“