HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von Bratmaxe » 21.08.2018, 14:50

Hallo zusammen,

ich habe überlegt (mit Jerome's Hilfe), ob es nicht möglich wäre, den HM-LC-Sw2PBU-FM mit dem Sketch von Jerome's Sketch des HB-UNI-SenAct-4-4 zu flashen. Das sollte auch erstmal funktionieren.. Nun kommen wir aber zum ersten Problem. Jerome hat mich darauf hingewiesen, das man in der CCU keine Direktverknüpfungen von klassischen HM Geräten mit derselben Seriennummer erstellen (Sprich Button und Relais mit derselben Seriennummer) kann. Bzw. man kann diese erstellen, aber man sieht diese dann nicht in der WEBUI. Da die CCU aber immer direkt zwei Direktverknüpfungen anlegt, kann ich nicht eine löschen und die andere nur auf den kurzen Tastendruck reagieren lassen (weil ich diese ja nicht sehe, kann ich diese im Nachhinein nicht bearbeiten)
Somit gäbe es zwei Möglichkeiten.
1. Die Direktverknüpfung sichtbar machen, vermutlich ist das "nur" ein Filter.. aber da habe ich keine Ahnung wo ich das suchen sollte, und ob es überhaupt im erreichbaren Code zu finden ist.... sehr schwierig bis aussichtslos...
2. Den Sketch anpassen..
Folgendes möchte ich erreichen:
Taste1 Kurz gedrückt ==> Meldung an die CCU und toggel von Relais 1 (mit Meldung an die CCU, das das Relais umgeschaltet wurde)
Taste1 Lang gedrückt ==> Meldung an CCU für Progrmme / Direktverknüpfung zu einem anderen Aktor
Taste2 Kurz gedrückt ==> Meldung an die CCU und toggel von Relais 2 (mit Meldung an die CCU, das das Relais umgeschaltet wurde)
Taste2 Lang gedrückt ==> Meldung an CCU für Progrmme / Direktverknüpfung zu einem anderen Aktor
Also der Aktor soll sich so verhalten wie bisher, also Relais mit Tastendruck direkt umschalten, ohne Abhängigkeit zur CCU (Ausfallsicherheit)
Zusätzlich möchte ich aber den Kurzen/Langen Tastendruck in Programmen als Auslöser, oder per Direktverknüpfung verwenden können..

Beim Rolladenaktor wäre dasselbe Prinzip ebenfalls sinnvoll, so kann man z.B: mit dem kurzen Durck das Licht ein/ausschalten und mit langem Tastendruck die Rolladen fahren lassen(das mache ich persönlich selten manuell, und deshalb ist der Taster leider fast ungenutzt)

Ich gehe davon aus, das diese Funktion von vielen Usern gewünscht wäre.

Meine Überlegung war nun, das man beim Tastendruck "einfach" zusätzlich zum Status senden, das Relais toggelt.
Hier der Original Codeschnipsel:

Code: Alles auswählen

    virtual void state(uint8_t s) {
      DHEX(BaseChannel::number());
      Button::state(s);
      RemoteEventMsg& msg = (RemoteEventMsg&)this->device().message();
      DPRINT("BATTERY IS LOW? "); DDECLN(this->device().battery().low());
      msg.init(this->device().nextcount(), this->number(), repeatcnt, (s == longreleased || s == longpressed), this->device().battery().low());
      if ( s == released || s == longreleased) {
        this->device().sendPeerEvent(msg, *this);
        repeatcnt++;
      }
      else if (s == longpressed) {
        this->device().broadcastPeerEvent(msg, *this);
      }
    }

    uint8_t state() const {
      return Button::state();
    }

    bool pressed () const {
      uint8_t s = state();
      return s == Button::pressed || s == Button::debounce || s == Button::longpressed;
    }

Da ich im Codebearbeiten/lesen noch nicht so fit bin, hoffe ich ihr könnt mir helfen.
Meine Idee war es nun beim Butten released Aktion das Schalten des Relais mit anzustoßen, so das ich auf die Zentralendirektverknüpfung verzichten kann. Wie kann ich an dieser Stelle den aktuellen ButtonPin heraus bekommen? Steht der irgendwo in "s" drin z.B. s.getPin() <-- diese Funktion steht in Button.h drin, aber ob ich hier richtig bin das weiß ich leider nicht..?

Code: Alles auswählen

if ( s == released || s == longreleased) {
	if ( s == released ) {
		// hier müsste ich irgendwie herausfinden, welcher ButtonPin gedrück wurde und den PIN+9 = RelaisPin schalten.
		sdev.channel(s.getPin() + 9).toggleState();
	}
Ich hoffe ihr könnt mir helfen,und Denkanstöße geben..
Vielen Dank schon mal!

Gruß Carsten
Gruß Carsten

papa
Beiträge: 315
Registriert: 22.05.2018, 10:23

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von papa » 21.08.2018, 16:03

Schau Dir mal das folgende Beispiel an https://github.com/pa-pa/AskSinPP/blob/ ... SW2_FM.ino. Das ist doch genau, was Du suchst. Es werden zusätzlich zu den Switch-Kanälen auch die Remote(Button)-Kanäle sichtbar gemacht. Die Button sind direkt mit den Switches verknüpft - senden aber auch die Remote-Events zu Peers oder der Zentrale. Es fehlt nur noch das XML-File für die CCU.
Anfragen zur AskSin++ werden nur im Forum beantwortet

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von Bratmaxe » 21.08.2018, 16:13

Hallo pa-pa,

vielen Dank für deine Hilfe..
Ein XML für die CCU, da weiß ich aber nicht ob ich das hinkriege.

Bei dem SenAct-4-4 gibt es ja schon eine XML-Datei bzw. es wird keine benötigt... Daher mein Vorschlag mit diesem Sketch.

Aber ich werde mir deinee Vorschlag heute Abend nochmal genauer ansehen, vielleicht ist es ja genau das was ich suche.. Und vielleicht ist das XML erstellen ja gar nicht so schwierig wie ich es mir gerade denke.

Ich brauche erst mal ein Testobjekt, an dem ich das alles testen kann. Ich nehme an, das meine Frau es nicht gefällt, wenn ich das mit dem Wohnzimmerlicht-Aktor teste :D :D

Ich hätte nur noch einen HM-LC-Sw1PBU zum testen, das sollte doch eigentlich auch damit funktionieren (also der test), auch wenn ich damit nur einen Kanal testen kann!
Gruß Carsten

jp112sdl
Beiträge: 2901
Registriert: 20.11.2016, 20:01
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von jp112sdl » 21.08.2018, 16:53

Kurzer Einwurf... Ich habe eine PN von Sebastian erhalten.
Er meinte, es könnte mit dem HomeMatic-Manager klappen: https://github.com/hobbyquaker/homematic-manager

Und tatsächlich! Dort sind die internen Peerings zu sehen und auch zu editieren.

VG,
Jérôme

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von Bratmaxe » 22.08.2018, 08:06

Vielen Dank an euch beide (und auch an Sebastian),

dann werde ich mir erstmal den Homematic Manager mal ansehen.. Dann muss ich nichts am Sketch ändern, wäre also meine bevorzugte Lösung..

Gruß Carsten
Gruß Carsten

jp112sdl
Beiträge: 2901
Registriert: 20.11.2016, 20:01
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von jp112sdl » 23.08.2018, 07:09

Habe nun noch weitere Möglichkeiten gefunden, interne Peerings ohne Zusatzsoftware zu bearbeiten:

1.) über "Link List" in der devconfig

2.) du editierst die Datei /www/config/ic_linkpeerlist.cgi und erweiterst das Exception-Array um die beiden Linktypen:

