Hallo,
Folgendes Problem: Ich bin gerade im rfmode X, möchte kurz etwas auf rfmode Y senden, und dann wieder zurück in den alten rfmode X.
Im Moment ist das für verschiede Kombinationen von X und Y in riesigen 'if's' gelöst.
Angehängter Patch vereinheitlicht alle asksin_on/moritz_on/cc_on/fastrf_on etc in ein cc_rf_mode
typedef enum {
RF_OFF = 0,
RF_SLOWRF,
RF_FASTRF,
RF_INTERTECHNO,
RF_ASKSIN,
RF_MORITZ,
RF_RWE,
} cc_rf_mode_t;
extern cc_rf_mode_t cc_rf_mode;
Insbesondere ist die Funktion
void ccSetRfMode(cc_rf_mode_t mode);
hinzugekommen. Wenn dieser Patch auf Gegenliebe stößt, dann
wird der nächste Patch das ganze
if(X_on) {
restore_x = 1;
x_on = 0;
}
if(Z_on) {
...
}
activate_Y()
send_something_on_Y()
if(restore_x) {
x_init()
x_on = 1;
} ...
durch
cc_rf_mode_t oldmode = cc_rf_mode;
activate_Y()
send_something_on_Y()
ccSetRfMode(oldmode);
ersetzten.
Da das alle Funkmodule betrifft, würde ich gerne eure Meinung hören.
Hallo Matthias,
ich finde dein Patch gut, das Umschalten wird dadurch "ordentlicher". Ich bin aber prinzipiell gegen "kurz auf rfmode Y senden", mAn ist der Support-Aufwand unverhaeltnismaessig, und es kann auch die Maintainer der anderen Protokolle betreffen. Dein Patch sollte (falls es getestet ist :) eingecheckt werden, ob man das Feature in fhem oder in der Doku aktiv bewirbt, ist eine andere Baustelle.
Gruss,
Rudi
Gibt es was Neues zu dieser Idee? Da nunmehr SOMFY und M-Bus hinzugekommen sind wird es immer dringender ...
Gibt nichts Neues. Hab seit über einem Jahr wieder angefangen, mich etwas mit meiner FHEM Installation zu beschäftigen.
Wenn wir die Idee umsetzen wollen, dann können wir den Patch wie im ersten Beitrag einchecken
(und SOMFY und M-BUS hinzufügen)
Ich finde den Patch ebenfalls klasse - das spart diese leidigen if(rfmode_xyz) im Code.
Hallo zusammen,
auch wenn dasThemaschon älter ist, würde mich interessieren, wo an den patch rein legt?
Ich hoffe hier ist noch jemand aktiv, der mir das beantworten kann,
Grüße, Ralf