HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

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

Moderator: Co-Administratoren

Benutzeravatar
HM42
Beiträge: 103
Registriert: 17.11.2014, 11:58
System: Alternative CCU (auf Basis OCCU)
Wohnort: Hannover
Hat sich bedankt: 8 Mal
Danksagung erhalten: 11 Mal

HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von HM42 » 01.01.2020, 13:22

.
Hallo,

zuerst mal wieder meinen Dank an die AskSin- und HB-Experten papa, Jérôme und Ronny Thomas, die dieses Thema und die Hardware weiter fleißig voranbringen.

Habe mir vor Weihnachten die Platinen für den HB-UNI-SenAct-8-8 von Ronny besorgt. Auch die Beschaffung der Bauteile klappte Dank Ronnys reichelt-Bestellliste problemlos. Der Zusammenbau dauerte dann doch etwas länger als zunächst gedacht - ist halt kein ARR-Bausatz :wink: . Trotzdem Dank an Ronny für den guten Bausatz.


NUN ZUM PROBLEM

Nach Anpassung der PCF8574_ADDRESS auf 0x20 (hatte gem. Ronnys Liste einen PCF8574 und nicht die Default-Version PCF8574A eingebaut) und Setzen von #define RELAY_ON_STATE_INVERT false klappte das Schalten der Ausgänge wunschgemäß.

Ein Wechsel der (Prüf-) Tasterzustände wurde allerdings nicht erkannt...

Nach langer Suche (hier wäre ein Schaltplan von Ronnys Schaltung hilfreich gewesen) wurde klar, dass dieses Problem mit der Beschaltung der Tastereingänge und der softwaremäßigen Abfrage zusammenhängt: Die Taster schalten die Eingänge, die jeweils direkt vor der Statusabfrage über prozessorinterne Pullups auf 3,3V-Pegel gelegt werden, nach GND. Da alle Eingänge noch einen Entstör-/Entprellkondensator von 0,1µF gegen Masse haben, schaffen die internen Pullups es nicht, bei geöffnetem Taster das Eingangssignal bis zur Abfrage auf einen vernüpftigen High-Pegel ansteigen zu lassen. Also wird der geöffnete Taster nicht erkannt !

Anders sollte es aussehen, wenn über die externen Klemmen-Einänge (sind über 330 Ohm an die Eingänge angeschlossen) ein niederohmiges Schaltsignal (z.B.: 0 oder 3,3V) vorgegeben wird.

Um die Taster, gerade für erste Testzwecke, sauber abfragen zu können, habe ich dann in der verwendeten readPin-Abfrageroutine in AskSinPP.h folgende Änderung vorgenommen:

Code: Alles auswählen

  static uint8_t readPin(uint8_t pinnr,uint8_t enablenr=0,uint8_t ms=0) {
    uint8_t value=0;
    if( enablenr != 0 ) {
      digitalWrite(enablenr,HIGH);
      if( ms != 0 ) {
        _delay_ms(ms);
      }
    }
    pinMode(pinnr,INPUT_PULLUP);
    value = digitalRead(pinnr);
		
// mod by mar ...		
//    pinMode(pinnr,OUTPUT);
//    digitalWrite(pinnr,LOW);

    if( enablenr != 0 ) {
      digitalWrite(enablenr,LOW);
    }
    return value;
  }
Den Test bzgl. eines nötigen / möglichen Delays habe ich mir erspart und den jeweiligen Eingangspin also dauerhaft auf "pinMode(pinnr,INPUT_PULLUP)" belassen.


@papa und Jérôme:
  • Gibt es eine einfachere Lösung, die einen Eingriff in AskSinPP unnötig macht ?
  • Warum werden Eingangspins in der Setup-Phase bzw. beim init() nicht einfach fest auf INPUT_PULLUP gesetzt ?

Gruß
Thomas

jp112sdl
Beiträge: 9148
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 555 Mal
Danksagung erhalten: 1278 Mal
Kontaktdaten:

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von jp112sdl » 01.01.2020, 13:37

Hi.

