Zehnder comfofan s aansturen via RPi, Arduino

Pagina: 1 ... 7 8 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • Arnoldtwt
  • Registratie: Januari 2004
  • Laatst online: 11-09 21:02
Is het zo dat dit ook mogelijk is met een vochtsensor van Zehnder, of wordt het aangeraden deze dan uit te schakelen?

NL - IT - RF - Marstek Venus E - Home Assistant


Acties:
  • 0 Henk 'm!

  • wian
  • Registratie: September 2005
  • Niet online
De nrf905 oplossing werkt prima samen met de vochtsensor in de ventilator. Standaard stand (low) is bij mijn dipswitch configuratie 30% vermogen en bij vochtige lucht gaat ie naar 40% procent. Via de nrf905 gaat ie naar 100%, dat hoor je dan ook duidelijk. Ik vermoed dat de 1-10v oplossing ook goed werkt. Afgaande op wat hier gemeld wordt, reageert de ventilator altijd op de hoogste vraag.

De nrf905 werkt bij mij niet langdurig stabiel. Om de paar weken valt het uit. Ik heb nu een dagelijkse reboot wat lijkt te helpen maar ik denk dat ik uiteindelijk toch naar een 1-10v oplossing zal gaan. De esp32 oplossing met nrf905 vergt teveel tijd/aandacht.

Acties:
  • 0 Henk 'm!

  • JPtjeeNL
  • Registratie: November 2009
  • Niet online
wian schreef op zondag 10 augustus 2025 @ 16:01:
De nrf905 oplossing werkt prima samen met de vochtsensor in de ventilator. Standaard stand (low) is bij mijn dipswitch configuratie 30% vermogen en bij vochtige lucht gaat ie naar 40% procent. Via de nrf905 gaat ie naar 100%, dat hoor je dan ook duidelijk. Ik vermoed dat de 1-10v oplossing ook goed werkt. Afgaande op wat hier gemeld wordt, reageert de ventilator altijd op de hoogste vraag.

De nrf905 werkt bij mij niet langdurig stabiel. Om de paar weken valt het uit. Ik heb nu een dagelijkse reboot wat lijkt te helpen maar ik denk dat ik uiteindelijk toch naar een 1-10v oplossing zal gaan. De esp32 oplossing met nrf905 vergt teveel tijd/aandacht.
Gebruik je de ESPHome setup?

Acties:
  • +1 Henk 'm!

  • Geeforce
  • Registratie: April 2010
  • Laatst online: 12-09 20:52
wian schreef op zondag 10 augustus 2025 @ 16:01:

De nrf905 werkt bij mij niet langdurig stabiel. Om de paar weken valt het uit. Ik heb nu een dagelijkse reboot wat lijkt te helpen maar ik denk dat ik uiteindelijk toch naar een 1-10v oplossing zal gaan. De esp32 oplossing met nrf905 vergt teveel tijd/aandacht.
Om dezelfde reden ben ik ook overgestapt naar de dimmer. Dagelijks rebooten helpt iets, maar nog steeds was het niet stabiel. 0-10v werkt superfijn.

Acties:
  • 0 Henk 'm!

  • wian
  • Registratie: September 2005
  • Niet online
JPtjeeNL schreef op zondag 10 augustus 2025 @ 16:09:
[...]

Gebruik je de ESPHome setup?
Ja, in combinatie met de fork van @brsm

Acties:
  • +2 Henk 'm!

  • kvs
  • Registratie: November 2011
  • Laatst online: 12-09 20:25

kvs

Ha mede-tweakers, ik heb een ESPHome implementatie gemaakt voor de Zehnder Comfofan o.b.v. de code van https://github.com/eelcohn/nRF905-API

Code is hier te vinden: https://github.com/srslynow/esphome-zehnder
Tot dusver werkt deze prima, wellicht dat ik iemand er een plezier mee doe. :)

Acties:
  • 0 Henk 'm!

  • JPtjeeNL
  • Registratie: November 2009
  • Niet online
kvs schreef op zondag 17 augustus 2025 @ 22:08:
Ha mede-tweakers, ik heb een ESPHome implementatie gemaakt voor de Zehnder Comfofan o.b.v. de code van https://github.com/eelcohn/nRF905-API

