HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Moderator: Co-Administratoren
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Moin,
so ich habe neue Erkenntnisse. So wie ich es aktuell sehe, können nur die Direktverknüpfungen zwischen Taster und Relais desselben Aktors nicht abgerufen werden, alles andere Funktioniert und ist auch nicht abhängig vom zweiten Aktor.
Verknüpfe ich nur die Tasten mit dem Relais (Schalter EIN +Schalter AUS), dann scheint auch das zu funktionieren.
Erst wenn ich mehrere Verknüpfungen anlege um (wie bei mir):
Taste1 Kurz = Licht an
Taste1 Lang = Schalsteckdose EIN/AUS
Taste2 Kurz = Licht aus
Taste2 Lang = Schaltsteckdose Ein für 30Minuten
werden die Konfigruationsdaten für die "interne" Verknüpfung nicht abgerufen.. Alles andere Funktioniert..
Jetzt habe ich zwei Fragen:
1. Wo finde ich den Sketch für den HM-LC-Sw1PBU-FM? Ich konnte keinen finden.. Nur den HM-LC-Sw2, hier ist aber die untere Taste ohne Funktion.
2. Wie müsste ich den Sketch des HB-UNI-SenAct-4-4 anpassen, damit beim kurzen Tastendruck direkt das Relais geschaltet wird (Verknüpfung in der Arduino Software statt in der Homematic)
Vom Prinzip her denke ich mir sowas hier:
Gruß Carsten
so ich habe neue Erkenntnisse. So wie ich es aktuell sehe, können nur die Direktverknüpfungen zwischen Taster und Relais desselben Aktors nicht abgerufen werden, alles andere Funktioniert und ist auch nicht abhängig vom zweiten Aktor.
Verknüpfe ich nur die Tasten mit dem Relais (Schalter EIN +Schalter AUS), dann scheint auch das zu funktionieren.
Erst wenn ich mehrere Verknüpfungen anlege um (wie bei mir):
Taste1 Kurz = Licht an
Taste1 Lang = Schalsteckdose EIN/AUS
Taste2 Kurz = Licht aus
Taste2 Lang = Schaltsteckdose Ein für 30Minuten
werden die Konfigruationsdaten für die "interne" Verknüpfung nicht abgerufen.. Alles andere Funktioniert..
Jetzt habe ich zwei Fragen:
1. Wo finde ich den Sketch für den HM-LC-Sw1PBU-FM? Ich konnte keinen finden.. Nur den HM-LC-Sw2, hier ist aber die untere Taste ohne Funktion.
2. Wie müsste ich den Sketch des HB-UNI-SenAct-4-4 anpassen, damit beim kurzen Tastendruck direkt das Relais geschaltet wird (Verknüpfung in der Arduino Software statt in der Homematic)
Vom Prinzip her denke ich mir sowas hier:
Code: Alles auswählen
if ( s == released || s == longreleased) {
if (s==released){
if (THIS IS BUTTON1){ //Keine Ahnung woher ich diese info bekomme, evtl über this->device()->?????
JETZT Relais1_Pin --> HIGH //Hier muss nicht nur der Pin gesetzt werden, sondern auch das Telegramm zur CCU angestoßen werden
}
if (THIS IS BUTTON2){//Keine Ahnung woher ich diese info bekomme, evtl über this->device()->?????
JETZT Relais1_Pin --> LOW//Hier muss nicht nur der Pin gesetzt werden, sondern auch das Telegramm zur CCU angestoßen werden
}
}
Gruß Carsten
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Bin mir jetzt gerade nicht sicher, was Du da überhaupt zusammengebaut hast. Ich gehe mal davon aus, dass Du 1 SwitchChannel hast (Kanal 1) und 2 RemoteChannels (Kanal 2 & 3).
Du musst initPeerings() dann wie folgt ändern:
Du musst initPeerings() dann wie folgt ändern:
Code: Alles auswählen
void initPeerings (bool first) {
if ( first == true ) {
HMID devid;
sdev.getDeviceID(devid);
Peer taster1(devid,2);
Peer taster2(devid,3);
// normale 2 Tastenbedienung
sdev.channel(1).peer(taster1,taster2);
// Taster1 long auf toggle ändern
SwitchPeerList pl = sdev.channel(1).getList3(taster1).lg();
pl.actionType(AS_CM_ACTIONTYPE_JUMP_TO_TARGET);
pl.jtOn(AS_CM_JT_OFFDELAY);
pl.jtOff(AS_CM_JT_ONDELAY);
pl.jtDlyOn(AS_CM_JT_ON);
pl.jtDlyOff(AS_CM_JT_OFF);
pl.multiExec(false);
// Taster2 auf 30min ändern
pl = sdev.channel(1).getList3(taster2).lg();
pl.actionType(AS_CM_ACTIONTYPE_JUMP_TO_TARGET);
pl.jtOn(AS_CM_JT_ON);
pl.jtOff(AS_CM_JT_ONDELAY);
pl.jtDlyOn(AS_CM_JT_ON);
pl.jtDlyOff(AS_CM_JT_OFF);
pl.onTime(0x43); // müssten 30min sein
}
}
Anfragen zur AskSin++ werden nur im Forum beantwortet
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Hallo pa-pa,
deine Glaskugel hat Recht.. ich habe einen HM-LC-SW1PBU (Markenschalter 1-fach mit 2 Tasten).
Ich werde deinen Code heute Abend gleich mal testen, vielen Dank dafür..
Ich wollte eigentlich "nur" die internen Peerings für den kurzen Tastendruck in die Software bringen, aber es ist interessant zu sehen, wie du das für alles direkt gemacht hast. Das kann mir ggfls. bei einem anderen Projekt noch helfen.
Woher weiß der Aktor denn jetzt, welchen Aktor er schalten soll, durch die internen Peerings, das habe ich noch nicht verstanden.
Jetzt ist es im Sketch so, das dort 4 Taster (Kanal 1-4) und 4 Relais (Kanal 5-8) parametriert sind, dann müssten die Peerings sich doch wie folgt ändern (wenn ich es richtig verstanden habe):
Ist mein Gedankengang hier richtig?
Gruß Carsten
deine Glaskugel hat Recht.. ich habe einen HM-LC-SW1PBU (Markenschalter 1-fach mit 2 Tasten).
Ich werde deinen Code heute Abend gleich mal testen, vielen Dank dafür..
Ich wollte eigentlich "nur" die internen Peerings für den kurzen Tastendruck in die Software bringen, aber es ist interessant zu sehen, wie du das für alles direkt gemacht hast. Das kann mir ggfls. bei einem anderen Projekt noch helfen.
Woher weiß der Aktor denn jetzt, welchen Aktor er schalten soll, durch die internen Peerings, das habe ich noch nicht verstanden.
Jetzt ist es im Sketch so, das dort 4 Taster (Kanal 1-4) und 4 Relais (Kanal 5-8) parametriert sind, dann müssten die Peerings sich doch wie folgt ändern (wenn ich es richtig verstanden habe):
Code: Alles auswählen
void initPeerings (bool first) {
if ( first == true ) {
HMID devid;
sdev.getDeviceID(devid);
Peer taster1(devid,1);
Peer taster2(devid,2);
// normale 2 Tastenbedienung
sdev.channel(5).peer(taster1,taster2);
// Taster1 long auf toggle ändern
SwitchPeerList pl = sdev.channel(5).getList3(taster1).lg();
pl.actionType(AS_CM_ACTIONTYPE_JUMP_TO_TARGET);
pl.jtOn(AS_CM_JT_OFFDELAY);
pl.jtOff(AS_CM_JT_ONDELAY);
pl.jtDlyOn(AS_CM_JT_ON);
pl.jtDlyOff(AS_CM_JT_OFF);
pl.multiExec(false);
// Taster2 auf 30min ändern
pl = sdev.channel(5).getList3(taster2).lg();
pl.actionType(AS_CM_ACTIONTYPE_JUMP_TO_TARGET);
pl.jtOn(AS_CM_JT_ON);
pl.jtOff(AS_CM_JT_ONDELAY);
pl.jtDlyOn(AS_CM_JT_ON);
pl.jtDlyOff(AS_CM_JT_OFF);
pl.onTime(0x43); // müssten 30min sein
}
Gruß Carsten
Gruß Carsten
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Ja genau. Du hast natürlich Recht, es fehlen noch die Peers in den RemoteChannel. ALso so
Code: Alles auswählen
void initPeerings (bool first) {
if ( first == true ) {
HMID devid;
sdev.getDeviceID(devid);
Peer switch1(devid,5);
// Taster 1 & 2 mit Switch 1 verbinden
sdev.channel(1).peer(switch1);
sdev.channel(2).peer(switch1);
Peer taster1(devid,1);
Peer taster2(devid,2);
// normale 2 Tastenbedienung
sdev.channel(5).peer(taster1,taster2);
// Taster1 long auf toggle ändern
SwitchPeerList pl = sdev.channel(5).getList3(taster1).lg();
pl.actionType(AS_CM_ACTIONTYPE_JUMP_TO_TARGET);
pl.jtOn(AS_CM_JT_OFFDELAY);
pl.jtOff(AS_CM_JT_ONDELAY);
pl.jtDlyOn(AS_CM_JT_ON);
pl.jtDlyOff(AS_CM_JT_OFF);
pl.multiExec(false);
// Taster2 auf 30min ändern
pl = sdev.channel(5).getList3(taster2).lg();
pl.actionType(AS_CM_ACTIONTYPE_JUMP_TO_TARGET);
pl.jtOn(AS_CM_JT_ON);
pl.jtOff(AS_CM_JT_ONDELAY);
pl.jtDlyOn(AS_CM_JT_ON);
pl.jtDlyOff(AS_CM_JT_OFF);
pl.onTime(0x43); // müssten 30min sein
}
Anfragen zur AskSin++ werden nur im Forum beantwortet
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Evtl. sollte man dem Kind dann noch einen neuen Namen verpassen (mit extra Device ID) und den Code mit im Github aufnehmen.
Kann sicher der ein oder andere auch gebrauchen.
Kann sicher der ein oder andere auch gebrauchen.
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Beim Kompilieren erhalte ich einen Fehler:
ist aber in dem Bereich den langen Tastendruck, den ich über die CCU anlegen würde, daher nicht so tragisch.
Ist das ein Schreibfehler, oder hab ich irgendwas vergessen zu aktualisieren?
Gruß Carsten
Code: Alles auswählen
'class as::GenericList' has no member named 'lg'
Ist das ein Schreibfehler, oder hab ich irgendwas vergessen zu aktualisieren?
Gruß Carsten
Gruß Carsten
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen
Da stimmt der Typ nicht - probiere mal
Code: Alles auswählen
SwitchPeerList pl = sdev.switchChannel(1).getList3(taster1).lg();
Anfragen zur AskSin++ werden nur im Forum beantwortet