RFD-FHEM / RFFHEM

Counterpart of SIGNALDuino, it's the code for FHEM to work with the data received from the uC
GNU General Public License v3.0
44 stars 33 forks source link

Support for door bell FreeTec PE-6946-675 (from PEARL) #315

Closed git-developer closed 5 years ago

git-developer commented 6 years ago

Specifications for new push-button

Specifications for receiver

Log

freetec-funkklingel.log

sidey79 commented 6 years ago

Look like u40#2A9FFE, is the code, the bell is sending. Does this code show up in the event log, when the bell is ringing?

Can you also please update the module to the current developer version, there are some changes which can affect your bell: update all https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-r33/controls_signalduino.txt

git-developer commented 6 years ago

Look like u40#2A9FFE, is the code, the bell is sending. Does this code show up in the event log, when the bell is ringing?

Yes.

Monitoring of the bell is already working in FHEM using a combination of a dummy and a notify device, but I'd like to avoid the log messages about unknown device.

I will update to the developer version and report.

git-developer commented 6 years ago

Changes to my environment:

Logs:

HomeAutoUser commented 6 years ago

Hello @git-developer, how far is the bell from the Arduino?

git-developer commented 6 years ago

~4m with 1 wall inbetween. Signal quality should be fine.

HomeAutoUser commented 6 years ago

Please set

attr signalduino addvaltrigger 1

Push your Button on doorbell in Intervall for 1minutes (5x to 7x)

Please send the Logs here.

git-developer commented 6 years ago

Logs:

elektron-bbs commented 6 years ago

Diese Klingel wurde 2016 schon mal behandelt: https://github.com/RFD-FHEM/RFFHEM/issues/49 Das Protokoll ist eigentlich schon eingerichtet worden, damals allerdings als MS. Das Signal wird allerdings jetzt als MU-Nachricht erkannt. Bitte ersetze den Eintrag für das Protokoll 32 in der Datei signalduino_protocols.hash durch diesen Eintrag:

"32" => #FreeTec PE-6946 -> http://www.free-tec.de/Funkklingel-mit-Voic-PE-6946-919.shtml
            # https://github.com/RFD-FHEM/RFFHEM/issues/49
        # MS;P0=-266;P1=160;P3=-690;P4=580;P5=-6628;D=15131313401340134013401313404040404040404040404040;CP=1;SP=5;O;
            # https://github.com/RFD-FHEM/RFFHEM/issues/315
            # MU;P0=-6676;P1=578;P2=-278;P4=-680;P5=176;P6=-184;D=541654165412545412121212121212121212121250545454125412541254125454121212121212121212121212;CP=1;R=0;
            # MU;P0=146;P1=245;P3=571;P4=-708;P5=-284;P7=-6689;D=14351435143514143535353535353535353535350704040435043504350435040435353535353535353535353507040404350435043504350404353535353535353535353535070404043504350435043504043535353535353535353535350704040435043504350435040435353535353535353535353507040404350435;CP=3;R=0;O;
            # MU;P0=-6680;P1=162;P2=-298;P4=253;P5=-699;P6=555;D=45624562456245456262626262626262626262621015151562156215621562151562626262626262626262626210151515621562156215621515626262626262626262626262;CP=6;R=0;
    {   
        name           => 'freetec 6946',
        comment        => 'Doorbell FreeTec PE-6946',
        id             => '32',
        one            => [4,-2],
        zero           => [1,-5],
        start          => [1,-45],
        #sync           => [1,-49],
        clockabs       => 150,
        format         => 'twostate',
        preamble       => 'u32#',               # prepend to converted message  
        #clientmodule   => '',                  # not used now
        #modulematch    => '',                  # not used now
        length_min     => '24',
        length_max     => '24',
    },

Das Protokoll 40 kannst du in die Blacklist nehmen. Das erzeugt nur "Zufallszahlen".

git-developer commented 6 years ago

Habe ich gemacht und anschließend FHEM neu gestartet. Log:

