uitlezen drukknop actie eltako impuls teleruptor

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 15-05 09:06
Ik zou graag mijn integratie met home-assistant uitbreiden. Op dit moment heb ik reeds een arduino welke ik gebruik voor het aansturen van enkele relais (op zich is een relais niet echt nodig, maar ik had het nog liggen).
Deze arduino kan gestuurd worden mits een simpel REST protocol.
Bij een request om het licht te bedienen (aan of uit weet ik niet, enkel een actie), schakel ik kortstondig de relais. Deze relais staan "parallel" op de drukknoppen.
De drukknoppen (en dus de relais) zijn verbonden met eltako teleruptors.

Op zich werkt dit goed, maar nu is er geen koppeling tussen een fysieke actie ( = drukknop) en een software acties ( = relais schakelen door uitvoeren van REST commando).

Ik had graag met home assistant deze staat opgevangen. Ik weet dat er mogelijks een verschil kan zijn tussen de fysieke staat en deze in assistant, maar daar heb ik op zich niet zo'n probleem mee gezien op geregelde tijdstippen de "alles uit" actie uitgevoerd kan worden, welke terug alle staat reset.

Hiervoor dacht ik om een extra arduino (of dezelfde met extra inputs) om een push van een drukknop op te vangen.

De stuurspanning van de drukknoppen is echter 24V. Wat is de manier om deze op te vangen?

Of iemand met andere ideetjes.

[ Voor 3% gewijzigd door Cuball op 18-11-2020 19:58 ]

"Live as if you were to die tomorrow. Learn as if you were to live forever"

Alle reacties


Acties:
  • 0 Henk 'm!

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 15-05 09:06
Ik heb het proberen in schema te gieten (niet alle symbolen zijn technisch correct, maar is niet zo belangrijk hier)

Afbeeldingslocatie: https://tweakers.net/i/_Z6283DqXt1Gtimb9IJgCNcvxrs=/800x/filters:strip_icc():strip_exif()/f/image/xbhhWOxVvUS241MPwpznwdXo.jpg?f=fotoalbum_large

Ik zou dus nu willen naast het triggeren van de impuls schakelaar (met de relais) ook het triggeren van de drukknop willen capturen (in mijn arduino of ander toestel).
Zo kan ik de staat van de lichten bijhouden via home-assistant oid.

Ik vermoed dat ik een voltage devider zal nodig hebben, maar waar plaats ik deze best?

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Acties:
  • 0 Henk 'm!

  • GVL98
  • Registratie: Maart 2020
  • Laatst online: 05-03-2022
Hallo,

Na lang zoeken heb ik eindelijk iemand gevonden met dezelfde vraag als ik.
Ik ben nieuw in de wereld van home assistant dus alle hulp is welkom.
Is dit ondertussen gelukt? Zo ja kan je mij mss een beetje uitleg hoe je het gedaan hebt?

Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 15-05 09:06
GVL98 schreef op zaterdag 5 maart 2022 @ 22:47:
Is dit ondertussen gelukt? Zo ja kan je mij mss een beetje uitleg hoe je het gedaan hebt?
Ik heb gebruik gemaakt van ESPHome. Binary sensors via gpio platform, en switches ook via gpio op een ESP8266.

Op de ESP8266 wel een mcp23017 gebruikt om meerdere input/output IO te verkrijgen.

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Acties:
  • 0 Henk 'm!

  • Draakje1111
  • Registratie: Mei 2017
  • Laatst online: 16-05 16:48
Beste Cuball,

Ik heb een gelijkaardige setup met ESPEASY en messages via mqtt naar HA.Hiervoor heb ik inputs en outputs gedefigneerd en een reeks aan rules in de ESPEASY... Ver van ideaal maar het werkt voor groot deel mits bepwerkingen zoals max 16 inputs... Ik probeer dit nu op dezelfde manier om te bouwen naar ESPHome maar slaag hier niet zo goed in. Is het mogelijk jouw code van de ESPHome te delen? Ik ben vooral benieuwd hoe je de status van het licht bijhoud. Ik was nu aan een dummy switch aan het denken die je dan toggled als je een input binnen krijgt maar krijg het geheel niet stabiel.

Alvast dank voor je topic want verder vind ik nergens een vergelijkbare setup, terwijl dit in mijn ogen zelfs beter is als domotica als je het stabiel krijgt. Domotica down -> drukknoppen doen het lekker nog wel :P.

MTVenus V148 HWP1 5.19


Acties:
  • +1 Henk 'm!

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 15-05 09:06
Hallo,

Bij deze een voorbeeldje (is al van eindje terug), ik heb eigenlijk niet meer nagegaan of er verbeteringen / optimalisaties mogelijk zijn (ik vermoed van wel), maar principe is inderdaad dat ik de status bij houd in een globale variable en via lambda's deze uitlees.

Nu ik moet er wel bijzeggen dat het niet 100% foutloos werkt, soms mis ik eens een signaal. Doordat ik niet de status van de lamp uitlees, is er soms een vershil in status :-(

In principe zou het beter zijn om uit lezen of er effectief spanning staat op de kring/lamp..


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
mcp23017:
  - id: 'mcp23017_hub_1'
    address: 0x20
  - id: 'mcp23017_hub_2'
    address: 0x21

binary_sensor:

  - platform: gpio
    name: "MCP23017 1 Pin #1"
    pin:
      mcp23xxx: mcp23017_hub_1
      # Use pin number 1
      number: 9
      # One of INPUT or INPUT_PULLUP
      mode: INPUT_PULLUP
      inverted: True
    on_press:
      then:
        - lambda: |-
            id(hub_1_1) = !id(hub_1_1);
            ESP_LOGD("main", "Detected mcp23017_hub_1_1 change to: %d", id(hub_1_1));


  - platform: gpio
    name: "MCP23017 1 Pin #1"
    pin:
      mcp23xxx: mcp23017_hub_1
      # Use pin number 0
      number: 1
      mode: OUTPUT
      inverted: True
    id :  mcp23017_hub_1_1
  
  - platform: template
    name: "Relay Hub 1 1"
    lambda : |-
      return id(hub_1_1);
    turn_off_action:
    - switch.turn_on: mcp23017_hub_1_1
    - delay: 100ms
    - switch.turn_off: mcp23017_hub_1_1
    - lambda: |-
       id(hub_1_1) = false;
        ESP_LOGD("main", "Global mcp23017_hub_1_1 is: %d",id(hub_1_1));
    turn_on_action:
    - switch.turn_on: mcp23017_hub_1_1
    - delay: 100ms
    - switch.turn_off: mcp23017_hub_1_1
    - lambda: |-
       id(hub_1_1) = true;
        ESP_LOGD("main", "Global mcp23017_hub_1_1 is: %d",id(hub_1_1));

globals:
   - id: hub_1_1
     type: boolean
     restore_value: no
     initial_value: 'false'

[ Voor 3% gewijzigd door Cuball op 22-10-2022 10:29 ]

"Live as if you were to die tomorrow. Learn as if you were to live forever"

Pagina: 1