Code is hier te vinden: https://github.com/srslynow/esphome-zehnder
Tot dusver werkt deze prima, wellicht dat ik iemand er een plezier mee doe. :)
Ooh interessant om ook deze eens te checken. Hoe vergelijkt dit met de bestaande ESPHome oplossing?

Acties:
  • +3 Henk 'm!

  • kvs
  • Registratie: November 2011
  • Laatst online: 12-09 20:25

kvs

JPtjeeNL schreef op maandag 18 augustus 2025 @ 07:05:
[...]

Ooh interessant om ook deze eens te checken. Hoe vergelijkt dit met de bestaande ESPHome oplossing?
Geen idee. Ik heb een versie die eerder in dit topic voorbij kwam geprobeerd en die crashde. De Arduino C++ code van Eelcohn werkte wel, maar ongeveer ~24h tot een reset nodig was. Toen ben ik aan mijn eigen variant begonnen. Een geforkte ESPHome die ik hier in de laatste comments voorbij zie komen heb ik nooit geprobeerd.

Uitgangspunt van mijn code: zo simpel en minimaal mogelijk. Er zijn eigenlijk maar twee controls: pairing en fan speed settings. Geavanceerder gebruik zoals fan-speed na een bepaalde tijd terugzetten regel ik via Home Assistant automations.

Wat screenshots:

Afbeeldingslocatie: https://tweakers.net/i/Qs-Q_h2Bkcnx-VvG4Lav9WrCWfg=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/WIh15grUIbA6v2avBuf7Wurq.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/60ADYh_05CM0nQmX0nq5ayrdiqU=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/JDls1Tst4BArSXIcSHUkJGdX.png?f=user_large

Acties:
  • 0 Henk 'm!

  • Donserdal
  • Registratie: Juni 2010
  • Laatst online: 12-09 20:56
@kvs Gaaf, dat ziet er heel goed uit!

Ik probeer de code aan de praat te krijgen maar krijg steeds de melding:
code:
1
2
3
4
5
6
7
8
[00:06:21][D][button:010]: 'Pair with Fan' Pressed.
[00:06:21][I][zehnder_fan:479]: Pairing service called. Attempting to discover and pair with fan...
[00:06:21][D][zehnder_fan:131]: Starting fan pairing discovery...
[00:06:22][D][zehnder_fan:234]: Radio timeout, retrying (1/50)
...........
[00:06:46][D][zehnder_fan:234]: Radio timeout, retrying (49/50)
[00:06:47][W][zehnder_fan:237]: Radio operation failed after 50 retries
[00:06:47][E][zehnder_fan:518]: Pairing failed.


Mijn vermoeden is dat dit komt doordat ik de module niet goed aan heb gesloten. Ik heb hem als volgt aangesloten:
VCC 3.3V
TXEN GPIO40
PWR GPIO41
CE GPIO42
CSN GPIO39
MISO GPIO37
SCK GPIO36
MOSI GPIO35
DR GPIO38
GND GND

De "NRF905" is die van een eerdere link: https://nl.aliexpress.com/item/33058039894.html
Afbeeldingslocatie: https://tweakers.net/i/HbCIu9gfP_eJy7Q2EIN1UwsMA5g=/800x/filters:strip_exif()/f/image/9yhaYSVZu2fCRpmjrkH5H48I.png?f=fotoalbum_large

Het ESP boardje dat ik gebruik is de ESP32-S3 DevKitC-1 https://randomnerdtutoria...-s3-devkitc-pinout-guide/

Ik had een schematje gevonden via https://github.com/nopnop2002/esp-idf-nrf905 om hem aan te sluiten maar dat lijkt hem niet te worden.

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
59
60
61
62
63
64
esphome:
  name: esphome-zehndercontrol
  friendly_name: ZehnderControl
  min_version: 2025.5.0
  name_add_mac_suffix: false

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:
  ssid: <REDACTED>
  password: <REDACTED>

# SPI configuration for nRF905
spi:
  id: spi_bus
  clk_pin: GPIO36
  mosi_pin: GPIO35
  miso_pin: GPIO37