Wenn ich das richtig verstehe, muss ich jetzt nur noch ein IT device mit Code 0FFFF01111 anlegen, richtig (ich verwende kein autocreate für Typ IT)?

elektron-bbs commented 6 years ago

Nein, der eine "Treffer" bei IT war sicher auch nur wieder Zufall, aber das müsste ich mir erst genauer ansehen. Du solltest jetzt mittels Befehl attr signalduino development u32 dieses Protokoll als "in Entwicklung" aufnehmen und dann kontrollieren, ob die Klingelsignale zuverlässig erkannt werden.

git-developer commented 6 years ago

Aus meiner Sicht sieht das gut aus.

fhem.cfg:

        attr signalduino development u32
        attr signalduino blacklist_IDs 19,40

FHEM-Log:

        2018.10.18 08:04:58 1: signalduino: SIGNALduino_unknown UNDEFINED sensor SIGNALduino_unknown_32 detected
        2018.10.18 08:04:58 2: autocreate: define SIGNALduino_unknown_32 SIGNALduino_un SIGNALduino_unknown_32
        2018.10.18 08:04:58 2: autocreate: define FileLog_SIGNALduino_unknown_32 FileLog %L/SIGNALduino_unknown_32-%Y.log SIGNALduino_unknown_32

SIGNALduino_unknown_32-2018.log:

        2018-10-18_08:21:59 SIGNALduino_unknown_32 bitMsg: 000101010100111111111111
        2018-10-18_08:21:59 SIGNALduino_unknown_32 bitMsg_invert: 111010101011000000000000
        2018-10-18_08:21:59 SIGNALduino_unknown_32 bitCount: 24
        2018-10-18_08:21:59 SIGNALduino_unknown_32 hexMsg: 154FFF
        2018-10-18_08:21:59 SIGNALduino_unknown_32 hexMsg_invert: EAB000
        2018-10-18_08:21:59 SIGNALduino_unknown_32 hexCount or nibble: 6
        2018-10-18_08:21:59 SIGNALduino_unknown_32 lastInputDev: signalduino
        2018-10-18_08:27:02 SIGNALduino_unknown_32 bitMsg: 000101010100111111111111
        2018-10-18_08:27:02 SIGNALduino_unknown_32 bitMsg_invert: 111010101011000000000000
        2018-10-18_08:27:02 SIGNALduino_unknown_32 bitCount: 24
        2018-10-18_08:27:02 SIGNALduino_unknown_32 hexMsg: 154FFF
        2018-10-18_08:27:02 SIGNALduino_unknown_32 hexMsg_invert: EAB000
        2018-10-18_08:27:02 SIGNALduino_unknown_32 hexCount or nibble: 6
        2018-10-18_08:27:02 SIGNALduino_unknown_32 lastInputDev: signalduino
        2018-10-18_08:27:03 SIGNALduino_unknown_32 bitMsg: 000101010100111111111111
        2018-10-18_08:27:03 SIGNALduino_unknown_32 bitMsg_invert: 111010101011000000000000
        2018-10-18_08:27:03 SIGNALduino_unknown_32 bitCount: 24
        2018-10-18_08:27:03 SIGNALduino_unknown_32 hexMsg: 154FFF
        2018-10-18_08:27:03 SIGNALduino_unknown_32 hexMsg_invert: EAB000
        2018-10-18_08:27:03 SIGNALduino_unknown_32 hexCount or nibble: 6
        2018-10-18_08:27:03 SIGNALduino_unknown_32 lastInputDev: signalduino

Mit einem passenden IT device verhält es sich dann schon genau so, wie ich es mir vorstelle:

fhem.cfg:

        define it_tuerklingel IT 0FFFF01111 11 11
        attr   it_tuerklingel model itremote
        attr   it_tuerklingel stateFormat [it_tuerklingel:state:t]

FHEM-Log:

        2018.10.18 08:27:02 3: signalduino IT: it_tuerklingel 2018-10-18 08:21:59->on
        2018.10.18 08:27:03 3: signalduino IT: it_tuerklingel 2018-10-18 08:27:02->on
HomeAutoUser commented 6 years ago