Code: Alles auswählen

  array set exceptions {
    CONDITION_POWER SWITCH
    CONDITION_CURRENT SWITCH
    CONDITION_VOLTAGE SWITCH
    CONDITION_FREQUENCY SWITCH
    KEY SWITCH
    SHUTTER_CONTACT SWITCH
  }
Anschließend siehst du die internen Peerings dann auch ganz normal in der WebUI.

VG,
Jérôme

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von Bratmaxe » 23.08.2018, 12:12

Oh cool, vielen Dank,

aber vermutlich wird die Datei bei einem Firmwareupdate überschrieben.. Ist also nur eine temporäre Lösung. Oder?

Gruß Carsten
Gruß Carsten

jp112sdl
Beiträge: 2901
Registriert: 20.11.2016, 20:01
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von jp112sdl » 23.08.2018, 12:45

Ja, wobei es noch die Möglichkeit gäbe, die Änderung durchs JP-HB-Devices Addon durchführen zu lassen.
Aber ich weiß derzeit noch nicht, ob es noch unerwünschte Nebeneffekte gibt (und evtl. DV sichtbar werden, die es nicht werden sollten, womit ein unbedarfter Anwender dann murks machen könnte).

Oder du machst dir ein eigenes Custom-RC-Script.
Ich habe mir so eins gemacht, das nach einem Update ein paar Dinge modifiziert... z.B. das Logo oben links sowie das loading.gif ersetzt.
Und die updateDCVars.tcl wird ausm Cron geschmissen.

VG,
Jérôme

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von Bratmaxe » 25.08.2018, 17:51

jp112sdl hat geschrieben:
23.08.2018, 12:45
Ja, wobei es noch die Möglichkeit gäbe, die Änderung durchs JP-HB-Devices Addon durchführen zu lassen.
Aber ich weiß derzeit noch nicht, ob es noch unerwünschte Nebeneffekte gibt (und evtl. DV sichtbar werden, die es nicht werden sollten, womit ein unbedarfter Anwender dann murks machen könnte).

Oder du machst dir ein eigenes Custom-RC-Script.
Ich habe mir so eins gemacht, das nach einem Update ein paar Dinge modifiziert... z.B. das Logo oben links sowie das loading.gif ersetzt.
Und die updateDCVars.tcl wird ausm Cron geschmissen.
Hi Jerome,

weisst du, ob ich den originalaktor mit dem FTDI Adapter flaschen kann, oder ob ich dafür den AVR ISP verwenden muss?

Gruß Carsten
Gruß Carsten

jp112sdl
Beiträge: 2901
Registriert: 20.11.2016, 20:01
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: HB-UNI-SenAct-4-4 auf HM-LC-Sw2PBU-FM flashen

Beitrag von jp112sdl » 25.08.2018, 18:02


VG,
Jérôme

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“