# External components
external_components:
  - source:
      type: git
      url: https://github.com/srslynow/esphome-zehnder
      ref: main
    refresh: 60sec
    components: [zehnder_fan]

# Fan configuration
fan:
  - platform: zehnder_fan
    id: ventilation_fan
    name: "Mechanical Ventilation"
    spi_id: spi_bus
    
    # Required Pin Configuration
    cs_pin: GPIO39
    pwr_pin: GPIO41
    ce_pin: GPIO42
    txen_pin: GPIO40
    dr_pin: GPIO38

button:
  - platform: restart
    name: "Restart Controller"
  - platform: template
    name: "Pair with Fan"
    icon: "mdi:wifi"
    on_press:
      - lambda: |-
          id(ventilation_fan).start_pairing();


Iemand een idee?

Acties:
  • 0 Henk 'm!

  • kvs
  • Registratie: November 2011
  • Laatst online: 12-09 20:25

kvs

Donserdal schreef op dinsdag 9 september 2025 @ 00:18:
@kvs Gaaf, dat ziet er heel goed uit!

Ik probeer de code aan de praat te krijgen maar krijg steeds de melding:
code:
1
2
3
4
5
6
7
8
[00:06:21][D][button:010]: 'Pair with Fan' Pressed.
[00:06:21][I][zehnder_fan:479]: Pairing service called. Attempting to discover and pair with fan...
[00:06:21][D][zehnder_fan:131]: Starting fan pairing discovery...
[00:06:22][D][zehnder_fan:234]: Radio timeout, retrying (1/50)
...........
[00:06:46][D][zehnder_fan:234]: Radio timeout, retrying (49/50)
[00:06:47][W][zehnder_fan:237]: Radio operation failed after 50 retries
[00:06:47][E][zehnder_fan:518]: Pairing failed.


Mijn vermoeden is dat dit komt doordat ik de module niet goed aan heb gesloten. Ik heb hem als volgt aangesloten:
VCC 3.3V
TXEN GPIO40
PWR GPIO41
CE GPIO42
CSN GPIO39
MISO GPIO37
SCK GPIO36
MOSI GPIO35
DR GPIO38
GND GND

De "NRF905" is die van een eerdere link: https://nl.aliexpress.com/item/33058039894.html
[Afbeelding]

Het ESP boardje dat ik gebruik is de ESP32-S3 DevKitC-1 https://randomnerdtutoria...-s3-devkitc-pinout-guide/

Ik had een schematje gevonden via https://github.com/nopnop2002/esp-idf-nrf905 om hem aan te sluiten maar dat lijkt hem niet te worden.

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
59
60
61
62
63
64
esphome:
  name: esphome-zehndercontrol
  friendly_name: ZehnderControl
  min_version: 2025.5.0
  name_add_mac_suffix: false

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:
  ssid: <REDACTED>
  password: <REDACTED>

# SPI configuration for nRF905
spi:
  id: spi_bus
  clk_pin: GPIO36
  mosi_pin: GPIO35
  miso_pin: GPIO37

# External components
external_components:
  - source:
      type: git
      url: https://github.com/srslynow/esphome-zehnder
      ref: main
    refresh: 60sec
    components: [zehnder_fan]

# Fan configuration
fan:
  - platform: zehnder_fan
    id: ventilation_fan
    name: "Mechanical Ventilation"
    spi_id: spi_bus
    
    # Required Pin Configuration
    cs_pin: GPIO39
    pwr_pin: GPIO41
    ce_pin: GPIO42
    txen_pin: GPIO40
    dr_pin: GPIO38

button:
  - platform: restart
    name: "Restart Controller"
  - platform: template
    name: "Pair with Fan"
    icon: "mdi:wifi"
    on_press:
      - lambda: |-
          id(ventilation_fan).start_pairing();


Iemand een idee?
Leuk dat je mijn code gebruikt! Volgens mij klopt je wiring. De esp32 kan praten met je nrf905. Anders had je al een exception in de logs langs zien komen tijdens de setup-fase.