Zuerst zu
HM42 hat geschrieben:
01.01.2020, 13:22
Warum werden Eingangspins in der Setup-Phase bzw. beim init() nicht einfach fest auf INPUT_PULLUP gesetzt ?
Weil gerade bei Batteriegeräten dann dauerhaft ein Strom über den Pullupwiderstand fließen würde, wenn der Kontakt geschlossen ist.
Daher wird nur für den Augenblick der Zustandserfassung kurz der Pullup aktiviert.
HM42 hat geschrieben:
01.01.2020, 13:22
Gibt es eine einfachere Lösung, die einen Eingriff in AskSinPP unnötig macht ?
Darüber mag ich mir keine Gedanken machen.
HM42 hat geschrieben:
01.01.2020, 13:22
(hier wäre ein Schaltplan von Ronnys Schaltung hilfreich gewesen)
Das alte Lied... Dann frag am besten Ronny, er hat ja nach wie vor kein Interesse an gemeinsamer quelloffener Zusammenarbeit.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

PN sind deaktiviert!

Benutzeravatar
HM42
Beiträge: 103
Registriert: 17.11.2014, 11:58
System: Alternative CCU (auf Basis OCCU)
Wohnort: Hannover
Hat sich bedankt: 8 Mal
Danksagung erhalten: 11 Mal

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von HM42 » 04.01.2020, 15:08

.
Hallo Jérôme,

Dank für deine - mal wieder - prompte Antwort !

Auch wenn dieses HB-Gerät allein wegen der Relaisansteuerung wohl kaum im Batteriebetrieb betrieben wird, kann ich den Grundgedanken bzgl. der Pullup-Ansteuerung natürlich nachvollziehen. Habe meine AskSinPP jetzt so geändert, dass bei Nicht-Batteriegeräten, die folgenden Zeilen nicht mehr ausgeführt werden:

Code: Alles auswählen

// mod by mar ...	
#ifdef USE_BATTERY_MODE
    pinMode(pinnr,OUTPUT);
    digitalWrite(pinnr,LOW);
#endif
@Ronny: Bitte denke noch mal über einen Schaltplan nach - auch wenn die Schaltung keine großen Spezialitäten enthält.

Gruß Thomas

rbeudel
Beiträge: 240
Registriert: 29.06.2018, 17:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Essen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 10 Mal

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von rbeudel » 28.04.2021, 17:12