Wenn in dem Logfile u32 jeder Tastendruck von dir drin ist, dann sieht es gut aus. Hast du 2x heute morgen die Klingel gedrückt?

Wiederhole das bitte mehrfach nochmal. 10x mit einer Pause von ca. 30sec. Wenn du dann eindeutig sagst, ja es wurde 10x mindestens zu den Zeiten wo du die Taste gedrückt hast registriert, Daumen hoch :)

Was möchtest du mit dem IT? Das ist ein Schalter bzw ein Modul wo vieles zusammenläuft.

Möchtest du ein Device in FHEM sehen was dein Klingelknopf wiederspiegelt?

git-developer commented 6 years ago

Hast du 2x heute morgen die Klingel gedrückt?

Ja.

Wiederhole das bitte mehrfach nochmal.

Habe ich gemacht. Hat funktioniert, d.h. jedes Klingeln wurde korrekt erkannt. Logs:

Was möchtest du mit dem IT? Das ist ein Schalter bzw ein Modul wo vieles zusammenläuft. Möchtest du ein Device in FHEM sehen was dein Klingelknopf wiederspiegelt?

Ja. Setzt man für ein IT-Gerät das Attribut model auf den Wert itremote, dann werden die Schaltfunktionen deaktiviert, das passt sehr gut. Mit der o.g. Konfiguration sieht das so aus: grafik

Ich nehm auch gern was anderes als ein IT-Gerät, hab aber nichts besseres gefunden. Gefällt mir jedenfalls besser als ein Dummy, weil es so out-of-the-box (also ohne notify oder DOIF) funktioniert. Ein eigenes Modul zu schreiben erscheint mir für den Anwendungsfall zu aufwändig.

elektron-bbs commented 6 years ago

Naja, das das jetzt so passt, ist vieleicht nur Zufall. Wenn ich das richtig deute, spricht bei deiner Klingel jetzt immer auch Protokoll 62 an: signalduino: decoded matched MU Protocol id 62 dmsg i154FFF Da dieses Protokoll aber für Funk-Steckdosen ist (siehe https://github.com/RFD-FHEM/RFFHEM/issues/142), kann sein, das das nach dem nächsten Batteriewechsel nicht mehr funktioniert, weil sich evtl. der Code des Senders ändert. Außerdem passen die Timings von Protokoll 32 und 62 nicht so richtig zueinander.

git-developer commented 6 years ago

OK. Dann wäre also ein dummy auf Basis von DMSG u32#154FFF die robustere Wahl? Oder gibt es noch eine andere Alternative?

HomeAutoUser commented 6 years ago

@git-developer , die angedachte Variante von dir mit dem Dummy sollte in Ordnung sein. Eine weitere Alternative habe ich gerade in Diskussion gegeben bei uns Entwicklern. Die Vielzahl von Klingeln nimmt zu und so kam mir die Überlegung, das generell umzusetzen wie du möchtest.

Das hätte den Vorteil, du bekommst automatisch ein Device angelegt wo du auch selbst in FHEM dich anklingeln könntest bzw. den Status des letzten klingeln siehst. Bis zur Umsetzung könnte aber noch ein paar Tage dauern wenn wir dies "beschließen" oder das ganze auf ein guten Nenner stößt.

git-developer commented 6 years ago

Das klingt nach einer guten Idee, fände ich super.

Auch mit einem Dummy komme ich gut klar. Aus meiner Sicht ist dieses Thema erfolgreich erledigt und kann geschlossen werden.

HomeAutoUser commented 5 years ago

@git-developer,

Sobald das Modul für die Klingeln "online" kommt, so wirst du dies mit dem verteilen der dev-r33 erhalten. Sollten dennoch Probleme beim Empfang oder mit dem späteren Modul auftreten, so melde dich bitte wieder hier an dieser Stelle bei Github.

Das Thema kannst du bei bedarf selbst schließen, mit einem "klick" unten rechts "Close and comment" or "Close issue". Du kannst auch jederzeit bei geschlossenen Fäden wieder dazu schreiben.