Misschien een domme vraag maar heb je de nrf905 zender wel dicht bij de unit? Die van mij ligt er precies bovenop. Dat is nodig om er enigzins betrouwbaar mee te communiceren. Ik heb hetzelfde nrf905 bordje van aliexpress, er zit een rf-filter op voor 433 mhz, waardoor hij slecht werkt op 868 mhz. Vandaar ook 50 retries by default.. :p

Als je de wiring verder wilt debuggen:

Ik heb hier ook een tijd aan zitten pielen. Wat ik gedaan heb is twee setups maken van esp32 + nrf905's. De een geladen met firmware die constant pakketjes uitstuurt en de ander om te ontvangen. De ontvanger print zijn debug-informatie op de console. Toen ik daar info zag verschijnen wist ik zeker dat de wiring klopte. Je kan het ontvangen ook doen met een RTL-SDR als je die toevallig hebt liggen.

Andere route die je kan nemen is precies dezelfde esp32C6 kopen als in mijn setup en mijn wiring 1-op-1 overnemen. Ik wil je best een foto sturen van mijn esp32 + nrf905 setup als je wilt?
TX_EN7
TRX_CE5
PWR_UP15
DR23
MISO20
MOSI19
SCK21
CSN18

Acties:
  • 0 Henk 'm!

  • Donserdal
  • Registratie: Juni 2010
  • Laatst online: 12-09 20:56
Thanks! Ik ga dat eens proberen, ik had de afstandsbediening ernaast liggen.

Die error die ik krijg doet suggereren dat het een fail of exception is? Maar ik ga dat eens proberen laat het je weten!

[ Voor 7% gewijzigd door Donserdal op 09-09-2025 17:48 ]


Acties:
  • 0 Henk 'm!

  • kvs
  • Registratie: November 2011
  • Laatst online: 12-09 20:25

kvs

Donserdal schreef op dinsdag 9 september 2025 @ 17:47:
Thanks! Ik ga dat eens proberen, ik had de afstandsbediening ernaast liggen.

Die error die ik krijg doet suggereren dat het een fail of exception is? Maar ik ga dat eens proberen laat het je weten!
Dat is een melding dat het pairen niet gelukt is na 50 pogingen. A.k.a. geen bevesting van het pairen ontvangen van de unit. Dit is geen foutmelding dat de communicatie tussen esp32 - nrf905 niet werkt.

By the way, had je de stroom even van de unit afgehaald? Dat moet om hem in pairing-mode te zetten.

  • Donserdal
  • Registratie: Juni 2010
  • Laatst online: 12-09 20:56
Het lijkt erop dat er gepaired is, het enige dat nog niet werkt is de "speeds" doorgeven?
code:
1
2
3
4
5
[00:02:20][D][zehnder_fan:221]: Set speed command acknowledged.
[00:02:20][D][fan:129]: 'Mechanical Ventilation' - Sending state:
[00:02:20][D][fan:130]:   State: ON
[00:02:20][D][fan:132]:   Speed: 3
[00:02:20][D][zehnder_fan:503]: Fan speed set successfully

code:
1
2
3
4
[00:03:20][D][fan:129]: 'Mechanical Ventilation' - Sending state:
[00:03:20][D][fan:130]:   State: OFF
[00:03:20][D][fan:132]:   Speed: 3
[00:03:20][D][zehnder_fan:503]: Fan speed set successfully


Kan het zijn dat jij een afstandsbediening hebt met alleen maar een "1,2,3,off"? Ik heb er eentje met "10minuten, 30minuten, 60 minuten, off"
In de documentatie van Eelco zie ik iets staan over een timer(offset 0C), maar deze lijk je volgens mij in je code ook te zetten? pending_op_.data.set_speed.timer_minutes = timer_minutes;

Weet jij wat het mogelijk kan zijn?

  • kvs
  • Registratie: November 2011
  • Laatst online: 12-09 20:25

kvs

Donserdal schreef op woensdag 10 september 2025 @ 00:10:
Het lijkt erop dat er gepaired is, het enige dat nog niet werkt is de "speeds" doorgeven?
code:
1
2
3
4
5
[00:02:20][D][zehnder_fan:221]: Set speed command acknowledged.
[00:02:20][D][fan:129]: 'Mechanical Ventilation' - Sending state:
[00:02:20][D][fan:130]:   State: ON
[00:02:20][D][fan:132]:   Speed: 3
[00:02:20][D][zehnder_fan:503]: Fan speed set successfully