Hallo,
nachdem ich vor dem gleichen Problem wie Thomas stand habe ich noch eine Frage. Nach der Zuführung der Betriebsspannung schalten die Relays alle kurz ein. Ist das Grundsätzlich so oder kommt das erst in Verbindung mit einem ULN 2003 nach dem Port-Expander? Ich habe den Sketsch von Jerome geladen. Ist halt blöd wenn nach jedem Stromausfall das Garagentor aufgeht. :(
Viele Grüße,
Ralf


Debmatic in Proxmox 6 VM debian x86_64 auf Intel NUC mit influxdb und Grafana zur Visualisierung der Homematic Daten über Openhab 3, Volkszähler und SBFSpot zur Visualisierung meiner Stromzählerdaten und der Solaranlage

Hofi1609
Beiträge: 7
Registriert: 25.06.2019, 12:19

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von Hofi1609 » 18.07.2021, 14:02

rbeudel hat geschrieben:
28.04.2021, 17:12
Hallo,
nachdem ich vor dem gleichen Problem wie Thomas stand habe ich noch eine Frage. Nach der Zuführung der Betriebsspannung schalten die Relays alle kurz ein. Ist das Grundsätzlich so oder kommt das erst in Verbindung mit einem ULN 2003 nach dem Port-Expander? Ich habe den Sketsch von Jerome geladen. Ist halt blöd wenn nach jedem Stromausfall das Garagentor aufgeht. :(
Hallo Ralf,

konntest du das oben beschriebene Problem lösen, wenn ja wie?

VG Steffen

rbeudel
Beiträge: 240
Registriert: 29.06.2018, 17:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Essen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 10 Mal

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von rbeudel » 18.07.2021, 16:37

Hallo Steffen,
hier viewtopic.php?f=76&t=67728 steht die Lösung. :idea:
Viele Grüße,
Ralf


Debmatic in Proxmox 6 VM debian x86_64 auf Intel NUC mit influxdb und Grafana zur Visualisierung der Homematic Daten über Openhab 3, Volkszähler und SBFSpot zur Visualisierung meiner Stromzählerdaten und der Solaranlage

Hofi1609
Beiträge: 7
Registriert: 25.06.2019, 12:19

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von Hofi1609 » 18.07.2021, 21:29

Hallo Ralf,

vielen Dank für den Link. Im Notfall wäre das eine mögliche Lösung, aber der Eingriff in das Layout gefällt mir eigentlich nicht.
Es muss doch auch eine reine Softwarelösung geben, die Ausgänge werden doch irgendwo im AskSinPP beim Initialisieren gesetzt.
Ich werde nochmal beim Ronny nachfragen, eventuell hat er ja noch eine Idee.

VG Steffen

HeikoGr
Beiträge: 25
Registriert: 30.03.2016, 07:22

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von HeikoGr » 19.07.2021, 06:24

Hallo Steffen, bevor ich auf HM umgestiegen bin, hatte ich mich lange Zeit mit der CC2 von Conrad für meine Lichtsteuerung etc. beschäftigt.
Es gibt jemanden (Andre), der dafür vor vielen Jahren eine Reihe von Platinen entwickelt hatte, welche u.a. auch mit einem PCF8574 arbeiten.
https://www.cctools.eu/artikel/index.php/1805
Damals schon hatte Andre in seinen Projekten darauf hingewiesen, dass die Relais ohne weitere Vorkehrungen durch den H-Pegel am Ausgang nach Stromzufuhr anziehen. Er hat das Problem mit einem zusätzlichen Inverter zwischen PCF und ULN gelöst.
Das bedeutet allerdings auch eine Änderung des Layouts, leider.

Softwaretechnisch geht es leider nicht, da der PCF immer erstmal auf H-Pegel schaltet. Man könnte sicherlich nach dem Init des PCF den Ausgang gleich auf Low setzen, damit die Relais sofort wieder ausschalten. Aber den Schaltimpuls hat man auf jeden Fall. Bei Stromstossrelais, wie bei mir, ist dann erstmal alles invertiert. Ich müsste den Impuls dann nochmal auslösen, um den Zustand wieder wie vorher zu haben.

Statt des PCF wäre ein Max7311 besser gewesen. Der ist in seinem Init Verhalten besser konfigurierbar und liefert sogar 16 Ports I/O.

Wäre dann aber auch ein anderes Layout und es bräuchte grössere Änderungen im HM Device.

Gruss Heiko

jp112sdl
Beiträge: 9148
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 555 Mal
Danksagung erhalten: 1278 Mal
Kontaktdaten:

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von jp112sdl » 19.07.2021, 09:16

HeikoGr hat geschrieben:
19.07.2021, 06:24
wäre ein Max7311 besser
Den kannte ich bisher noch gar nicht.
Hab sonst immer den MCP23017 genommen.
Was spricht FÜR den MAX bzw. GEGEN den MCP ?
HeikoGr hat geschrieben:
19.07.2021, 06:24
grössere Änderungen im HM Device.
Eigentlich nicht. Es bräuchte nur die entsprechende Klasse für den Max analog zum PCF
https://github.com/pa-pa/AskSinPP/blob/ ... /PCF8574.h

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

PN sind deaktiviert!

HeikoGr
Beiträge: 25
Registriert: 30.03.2016, 07:22

Re: HB-UNI-SenAct-8-8-SC, Tastendrücke werden nicht erkannt

Beitrag von HeikoGr » 19.07.2021, 12:25

Den kannte ich bisher noch gar nicht.
Hab sonst immer den MCP23017 genommen.
Was spricht FÜR den MAX bzw. GEGEN den MCP ?
Beide scheinen sich funktional sehr ähnlich zu sein. Der Max7311 ist wahrscheinlich der ältere, kann damit auch nicht die höheren I2C Geschwindigkeiten 400 khz vs. 1,7 Mhz.
Eigentlich nicht. Es bräuchte nur die entsprechende Klasse für den Max analog zum PCF
https://github.com/pa-pa/AskSinPP/blob/ ... /PCF8574.h
Wenn man 16 statt 8 Ausgansports nutzen will, muss doch sicher auch das xml File angepasst werden.

Antworten

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