ich habe mich an ein Projekt "Elektrischer Gurtwickler HomeMatic-fähig machen" gewagt. Dazu habe ich ein Superrollo GW60 gekauft.
Erst im Nachhinein habe ich festgestellt, das hier im Forum doch recht viel schon mit dem GW60 gearbeitet wurde (Ganz berühmt ist wohl der Umbau von Björn https://www.hempel-online.de/umbau-supe ... atic-.html).
Statt einem HM-MOD-Re-8 wollte ich jetzt einen Arduino Pro Mini mit dem "HM-LC-Bl1-FM" (https://github.com/pa-pa/AskSinPP/blob/ ... Bl1-FM.ino) Sketch flashen.
Dieser hat zwei Ausgänge (UP_PIN 16 und DOWN_PIN 17) um mittels Optokoppler die Rollos rauf und runter fahren zu lassen. Soweit so gut
Es gibt aber auch zwei weitere Pins (UP_BUTTON_PIN 6 und DOWN_BUTTON_PIN 3). Hierzu meine Fragen:
1) Verstehe ich richtig das dies zwei Eingänge sind? D.h. ich könnte zwei Schalter verwenden, um quasi die Rolladen rauf und runter fahren zu lassen?
2) Wenn ja, dann könnte ich doch die beiden originallen Tasten des GW60 dazu verwenden? Jetzt kommt aber der Haken: Der Arduino steuert ja das Rollo über diese beiden Tasten. Das würde doch dann eine "Kettenreaktion"/"Rückkopplung" verursachen, in dem der Arduino mittels UP_PIN den UP_BUTTON_PIN selbst drückt?
3) Könnte ich diese "Rückkopplung" im Sketch vermeiden? Z.b. die interrupts auf die beiden Eingangs buttons ignorieren, solange gerade selbst mit den Beiden Ausgängen gesteuert wird?
4) Die fragliche Code-Stelle sehe ich hier:
Code: Alles auswählen
virtual void switchState(uint8_t oldstate,uint8_t newstate, uint32_t stateDelay) {
BaseChannel::switchState(oldstate, newstate, stateDelay);
if( newstate == AS_CM_JT_RAMPON && stateDelay > 0 ) {
//TODO Disable interrupt
motorUp();
}
else if( newstate == AS_CM_JT_RAMPOFF && stateDelay > 0 ) {
//TODO Disable interrupt
motorDown();
}
else {
motorStop();
//TODO Enable interrupt again
}
}
Sind meine Gedankengänge richtig? Könnt ihr mir bitte dabei helfen?
Viellen Dank, euer
Gnu