Neue Firmware für HM_LC_Sw1PBU_FM mit getrenntem Aktor, Taster + Wechselschalter

Begonnen von jab, 29 Dezember 2013, 22:04:10

Vorheriges Thema - Nächstes Thema

Verkehrsrot

Habe nochmal einen fhem Neustart gemacht. Doch die obige Meldung im Logfile bleibt.
Unter /opt/fhem/FHEM ist die .pm Datei für den modifizierten Schalter nur 1x enthalten.
Was tun?

Hat sich erledigt, mein Fehler. Die Datei war mit gleichem Inhalt zweifach hintereinander gehängt :-(

Verkehrsrot

Zitat von: frank am 26 August 2015, 15:28:41
ich habe die 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm für den schalter jetzt ein wenig angepasst

Habe daraus ein pull request im github repo gemacht:
https://github.com/jabdoa2/Asksin_HM_LC_Sw1PBU_FM/pull/2

jp112sdl


Verkehrsrot

Ja, ist sehr aktiv auf Github, hat dort eine Menge Repos. Falls er/sie das Schalter-Repo nicht mehr betreut, findet sich ja vielleicht hier jemand, der es übernehmen mag? Meiner Meinung nach hat die Custom Firmware bis heute einen hohen Nutzwert, da ELV weiterhin die oft benötigte Wechselschalterfunktion nicht anbietet. Womöglich ist das Absicht, um mehr Einzelschalter verkaufen zu können... ?

In meiner Wechselschaltung funktioniert die Custom Firmware tadellos. Die Schalter haben nur die bekannte "C26" Ausfall Krankheit. Die haben die ELV Originale aber ebenso. Also warum nicht die Custom Firmware weiter pflegen und ausbauen? Sensoren Peering wäre mein aktuelles Feature Request, und die LED könnte man etwas gesprächiger machen.

jp112sdl

Zitat von: Verkehrsrot am 06 Januar 2020, 14:38:33
Falls er/sie das Schalter-Repo nicht mehr betreut, findet sich ja vielleicht hier jemand, der es übernehmen mag? Meiner Meinung nach hat die Custom Firmware bis heute einen hohen Nutzwert, da ELV weiterhin die oft benötigte Wechselschalterfunktion nicht anbietet. Womöglich ist das Absicht, um mehr Einzelschalter verkaufen zu können... ?
...
Also warum nicht die Custom Firmware weiter pflegen und ausbauen? Sensoren Peering wäre mein aktuelles Feature Request
Ja soweit ist das schon klar. Hab die Firmware vor ner Weile auf Grundlage der AskSinPP-Lib mal neu gestrickt.
https://github.com/jp112sdl/Beispiel_AskSinPP/tree/master/examples/HB-LC-Sw1PBU-FM

Ich vermute, damit wird auch dein ShutterContact Peering laufen.
Wie das ganze in FHEM funktioniert, weiß ich allerdings nicht. Ich nutze die CCU

Verkehrsrot

Interessant! Aber wie bringe ich das Arduino .ino Programm auf der Originalhardware des ELV Schalters, statt einem Arduino, zum laufen?

jp112sdl

Ähm... wie hast du denn die .ino von jabdoa2 auf deinen Schalter bekommen :o

Verkehrsrot

Gute Frage, die ich mir selbst auch gerade stelle. Ist ein paar Jahre her. Hier liegt noch das Flachbandkabel, das ich damals zum neuprogrammieren an den Schalter angelötet hatte. Aber keine Ahnung, was ich dazu an der anderen Seite dran hatte...

...verkauft hier nicht eventuell jemand fertig gepatchte Schalter, mit OTA Bootloader?  ::)

jp112sdl

Um abschließend deine Frage zu beantworten: Du bekommst die .ino von mir genau so auf den Schalter wie die von jabdoa2 ;)

Verkehrsrot

Dann muss ich die 132 Seiten dieses Threads wohl noch mal studieren... :o

Nighthawk

@jp112sdl

Kannst Du bitte beschreiben was in deiner FW anders ist?

Ich finde diese Firmware super, habe nur 1 Problem, dass nach Stromausfall das Raliais immer in den OFF Zustand schaltet, was in eine Wechselschaltung manchmal dazu führt dass das Licht angeht.

Wäre echt super wenn diese Kleinigkeit irgendwie abstellbar wäre.

Gruß
Alex

jp112sdl

Zitat von: Nighthawk am 07 Januar 2020, 09:05:49
Kannst Du bitte beschreiben was in deiner FW anders ist?
Das kann ich dir im Detail gar nicht sagen. Ich habe den Code nur nicht verstanden und deshalb von vornherein die AskSinPP Lib benutzt (als Nachfolger der AskSin/NewAskSin von trilu2000).

Kanal 1 ist der Aktorkanal
Kanal 2 und 3 sind die Tasterkanäle.

Im orangen Forum hatte ich mal ein Foto gepostet, wie das ganze in der CCU aussieht.
Oben das Gerät mit originaler FW und unten das mit der CustomFW:
https://homematic-forum.de/forum/download/file.php?id=61702&mode=view

Zitat von: Nighthawk am 07 Januar 2020, 09:05:49
Ich finde diese Firmware super, habe nur 1 Problem, dass nach Stromausfall das Raliais immer in den OFF Zustand schaltet, was in eine Wechselschaltung manchmal dazu führt dass das Licht angeht.

