AskSin HM-LC-SW4-SM Buttons funktionieren nicht

Begonnen von efyzz, 06 Juli 2019, 15:00:04

Vorheriges Thema - Nächstes Thema

efyzz

Mahlzeit,

habe mir mit der AskSin++ Library zwei HM-LC-SW4-SM gebaut. Dafür folgenden Sketch auf China-Arduinos Mini Pro verwendet:
https://github.com/pa-pa/AskSinPP/blob/master/examples/HM-LC-SWX-SM/HM-LC-SWX-SM.ino

Um auch die 4 Buttons nutzen zu können, habe ich die Zeile
// #define HM_SENSOR_RELAY
auskommentiert.

Dann habe ich für die beiden Arduinos jeweils eine andere Device ID und Device Serial in diesem Block vergeben:

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
    {0x12,0x34,0x56},       // Device ID
    "papa000000",           // Device Serial
    {HM_LC_SW4_SM},         // Device Model
    0x16,                   // Firmware Version
    as::DeviceType::Switch, // Device Type
    {0x01,0x00}             // Info Bytes
};


Nun kommt das Kuriose:
Bei dem ersten Arduino funktioniert alles wie erwartet. Nach Pairing mit FHEM kann ich die Ausgänge sowohl mit FHEM, als auch mit den Buttons schalten.

Beim zweiten Arduino kann ich die Ausgänge per FHEM schalten, die Buttons funktionieren jedoch nicht  :o
Es liegt nicht an der Hardware, denn wenn ich auf den funktionierenden Arduino die nicht funktionierende Serial+ID flashe, funktionieren die Buttons hier auch nicht mehr.

Ich kann über die serielle Konsole des Arduinos sehen, dass der Tastendruck erkannt wird. Es wird jedoch weder ein Ausgang geschaltet, noch etwas an FHEM gesendet (Config LED blinkt nicht).

Flashe ich wieder die funktionierende Serial+ID, so wird bei Tastendruck wieder der Ausgang geschaltet und FHEM über den Zustandswechsel informiert, was man an der blinkenden LED und auch in FHEM selbst sieht.

In FHEM habe ich für beide devices nichts weiter konfiguriert, nur gepairt.

Ich habe dann mal eine dritte Serial+ID getestet, doch auch hier funktionieren die Buttons nicht.

Woran könnte das liegen?

Danke euch!
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

papa

Die internen Peerings werden nur beim ersten Start initialisiert oder wenn sich die Registerlisten ändern. Wenn Du nun nochmal eine andere ID drüber flashst, stimmen die Peerings nicht mehr. Einfach mal nen RESET (Conifgtaster mindesten 6 Sekunden drücken) machen. Dann sollten auch die Buttons wieder funktionieren.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

efyzz

Hervorragend, danke! Problem gelöst :)

Aber warum klappt es dann nicht nach dem neu Flashen des Arduino?

Ich vermute folgendes:
Die internen Pairings sind in FHEM gespeichert und konfigurieren den  Arduino beim Starten. Auch ein frisch geflashter Arduino wird als dasselbe Device erkannt und erhält direkt wieder die "alte" Konfiguration. Drückt man den Config-Button am Arduino für 6s wird FHEM aufgefordert, alle Einstellungen zu löschen und läd diese dann wiederum zum Arduino hoch.

Stimmt das so?

RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

papa

Nein - das ist im EEprom. Der wird beim Flashen nicht gelöscht.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

efyzz

 ;D ;D ;D
Meine Erklärung klingt aber viel spannender  ::)

Alles klar, danke!
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.