code:
1
2
3
4
[00:03:20][D][fan:129]: 'Mechanical Ventilation' - Sending state:
[00:03:20][D][fan:130]:   State: OFF
[00:03:20][D][fan:132]:   Speed: 3
[00:03:20][D][zehnder_fan:503]: Fan speed set successfully


Kan het zijn dat jij een afstandsbediening hebt met alleen maar een "1,2,3,off"? Ik heb er eentje met "10minuten, 30minuten, 60 minuten, off"
In de documentatie van Eelco zie ik iets staan over een timer(offset 0C), maar deze lijk je volgens mij in je code ook te zetten? pending_op_.data.set_speed.timer_minutes = timer_minutes;

Weet jij wat het mogelijk kan zijn?
De unit helemaal uitzetten via de remote kan niet, dan zet de unit zichzelf toch automatisch op de low stand. Daarom heb ik de "off" knop maar gelaten voor wat hij is, hij doet niets als je erop drukt. De low, medium en high knoppen doen het wel.

Ik heb deze afstandsbediening: https://intovent.nl/en/pr...ler-zehnder-rfz-itv050850

Timer staat op 0 seconden in de code: https://github.com/srslyn..._fan/zehnder_fan.cpp#L469, hierdoor is er effectief geen timer ingesteld.
Dat is bewust, geavanceerder gebruik regel ik via home assistant automations: timers en aanspringen bij bepaalde luchtvochtigheid . Dat werkt m.i. beter en houd deze code overzichtelijk.

  • Donserdal
  • Registratie: Juni 2010
  • Laatst online: 12-09 20:56
Ahh ja die heb ik inderdaad niet ik heb zoiets:
https://www.ventilatiesho...-comfofan-cmfe-655000780/

Wat zou dit dan kunnen zijn? Wellicht een idee, maar kun je die timer variabel maken? Mijn vermoeden is namelijk dat die van mij hem verwacht? En wellicht stand “4”, dat is Max toch?

  • Donserdal
  • Registratie: Juni 2010
  • Laatst online: 12-09 20:56
@kvs Volgens mij heb ik het gevonden. In de installatie handleiding van de Comfofan S heb ik het volgens mij gevonden.
https://zehndernl.zendesk..._attachments/360001147857
Als ik kijk naar pagina 6 dan lees ik "Niet alle combinaties van schakelaars en sensoren zijn mogelijk.". Volgens mij mag je als je een Timer hebt geen gebruik maken van een RFZ ( een remote met de standen 1,2,3,off ).

Met de documentatie van @EelCapone (https://github.com/eelcohn/ZehnderComfoair) heb ik een fork gemaakt van je code en eens zitten spelen met de payload die je verzend.
https://github.com/donser...hnder_fan/zehnder_fan.cpp
https://github.com/donser...zehnder_fan/zehnder_fan.h
PS: Sorry voor de git chaos, maar daar ben ik nog niet zo handig mee

Ik heb vooral de "ZehnderFanProtocol::start_set_speed" functie aangepast en de FAN_TYPE_REMOTE_CONTROL veranderd in een Timer ipv een RFZ. Als laatste heb ik ook de "speed" waarden aangepast naar de timer waarden. (FAN_SPEED_* in zehnder_fan.h)
Helaas doet hij het nog niet, maar ik zie niet waarom, volgens de documentatie van Eelco zou deze goed moeten zijn.... (kijkende naar Command 0x03: Set timer op https://github.com/eelcohn/ZehnderComfoair)

Hopelijk heeft iemand een idee, ik loop nu wel redelijk vast.. :'(

Acties:
  • 0 Henk 'm!

  • kvs
  • Registratie: November 2011
  • Laatst online: 12-09 20:25

kvs

@Donserdal Waarschijnlijk kan je het beste met een RTL-SDR checken wat voor data je afstandsbediening daadwerkelijk naar je unit stuurt. Het heeft niet veel zin om mijn code aan te passen op basis van een gok.
Pagina: 1 ... 7 8 Laatste