Wäre echt super wenn diese Kleinigkeit irgendwie abstellbar wäre.
Dazu müsste man bei jedem Schaltwechsel den aktuellen Zustand im EEPROM speichern. Das macht glaub ich keiner der Homematic-Aktoren von Hause aus. Man kann nur festlegen, was bei Spannungszufuhr geschehen soll.  "Nichts" oder "kurzen Tastendruck simulieren".
Es sollte reichen, im Switchchannel beim Schalten ein getList1().powerUpAction(state); zu machen.
Wie "schädlich" das für den EEPROM ist (begrenzte Schreibzyklen) weiß ich jedoch nicht.

Verkehrsrot

Zitat von: jp112sdl am 07 Januar 2020, 09:37:04
Wie "schädlich" das für den EEPROM ist (begrenzte Schreibzyklen) weiß ich jedoch nicht.

Das EEPROM des ATmega644 ist mit 100.000 Schreibzyklen im Datenblatt angegeben (der Flashspeicher nur mit 10.000). Vermutlich wird das Schaltrelais des Schalters auch nicht mehr erreichen, insofern könnte es passen.

Bei 20x Licht ein/aus pro Tag wären das 20 * 2 * 365 = rund 15.000 Schaltyzklen pro Jahr, d.h. der Schalter hielte dann gut 6 Jahre. Meine Exemplare sind alle etwas früher ausgefallen durch defekten C26. Durch Austausch C26 haben sie aber alle ein 2. Leben erhalten.

dogexan

@jp112sdl

Kann man unter deiner Firmware bei den peerings zwischen Button und Switch unterscheiden ob es ein long oder shot press war?
Unter der Firmware von jabdoa in Kombination mit dem Modul "99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm" konnte man z.B. einen kurzen Tastendruck mit dem Switch verbinden. Ein langer Tastendruck auf der selben Taste löst aber nicht den Switch aus.


Hier der Auszug aus dem FHEM Wiki dazu:

ZitatAdvanced settings

Interne Peers Ein Kanal kann interne Peers haben. Beispiele sind die meisten Schalter oder Dimmer an welchen direkt ein mechanischer Schalter angeschlossen werden kann, oder ein Bedienschalter direkt eingebaut ist. Die Firmware (FW) des Kanals behandelt diesen wie einen externen Peer, nur ist er automatisch eingerichtet. Es stehen die identischen Register wie bei 'normalen' Peers zu Verfügung. Diese Peers sind nicht automatisch sichtbar, können aber sichtbar geschaltet werden. Hierzu ist das Register intKeyVisib auf visib zu setzen (siehe HM-Konfiguration)-siehe auch getConfig. Danach kann man das Verhalten der ,,eingebauten Peers" auslesen und verändern wie von jedem anderen Peer auch. Die internen Peers werden selfxx benannt (self01, self02,...).

regSet <HM-LC-SW1PBU-FM_Sw_01> intKeyVisib visib
set <HM-LC-SW1PBU-FM_SW_01> getConfig

Beispiel: Schaut man in die Readings des Devices und sieht ein: R-self01-shActionType off bedeutet dies, dass der Button 1 (der nach "oben") deaktiviert ist für diesen Peer und somit keine Funktion hat. Dieser ist auf "jmpToTarget" zu setzen und dann noch die folgenden auf "on":

    R-self01-shSwJtDlyOff
    R-self01-shSwJtDlyOn
    R-self01-shSwJtOff
    R-self01-shSwJtOn

Für Button 2 das selbe, aber eben nicht "on" sondern off. Natürlich kann man es auch anders nutzen. Z.b. einen Button als Toggle und den anderen Button für etwas völlig anderes. Das ist ja das schöne, dass dies bei der CustomFW möglich ist.

Beispiel das ein kurzer Tastendruck - oben oder unten - ein Toggle bewirkt:

set <HM_LC_Sw1PBU_FM_Sw_01> regSet shActionType  jmpToTarget self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOn      dlyOff      self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOff     dlyOn       self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOn   on          self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOff  off         self01;

set <HM_LC_Sw1PBU_FM_Sw_01> regSet shActionType  jmpToTarget self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOn      dlyOff      self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOff     dlyOn       self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOn   on          self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOff  off         self02;

Seit dem Umzug vom CUL Stick auf die CCU ist dieser Feature nicht mehr geben, da ich nun mit dem Modul "HMCCU" arbeite und so keine regSet Befehle mehr senden kann.

Voher konnte ich mit einem langen Tastendruck (Button oben/Button unten) eine HUE Lampe dimmen. Mit einem kurzen Tastendruck oben wurde die HUE Lampe aus- und eingeschaltet, mit einem kurzen Tastendruck unten wurde der interne Switch geschaltet.

Jetzt ist es mir nicht mehr möglich einen langen Tastendruck (Button unten) auszulösen ohne dass der Switch auch angesprochen wird.

Danke im Voraus
Gruß Alex

jp112sdl

Ja ist möglich. Einfach LONG_ACTION_TYPE auf INACTIVE stellen
Ich arbeite aber ausschließlich mit der CCU und Homematic.
Bin hier im Forum damals nur gelandet, weil es im Homematic Forum noch keine AskSin++-Ecke gab