Toon posts:

Het MHI L/L warmtepomp/airco topic

Pagina: 1 2 3 Laatste
Acties:

Onderwerpen


  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
jobr schreef op vrijdag 21 april 2023 @ 18:29:
[...]


Zo slim is die nu ook weer niet. Hangt erg van je opstelling af.
Hier vind ik de airco redelijk slim. Misschien lijkt dat zo omdat het functioneren goed bij onze wensen past.

  • Willempie27
  • Registratie: Augustus 2017
  • Nu online
Voor de personen die problemen hadden met het doorsturen van een externe sensor via home assistant. Bij mij schoot die er erg voorbij dus bij 21 als setpoint reageerde die pas bij 21.5. Daarna heb ik nog zo'n zelfde temperatuursensor ernaast gelegd en zag dat er een enorme vertraging in zat bij een snelle stijging. Nu dus beide sensoren gebruikt en daarvan het gemiddelde genomen om door te sturen en het probleem lijkt opgelost. Ik ga nog wel een temperatuursensor kopen die wat sneller update.

  • Ellroe32
  • Registratie: Augustus 2018
  • Laatst online: 03-06 18:16
jobr schreef op vrijdag 21 april 2023 @ 18:26:
[...]


Waarom uitzetten. Je kan toch ook het setpoint naar beneden zetten.
Wat is daar dan beter aan?

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Iets vaak aan en uitzetten geeft naar mijn idee grotere kans op een defect. In hoeverre dat voor een AC geldt kan ik niet goed beoordelen.
Maar als je het setpoint weer omhoog zet gaat de AC veel sneller weer verwarmen dan dat deze uit de power off stand moet komen.,

Acties:
  • +6Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Vanmiddag een nieuwe versie V2.7R4 voor MHI-AC-CTRL gemerged.
Hier kun je de wijzigingen vinden.

[Voor 3% gewijzigd door jobr op 24-04-2023 18:59]


  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Anoniem: 1582350 schreef op woensdag 22 maart 2023 @ 15:07:
23 maart update: MHI-AC-Ctrl-core.cpp - betere scheiding tussen IU temperatuur en return_air temperatuur
24 maart update: ginkage.yaml - reboot_timeout: 0s aan de API toegevoegd zodat die stand-alone kan werken
24 maart update: new_Tsetpoint = 0b10000000 | tsetpoint; in MHI-AC-Ctrl-core.cpp een regel lager gezet
25 maart: aan het testen met het instellen van kwart graden als thermostaat temperatuur. Omdat tsetpoint alleen halve graden kan gebruikt ik hiervoor troom. Dit houdt in dat maximaal een minuut de MHI nog halve graden ziet en zodra ook de troom doorgeven wordt dan is dat kwart graden is geworden.
27 maart: helaas kan via de troom er geen onderscheid gemaakt worden of het een kwart graad van de sensor zelf komt of van de tsetpoint. Het maakt dan ook niet uit wie wie is. Op zoek naar een betere manier via tsetpoint.
28 maart: bijgewerkte versies geplaatst en ik zit nu op RC2. Dank aan jobr voor 7R3 van de Core en ik heb weer mijn eigen implementatie gemaakt wat betreft status_troom en return_air. Zeer tevreden met de laatste versie van Core mijn aanpassingen.
Mag ik hier uit opmaken dat je de code van ginkage hebt geupdate naar een van de latere versies van absalom voor ESPHome?

  • MiBe
  • Registratie: Juli 2007
  • Laatst online: 08-06 15:49
jobr schreef op zaterdag 22 april 2023 @ 19:10:
[...]


Iets vaak aan en uitzetten geeft naar mijn idee grotere kans op een defect. In hoeverre dat voor een AC geldt kan ik niet goed beoordelen.
Maar als je het setpoint weer omhoog zet gaat de AC veel sneller weer verwarmen dan dat deze uit de power off stand moet komen.,
Anders schakelt hij zelf zijn compressor wel uit, dus zal niet veel verschil maken. Als hij die eenmaal uitgeschakeld heeft zal hij er ook net zo lang weer over doen om te gaan verwarmen bij het setpoint verhogen als wanneer je hem handmatig terug aanzet, dus ook op dat vlak maakt het weinig uit.

Overigens zou ik me ook over het regelmatig in- en uitschakelen van een moderne compressor weinig zorgen maken. Kijk maar eens naar hoe vaak een koelkast dit op een dag doet en hoeveel jaar zo'n ding doorgaans meegaat.

PV: 20x 370Wp DMEGC DM375M6-60HBB panelen (12x Oost / 8x West) = 7400 Wp op een SAJ R5-6K-T2 (6kW) 3-fase string-omvormer
AC: Mitsubishi Heavy Industries SCM80ZS-W (8kW) multi-spit met 1x SRK50ZS-W (5kW) / 1x SRK35ZS-W (3.5kW) / 2x SRK25ZS-W (2.5kW)


  • Revaes
  • Registratie: November 2006
  • Laatst online: 08-06 09:06
Kwam dit topic vorige week tegen en het trok mijn aandacht gezien mijn eigen installatie in een huis dat ik vorig jaar gekocht heb, incl deze MHI installatie:

- Outdoor: SCM125ZM-S 12.5kW
- 1 x SRK50ZS-W in woonkamer á ~50m2
- 1 x SRK20ZS-W in keuken á ~30m2
- 4 x SRK20ZS-W in slaap en studeerkamers

De woonkamer en keuken zijn gescheiden met schuifdeuren, als ik de woonkamer verwarm staat de keukenunit uit en zijn de deuren dicht. Daarnaast ligt er op de gehele benedenverdieping ook vloerverwarming die middels een standaard gas cv gestookt wordt. Deze hebben we in de winter gebruikt als hoofdverwarming, de airco's, vooral die in de woonkamer zijn dan gebruikt voor erbij, of om de vertrekken sneller op temperatuur te brengen. Vond dat de airco's vrij veel energie verbruikten, op een koude dag zomaar >20kW, icm energieplafond niet perse altijd rendabel, daarom continu als bijverwarming gebruikt om te zorgen dat we tegen de bovenkant van maximaal stroomverbruik bleven zitten.

Ik log alles middels Home-Assistant icm deze ESPs v&a aangeboden: MHI Airco ESP WiFi controller

Ik zie veel wat hier beschreven wordt als pendelgedrag. Zie hieronder bv het opgenomen vermogen gisteravond bij een buitentemperatuur van ~11gr, unit in woonkamer is dan ingesteld op 20 of 21gr. Als ik hem hoger zet wordt het pendelen wel minder, maar gaat het verbruik natuurlijk ook omhoog. Gemiddeld verbruik zit hier op net geen 1kW/h.



Hieronder een voorbeeld van zojuist, er staan vanaf het begin 2 van de kleine units aan op 20gr, rond 9h35 zet ik ook de woonkamer aan op 19gr, buitentemperatuur ligt op ca 10gr.



Vragen zijn eigenlijk, vinden jullie dit verbruik te hoog? Draai dus nu met een een relatief hoge buiten temperatuur van 10gr toch al snel 1kW/h. Is er iets dat ik nog kan optimaliseren met behoud van de huidige installatie?

  • Willempie27
  • Registratie: Augustus 2017
  • Nu online
Of dat verbruik hoog is licht natuurlijk ook aan de woning. Hoe goed is deze geïsoleerd. En hoeveel gas zou je anders verbruikt hebben zonder de airco?
Ik kan zelf merken als ik de keukendeur open laat het verbruik flink omhoog gaat. Zodra die dicht staat gaat die binnen 10 min op het minimale draaien. Naar mijn mening is een airco zeer gevoelig voor tocht.
Vandaag met een enkele 3.5 unit 0,4kWh gebruikt per uur. Dus voor zo'n grote mulitsplit met wellicht bleeding vind ik het verbruikt dan nog laag.

  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
Revaes schreef op vrijdag 28 april 2023 @ 10:08:
Kwam dit topic vorige week tegen en het trok mijn aandacht gezien mijn eigen installatie in een huis dat ik vorig jaar gekocht heb, incl deze MHI installatie:

- Outdoor: SCM125ZM-S 12.5kW
- 1 x SRK50ZS-W in woonkamer á ~50m2
- 1 x SRK20ZS-W in keuken á ~30m2
- 4 x SRK20ZS-W in slaap en studeerkamers

De woonkamer en keuken zijn gescheiden met schuifdeuren, als ik de woonkamer verwarm staat de keukenunit uit en zijn de deuren dicht. Daarnaast ligt er op de gehele benedenverdieping ook vloerverwarming die middels een standaard gas cv gestookt wordt. Deze hebben we in de winter gebruikt als hoofdverwarming, de airco's, vooral die in de woonkamer zijn dan gebruikt voor erbij, of om de vertrekken sneller op temperatuur te brengen. Vond dat de airco's vrij veel energie verbruikten, op een koude dag zomaar >20kW, icm energieplafond niet perse altijd rendabel, daarom continu als bijverwarming gebruikt om te zorgen dat we tegen de bovenkant van maximaal stroomverbruik bleven zitten.

Ik log alles middels Home-Assistant icm deze ESPs v&a aangeboden: MHI Airco ESP WiFi controller

Ik zie veel wat hier beschreven wordt als pendelgedrag. Zie hieronder bv het opgenomen vermogen gisteravond bij een buitentemperatuur van ~11gr, unit in woonkamer is dan ingesteld op 20 of 21gr. Als ik hem hoger zet wordt het pendelen wel minder, maar gaat het verbruik natuurlijk ook omhoog. Gemiddeld verbruik zit hier op net geen 1kW/h.

[Afbeelding]

Hieronder een voorbeeld van zojuist, er staan vanaf het begin 2 van de kleine units aan op 20gr, rond 9h35 zet ik ook de woonkamer aan op 19gr, buitentemperatuur ligt op ca 10gr.

[Afbeelding]

Vragen zijn eigenlijk, vinden jullie dit verbruik te hoog? Draai dus nu met een een relatief hoge buiten temperatuur van 10gr toch al snel 1kW/h. Is er iets dat ik nog kan optimaliseren met behoud van de huidige installatie?
Volgens de combinatie-tabel van Coolmark ligt het minimaal opgenomen vermogen voor verwarmen tussen de 700W (1 unit aan) en 1150W (6 units aan).
Wat dat betreft lijkt het verbruik redelijk binnen de lijn van de verwachting?

  • Revaes
  • Registratie: November 2006
  • Laatst online: 08-06 09:06
Willempie27 schreef op vrijdag 28 april 2023 @ 10:24:
Of dat verbruik hoog is licht natuurlijk ook aan de woning. Hoe goed is deze geïsoleerd. En hoeveel gas zou je anders verbruikt hebben zonder de airco?
Ik kan zelf merken als ik de keukendeur open laat het verbruik flink omhoog gaat. Zodra die dicht staat gaat die binnen 10 min op het minimale draaien. Naar mijn mening is een airco zeer gevoelig voor tocht.
Vandaag met een enkele 3.5 unit 0,4kWh gebruikt per uur. Dus voor zo'n grote mulitsplit met wellicht bleeding vind ik het verbruikt dan nog laag.
Dank voor je antwoord.

Betreft een woning uit 1940 van 180m2, waarvan ca de helft op de bg. Beneden flinke uitbouw gedaan die volgens laatste standaard is geïsoleerd. Van originele gevels is op de bg nog ca 5 over, spouw gehele huis is voorzien van korrels, volgens rapport zou dat Rc van ~1.8 moeten zijn. Alle kozijnen vernieuwd en voorzien van HR++ glas. Bg heeft vloerverwarming, we gaan er vanuit dat er isolatie onder vloer is gelegd, maar geen zekerheid, kruipruimte is ook niet toegankelijk. Huis had energielabel D, maar daarin zijn alle isolatiemaatregelen destijds door verkoper niet opgegeven, ik ga er vanuit dat we nu op niveau B zitten.

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Theetjuh schreef op woensdag 26 april 2023 @ 21:58:
Mag ik hier uit opmaken dat je de code van ginkage hebt geupdate naar een van de latere versies van absalom voor ESPHome?
Wel niet aan mij gericht maar je kunt inderdaad de esphome versie updaten met de laatste versie van mhi-ac-ctrl software. Gewoon de MHI-AC-Ctrl-core.h en MHI-AC-Ctrl-core.cpp overnemen.

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
jobr schreef op vrijdag 28 april 2023 @ 19:44:
[...]

Wel niet aan mij gericht maar je kunt inderdaad de esphome versie updaten met de laatste versie van mhi-ac-ctrl software. Gewoon de MHI-AC-Ctrl-core.h en MHI-AC-Ctrl-core.cpp overnemen.
Ik dacht, maar eens proberen dan met de code van msatter, maar deze heeft hij inmiddels weggehaald :|
Gaat dan helaas niet meer op.

Acties:
  • +1Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Theetjuh schreef op vrijdag 28 april 2023 @ 20:03:
Ik dacht, maar eens proberen dan met de code van msatter, maar deze heeft hij inmiddels weggehaald :|
Gaat dan helaas niet meer op.
Ja, geen idee waarom hij dat iedere keer doet. Was ik ook eerder al eens tegen aangelopen. Jammer maar het is niet anders.
Je zou hem ook nog een PM kunnen sturen en vragen om de code.
Maar waarom wil je die code ?
Misschien heb je nog iets aan mijn versie

[Voor 11% gewijzigd door jobr op 28-04-2023 20:24]


  • Rukapul
  • Registratie: Februari 2000
  • Nu online
jobr schreef op vrijdag 28 april 2023 @ 20:08:
[...]


Ja, geen idee waarom hij dat iedere keer doet. Was ik ook eerder al eens tegen aangelopen. Jammer maar het is niet anders.
Je zou hem ook nog een PM kunnen sturen en vragen om de code.
Maar waarom wil je die code ?
Misschien heb je nog iets aan mijn versie
Wellicht voor de nieuwe en herintreders* handig om een introductie welke versies er inmiddels zijn?

*vorige week zijn er in mijn nieuwe huis weer MHI airco's geplaatst dus de module wordt binnenkort geplaatst. Zie dat mijn idee van verbeterde resolutie opgepakt is :)

  • Willempie27
  • Registratie: Augustus 2017
  • Nu online
@jobr Jou versie werkt dan met halve graden en zijn er nog meer voordelen?
MHI-AC-Ctrl-ESPHome is al een tijdje niet geupdate werken de bestanden MHI-AC-Ctrl-core.h nog? Heeft dat nog voordelen?
Ik had zelf namelijk de indruk dat software/module simpelweg de airco uitleest en een setpoint doorgeeft en de airco hier zelf hiermee aan de slag gaat. Maar hij beïnvloed ook het gedrag van de airco gezien de updates?

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Willempie27 schreef op zaterdag 29 april 2023 @ 09:08:
@jobr Jou versie werkt dan met halve graden en zijn er nog meer voordelen?
MHI-AC-Ctrl-ESPHome is al een tijdje niet geupdate werken de bestanden MHI-AC-Ctrl-core.h nog? Heeft dat nog voordelen?
Ik had zelf namelijk de indruk dat software/module simpelweg de airco uitleest en een setpoint doorgeeft en de airco hier zelf hiermee aan de slag gaat. Maar hij beïnvloed ook het gedrag van de airco gezien de updates?
Volgens mij kun je de versie van @jobr het beste met versie 2.6 van absalom gebruiken en niet de versie van ginkage.

Hopelijk heb ik er vanmiddag even tijd voor om het te proberen.

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Willempie27 schreef op zaterdag 29 april 2023 @ 09:08:
@jobr Jou versie werkt dan met halve graden en zijn er nog meer voordelen?
MHI-AC-Ctrl-ESPHome is al een tijdje niet geupdate werken de bestanden MHI-AC-Ctrl-core.h nog? Heeft dat nog voordelen?
Ik had zelf namelijk de indruk dat software/module simpelweg de airco uitleest en een setpoint doorgeeft en de airco hier zelf hiermee aan de slag gaat. Maar hij beïnvloed ook het gedrag van de airco gezien de updates?
In die esphome versie van mij had ik nog een paar kleine bugs opgelost. Doe maar eens een compare met de originele ginkage software.
Ja de nieuwste 2 core bestanden werken nog steeds als het goed is (niet zelf geprobeerd). Gewoon de allerlaatste versie gebruiken uit https://github.com/absalom-muc/MHI-AC-Ctrl
Daar zitten wat verbeteringen in, oa. beter en snellere uitlezing AC. Ook kWh uitlezing maar daarvoor moet je onderstaande file(s) pakken.

mhi_ac_ctrl.h:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
#include "MHI-AC-Ctrl-core.h"
#define ROOM_TEMP_MQTT 1

/*

Using .5 degrees with remote control. It is working as follows:

- set the setpoint with the RC to the setpoint (=x) you want to add .5 degree and wait >7 sec
  (or skip this step if you already on the setpoint where you want to add .5 degree; current setpoint must be x.0 degrees)
- increase the setpoint with the RC with 1 degree (=x+1)
- slowly count to 7 (wait 6-9 seconds)
- decrease the setpoint with the RC with 1 degree (=x)
After about 5 seconds the setpoint on the AC will be x.5 degrees
If the setpoint was already n.5 degrees before, you have to do the first step first!

Of course when using the RC buttons again after above cycle, the setpoint will be again without .5 degrees.

This cycle will only work with the RC. Using climate control target temperature in between will abort this cycle.
Also doing the same steps with climate control target temperature won't add .5 degrees. 
Of course you can still set the setpoint to y.5 degrees with climate control target temperature.

*/
#define ENHANCED_RESOLUTION_RC true             // uncomment this to enable above function.

static const char* TAG = "mhi_ac_ctrl";

unsigned long room_temp_api_timeout_ms = millis();

#ifdef ENHANCED_RESOLUTION_RC
unsigned long previous_setpoint_set_time_Millis = millis();
float previous_setpoint = 0;
bool previous_setpoint_1_degree_up = false;
#endif



class MhiAcCtrl : public climate::Climate,
                  public Component,
                  public CallbackInterface_Status {
public:
    void setup() override
    {
        ESP_LOGD("mhi_ac_ctrl", "setup() started");
        power_status = unknown;
        
        this->power_ = power_off;
        this->current_temperature = NAN;
        // restore set points
        auto restore = this->restore_state_();
        if (restore.has_value()) {
            restore->apply(this);
        } else {
            // restore from defaults
            this->mode = climate::CLIMATE_MODE_OFF;
            // initialize target temperature to some value so that it's not NAN
            this->target_temperature = clamp(this->current_temperature, this->minimum_temperature_, this->maximum_temperature_);
            this->fan_mode = climate::CLIMATE_FAN_AUTO;
            this->swing_mode = climate::CLIMATE_SWING_OFF;
        }
        // Never send nan to HA
        if (isnan(this->target_temperature))
            this->target_temperature = 20;

        error_code_.set_icon("mdi:alert-circle");

        outdoor_temperature_.set_icon("mdi:thermometer");
        outdoor_temperature_.set_unit_of_measurement("°C");
        outdoor_temperature_.set_accuracy_decimals(2);

        return_air_temperature_.set_icon("mdi:thermometer");
        return_air_temperature_.set_unit_of_measurement("°C");
        return_air_temperature_.set_accuracy_decimals(2);

        troom_.set_icon("mdi:thermometer");
        troom_.set_unit_of_measurement("°C");
        troom_.set_accuracy_decimals(2);

        thi_r1_.set_icon("mdi:thermometer");
        thi_r1_.set_unit_of_measurement("°C");
        thi_r1_.set_accuracy_decimals(2);
        
        thi_r2_.set_icon("mdi:thermometer");
        thi_r2_.set_unit_of_measurement("°C");
        thi_r2_.set_accuracy_decimals(2);
        
        thi_r3_.set_icon("mdi:thermometer");
        thi_r3_.set_unit_of_measurement("°C");
        thi_r3_.set_accuracy_decimals(2);
        
        tho_r1_.set_icon("mdi:thermometer");
        tho_r1_.set_unit_of_measurement("°C");
        tho_r1_.set_accuracy_decimals(2);
        
        tdsh_.set_icon("mdi:air-filter");
        tdsh_.set_unit_of_measurement("°C");
        tdsh_.set_accuracy_decimals(1);

        opdata_Tsetpoint_.set_icon("mdi:thermometer");
        opdata_Tsetpoint_.set_unit_of_measurement("°C");
        opdata_Tsetpoint_.set_accuracy_decimals(1);

        fan_speed_.set_icon("mdi:fan");

        outdoor_unit_fan_speed_.set_icon("mdi:fan");

        indoor_unit_fan_speed_.set_icon("mdi:fan");

        compressor_frequency_.set_icon("mdi:sine-wave");
        compressor_frequency_.set_unit_of_measurement("Hz");
        compressor_frequency_.set_accuracy_decimals(1);

        indoor_unit_total_run_time_.set_icon("mdi:clock");
        indoor_unit_total_run_time_.set_unit_of_measurement("h");

        compressor_total_run_time_.set_icon("mdi:clock");
        compressor_total_run_time_.set_unit_of_measurement("h");

        current_power_.set_icon("mdi:current-ac");
        current_power_.set_unit_of_measurement("A");
        current_power_.set_accuracy_decimals(2);

        kwh_.set_icon("mdi:meter-electric");
        kwh_.set_unit_of_measurement("kWh");
        kwh_.set_accuracy_decimals(2);

        defrost_.set_icon("mdi:snowflake-melt");

        vanes_pos_.set_icon("mdi:air-filter");

        mhi_ac_ctrl_core.MHIAcCtrlStatus(this);
        mhi_ac_ctrl_core.init();
        ESP_LOGD("mhi_ac_ctrl", "setup() done");
    }

    void loop() override
    {
        if(millis() - room_temp_api_timeout_ms >= id(room_temp_api_timeout)*1000) {
            mhi_ac_ctrl_core.set_troom(0xff);  // use IU temperature sensor
            room_temp_api_timeout_ms = millis();
            ESP_LOGD("mhi_ac_ctrl", "did not receive a room_temp_api value, using IU temperature sensor");
        }

        int ret = mhi_ac_ctrl_core.loop(100);
        if (ret < 0)
            ESP_LOGW("mhi_ac_ctrl", "mhi_ac_ctrl_core.loop error: %i", ret);
    }

    void dump_config() override
    {
        LOG_CLIMATE("", "MHI-AC-Ctrl Climate", this);
        ESP_LOGCONFIG(TAG, "  Min. Temperature: %.1f°C", this->minimum_temperature_);
        ESP_LOGCONFIG(TAG, "  Max. Temperature: %.1f°C", this->maximum_temperature_);
        ESP_LOGCONFIG(TAG, "  Supports HEAT: %s", YESNO(true));
        ESP_LOGCONFIG(TAG, "  Supports COOL: %s", YESNO(true));
    }

    void cbiStatusFunction(ACStatus status, int value) override
    {
        float tmp_value;
        float offset = mhi_ac_ctrl_core.get_troom_offset();
        float new_current_temperature;
        
        static int mode_tmp = 0xff;
        ESP_LOGD("mhi_ac_ctrl", "received status=%i value=%i power=%i", status, value, this->power_);

        if (this->power_ == power_off) {
            // Workaround for status after reboot
            this->mode = climate::CLIMATE_MODE_OFF;
            this->publish_state();
        }

        switch (status) {
        case status_power:
            // After powerdown AC (230V), fan status is only showing 1, 2 or 3. 4 and Auto is not shown when changing with RC.
            // Only when setting fan to Auto one time after powerdown AC, it will show 4 and Auto.
            // Below will take care of this.
            if (power_status == unknown) {  // First time after startup esp
                ESP_LOGD("mhi_ac_ctrl", "power_status: unknown; received status_power: %i", value);
                if (value == power_off) {  // Only when status is power off, set fan to Auto.
                    ESP_LOGD("mhi_ac_ctrl", "Set fan to Auto to fix fan status after powerdown (230V) AC");
                    mhi_ac_ctrl_core. set_fan(7);
                }
            } else if (power_status == off) 
                ESP_LOGD("mhi_ac_ctrl", "power_status: off; received status_power: %i", value);
            else if (power_status == on) 
                ESP_LOGD("mhi_ac_ctrl", "power_status: on; received status_power: %i", value);

            if (value == power_on) {
                this->power_ = power_on;
                // output_P(status, (TOPIC_POWER), PSTR(PAYLOAD_POWER_ON));
                cbiStatusFunction(status_mode, mode_tmp);
                power_status = on;
            } else {
                // output_P(status, (TOPIC_POWER), (PAYLOAD_POWER_OFF));
                // output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_OFF));
                this->power_ = power_off;
                this->mode = climate::CLIMATE_MODE_OFF;
                this->publish_state();
                power_status = off;
            }
            break;
        case status_mode:
            mode_tmp = value;
        case opdata_mode:
        case erropdata_mode:
            switch (value) {
            case mode_auto:
                // if (status != erropdata_mode)
                //    output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_AUTO));
                // else
                //    output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_STOP));
                //    break;
                if (status != erropdata_mode && this->power_ > 0) {
                    this->mode = climate::CLIMATE_MODE_HEAT_COOL;
                } else {
                    this->mode = climate::CLIMATE_MODE_OFF;
                }
                break;
            case mode_dry:
                // output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_DRY));
                this->mode = climate::CLIMATE_MODE_DRY;
                break;
            case mode_cool:
                // output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_COOL));
                this->mode = climate::CLIMATE_MODE_COOL;
                break;
            case mode_fan:
                // output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_FAN));
                this->mode = climate::CLIMATE_MODE_FAN_ONLY;
                break;
            case mode_heat:
                // output_P(status, PSTR(TOPIC_MODE), PSTR(PAYLOAD_MODE_HEAT));
                this->mode = climate::CLIMATE_MODE_HEAT;
                break;
            default:
                ESP_LOGD("mhi_ac_ctrl", "unknown status mode value %i", value);
            }
            this->publish_state();
            break;
        case status_fan:
            switch (value) {
            case 0:
                this->fan_mode = climate::CLIMATE_FAN_LOW;
                fan_speed_.publish_state("1");
                break;
            case 1:
                this->fan_mode = climate::CLIMATE_FAN_MEDIUM;
                fan_speed_.publish_state("2");
                break;
            case 2:
                this->fan_mode = climate::CLIMATE_FAN_MEDIUM;
                fan_speed_.publish_state("3");
                break;
            case 6:
                this->fan_mode = climate::CLIMATE_FAN_HIGH;
                fan_speed_.publish_state("4");
                break;
            case 7:
                this->fan_mode = climate::CLIMATE_FAN_AUTO;
                fan_speed_.publish_state("Auto");
                break;
            }
            this->publish_state();
            break;
        case status_vanes:
            switch (value) {
            case vanes_swing:
                // output_P(status, PSTR(TOPIC_VANES), PSTR(PAYLOAD_VANES_SWING));
                this->swing_mode = climate::CLIMATE_SWING_VERTICAL;
                break;
            default:
                // itoa(value, strtmp, 10);
                // output_P(status, PSTR(TOPIC_VANES), strtmp);
                this->swing_mode = climate::CLIMATE_SWING_OFF;
            }
            vanes_pos_.publish_state(value);
            this->publish_state();
            break;
        case status_troom:
            // dtostrf((value - 61) / 4.0, 0, 2, strtmp);
            // output_P(status, PSTR(TOPIC_TROOM), strtmp);
            new_current_temperature = ((value - 61) / 4.0);
//            this->current_temperature = ((value - 61) / 4.0);
//          this->current_temperature = this->current_temperature - mhi_ac_ctrl_core.get_troom_offset();
            new_current_temperature = new_current_temperature - mhi_ac_ctrl_core.get_troom_offset();
            ESP_LOGD("mhi_ac_ctrl", "status_troom received: %f with already substracted offset: %f", new_current_temperature, mhi_ac_ctrl_core.get_troom_offset());
            // Only publish when different value received
            if (new_current_temperature != this->current_temperature) {
              this->current_temperature = new_current_temperature;
              this->publish_state();
            }
            troom_.publish_state(this->current_temperature);
            break;
        case status_tsetpoint:
            // itoa(value, strtmp, 10);
            // output_P(status, PSTR(TOPIC_TSETPOINT), strtmp);

            tmp_value = (value & 0x7f)/ 2.0;

#ifdef ENHANCED_RESOLUTION_RC
            if (((round(tmp_value) - tmp_value) == 0.0f ) ) {  // only when x.0 degrees
                ESP_LOGD("mhi_ac_ctrl", "status_tsetpoint: Start checking setpoint cycle. Previous setpoint: %f New setpoint: %f", previous_setpoint, tmp_value);
                if (!previous_setpoint_1_degree_up) {  // if cycle is not started
                  if ( (tmp_value - previous_setpoint) == 1 ) {  // new setpoint is 1 degree higher; start cycle
                    previous_setpoint_1_degree_up = true;  // start cycle
                    previous_setpoint_set_time_Millis = millis();
                    ESP_LOGD("mhi_ac_ctrl", "status_tsetpoint: Setpoint cycle detect started");
                  } else {
                    ESP_LOGD("mhi_ac_ctrl", "status_tsetpoint: No setpoint cycle");
                  }
                } else {  // cycle was started before
                  if (((tmp_value - previous_setpoint) == -1) & (millis() - previous_setpoint_set_time_Millis <= 10*1000 ) ) {  // new setpoint 1 degree lower when cycle detected in 10s
                    // cycle +1 and -1 degree detected -> use setpoint + 0.5 degree
                    ESP_LOGD("mhi_ac_ctrl", "status_tsetpoint: Setpoint cycle detected. Add .5 degrees to setpoint");
                    previous_setpoint_1_degree_up = false;  // end cycle
                    mhi_ac_ctrl_core.set_tsetpoint((byte)(2 * (tmp_value + 0.5)));  // adjust setpoint
                  } else {  // no -1 degree or outside time cycle
                    previous_setpoint_1_degree_up = false;  // reset cycle
                    ESP_LOGD("mhi_ac_ctrl", "status_tsetpoint: Setpoint cycle reset");
                  }
                }
            } else { // when x.5 degrees
                previous_setpoint_1_degree_up = false;  // reset cycle when setpoint is x.5 degrees
                ESP_LOGD("mhi_ac_ctrl", "status_tsetpoint: Setpoint cycle reset because of setpoint is x.5 degrees");
            }
            previous_setpoint = tmp_value;
#endif          

            offset = round(tmp_value) - tmp_value;  // Calculate offset when setpoint is changed
            mhi_ac_ctrl_core.set_troom_offset(offset);
            ESP_LOGD("mhi_ac_ctrl", "set_troom_offset: %f Target temperature: %f", offset, tmp_value);
          
            // Only when there is a difference. Otherwise mulitple climate state's published
            if (this->target_temperature != ((value & 0x7f)/ 2.0)) {
              this->target_temperature = (value & 0x7f)/ 2.0;
              this->publish_state();
            }
            break;
        case erropdata_tsetpoint:
        case opdata_tsetpoint:
            // dtostrf((value & 0x7f)/ 2.0, 0, 1, strtmp);
            // output_P(status, PSTR(TOPIC_TSETPOINT), strtmp);
            opdata_Tsetpoint_.publish_state((value & 0x7f) / 2.0);
            break;
        case status_errorcode:
        case erropdata_errorcode:
            // itoa(value, strtmp, 10);
            // output_P(status, PSTR(TOPIC_ERRORCODE), strtmp);
            error_code_.publish_state(value);
            break;
        case opdata_return_air:
        case erropdata_return_air:
            // dtostrf((value - 61) / 4.0, 0, 2, strtmp);
            // output_P(status, PSTR(TOPIC_RETURNAIR), strtmp);
            return_air_temperature_.publish_state((value - 61) / 4.0);
            break;
        case opdata_thi_r1:
        case erropdata_thi_r1:
            // 20221116 activated
            // itoa(0.327f * value - 11.4f, strtmp, 10); // only rough approximation
            // output_P(status, PSTR(TOPIC_THI_R1), strtmp);
            thi_r1_.publish_state(value * 0.327f - 11.4f);
            //this->publish_state();
            break;
        case opdata_thi_r2:
        case erropdata_thi_r2:
            // 20221116 activated
            // itoa(0.327f * value - 11.4f, strtmp, 10); // formula for calculation not known
            // output_P(status, PSTR(TOPIC_THI_R2), strtmp);
            thi_r2_.publish_state(value * 0.327f - 11.4f);
            //this->publish_state();
            break;
        case opdata_thi_r3:
        case erropdata_thi_r3:
            // 20221116 activated
            // itoa(0.327f * value - 11.4f, strtmp, 10); // only rough approximation
            // output_P(status, PSTR(TOPIC_THI_R3), strtmp);
            thi_r3_.publish_state(value * 0.327f - 11.4f);
            //this->publish_state();
            break;
        case opdata_iu_fanspeed:
        case erropdata_iu_fanspeed:
            // itoa(value, strtmp, 10);
            // output_P(status, PSTR(TOPIC_IU_FANSPEED), strtmp);
            indoor_unit_fan_speed_.publish_state(value);
            break;
        case opdata_total_iu_run:
        case erropdata_total_iu_run:
            // itoa(value * 100, strtmp, 10);
            // output_P(status, PSTR(TOPIC_TOTAL_IU_RUN), strtmp);
            indoor_unit_total_run_time_.publish_state(value * 100);
            break;
        case erropdata_outdoor:
        case opdata_outdoor:
            // dtostrf((value - 94) * 0.25f, 0, 2, strtmp);
            // output_P(status, PSTR(TOPIC_OUTDOOR), strtmp);
            outdoor_temperature_.publish_state((value - 94) * 0.25f);
            break;
        case opdata_tho_r1:
        case erropdata_tho_r1:
            // 20221116 activated
            // itoa(0.327f * value - 11.4f, strtmp, 10); // formula for calculation not known
            // output_P(status, PSTR(TOPIC_THO_R1), strtmp);
            tho_r1_.publish_state(value * 0.327f - 11.4f);
            break;
        case opdata_comp:
        case erropdata_comp:
            // dtostrf(
            //    highByte(value) * 25.6f + 0.1f * lowByte(value), 0, 2, strtmp); // to be confirmed
            // output_P(status, PSTR(TOPIC_COMP), strtmp);
            compressor_frequency_.publish_state(highByte(value) * 25.6f + 0.1f * lowByte(value));
            break;
        case erropdata_td:
        case opdata_td:
            // if (value < 0x12)
            //    strcpy(strtmp, "<=30");
            // else
             //   itoa(value / 2 + 32, strtmp, 10);
            // output_P(status, PSTR(TOPIC_TD), strtmp);
            break;
        case opdata_ct:
        case erropdata_ct:
            // 20221116 changed
            // dtostrf(value * 14 / 51.0f, 0, 2, strtmp);
            // output_P(status, PSTR(TOPIC_CT), strtmp);
            //this->current_power = (value * 14 / 51.0f);
            //this->publish_state();
            current_power_.publish_state(value * 14 / 51.0f);
            break;
        case opdata_tdsh:
            // itoa(value, strtmp, 10); // formula for calculation not known
            // output_P(status, PSTR(TOPIC_TDSH), strtmp);
            // 20221118 publish uitgezet en nu alleen via een YAML techSenor te publiseren
            //this->tdsh_ = {value * 0.327f - 11.4f};            
            tdsh_.publish_state(value * 0.327f - 11.4f);
            break;
        case opdata_protection_no:
            // itoa(value, strtmp, 10);
            // output_P(status, PSTR(TOPIC_PROTECTION_NO), strtmp);
            break;
        case opdata_ou_fanspeed:
        case erropdata_ou_fanspeed:
            // itoa(value, strtmp, 10);
            // output_P(status, PSTR(TOPIC_OU_FANSPEED), strtmp);
            outdoor_unit_fan_speed_.publish_state(value);
            break;
        case opdata_defrost:
            // if (value)
            //     output_P(status, PSTR(TOPIC_DEFROST), PSTR(PAYLOAD_OP_DEFROST_ON));
            // else
            //     output_P(status, PSTR(TOPIC_DEFROST), PSTR(PAYLOAD_OP_DEFROST_OFF));
            defrost_.publish_state(value != 0);
            break;
        case opdata_total_comp_run:
        case erropdata_total_comp_run:
            // itoa(value * 100, strtmp, 10);
            // output_P(status, PSTR(TOPIC_TOTAL_COMP_RUN), strtmp);
            compressor_total_run_time_.publish_state(value * 100);
            break;
        case opdata_ou_eev1:
        case erropdata_ou_eev1:
            // itoa(value, strtmp, 10);
            // output_P(status, PSTR(TOPIC_OU_EEV1), strtmp);
            break;
//        case opdata_tsetpoint:
//        case erropdata_tsetpoint:
        case opdata_kwh:
            ESP_LOGD("mhi_ac_ctrl", "opdata_kwh unknown: 0x%04x",(uint16_t)value);
            ESP_LOGD("mhi_ac_ctrl", "opdata_kwh kWh: %f",lowByte(value)*0.25f);
            kwh_.publish_state(highByte(value)*64.0f + lowByte(value)*0.25f);
            break;
        case opdata_unknown:
            // skip these values as they are not used currently
            break;
        }
    }

    std::vector<Sensor *> get_sensors() {
        return {
            &error_code_,
            &outdoor_temperature_,
            &return_air_temperature_,
            &outdoor_unit_fan_speed_,
            &indoor_unit_fan_speed_,
            &current_power_,
            &compressor_frequency_,
            &indoor_unit_total_run_time_,
            &compressor_total_run_time_,
            &vanes_pos_,
            &troom_,
            &kwh_
        };
    }
    
    std::vector<Sensor *> get_tech_sensors() {
        return {
            &thi_r1_,
            &thi_r2_,
            &thi_r3_,
            &tho_r1_,
            &tdsh_,
            &opdata_Tsetpoint_
        };
    }
    
    std::vector<BinarySensor *> get_binary_sensors() {
        return { &defrost_ };
    }

    std::vector<TextSensor *> get_text_sensors() {
        return { &fan_speed_ };
    }

    void set_room_temperature(float value) {
        value = value + mhi_ac_ctrl_core.get_troom_offset() ;  // increase Troom with current offset to compensate higher setpoint
        if ((value > -10) & (value < 48)) {
            room_temp_api_timeout_ms = millis();  // reset timeout
            byte tmp = value*4+61;
            mhi_ac_ctrl_core.set_troom(tmp);
            ESP_LOGD("mhi_ac_ctrl", "set room_temp_api: %f %i with already added offset: %f Resulting set_troom: %f", value, (byte)tmp, mhi_ac_ctrl_core.get_troom_offset(), (float)((tmp - 61) / 4.0));
        }
    }

    void set_use_IU_sensor() {
        mhi_ac_ctrl_core.set_troom(0xff);  // use IU temperature sensor
        ESP_LOGD("mhi_ac_ctrl", "Use IU temperature sensor");
    }

    void set_vanes(int value) {
        mhi_ac_ctrl_core.set_vanes(value);
        ESP_LOGD("mhi_ac_ctrl", "set vanes: %i", value);
    }

    void set_fan(int value) {
        mhi_ac_ctrl_core.set_fan(value);
        ESP_LOGD("mhi_ac_ctrl", "set fan: %i", value);
    }

protected:
    /// Transmit the state of this climate controller.
    void control(const climate::ClimateCall& call) override
    {
        if (call.get_mode().has_value()) {
            this->mode = *call.get_mode();

            power_ = power_on;
            switch (this->mode) {
            case climate::CLIMATE_MODE_OFF:
                power_ = power_off;
                break;
            case climate::CLIMATE_MODE_COOL:
                mode_ = mode_cool;
                break;
            case climate::CLIMATE_MODE_HEAT:
                mode_ = mode_heat;
                break;
            case climate::CLIMATE_MODE_DRY:
                mode_ = mode_dry;
                break;
            case climate::CLIMATE_MODE_FAN_ONLY:
                mode_ = mode_fan;
                break;
            case climate::CLIMATE_MODE_HEAT_COOL:
            default:
                mode_ = mode_auto;
                break;
            }

            mhi_ac_ctrl_core.set_power(power_);
            mhi_ac_ctrl_core.set_mode(mode_);
        }

        if (call.get_target_temperature().has_value()) {
            this->target_temperature = *call.get_target_temperature();

            tsetpoint_ = (float)clamp(this->target_temperature, minimum_temperature_, maximum_temperature_);

            mhi_ac_ctrl_core.set_tsetpoint((byte)(2 * tsetpoint_));
            ESP_LOGD("mhi_ac_ctrl", "Control target_temperature: %f set_tsetpoint: %f", this->target_temperature, tsetpoint_);
#ifdef ENHANCED_RESOLUTION_RC
            ESP_LOGD("mhi_ac_ctrl", "control: Setpoint cycle reset");
            previous_setpoint_1_degree_up = false; // Never use cycle detection when setpoint is set by MQTT
#endif          
        }

        if (call.get_fan_mode().has_value()) {
            this->fan_mode = *call.get_fan_mode();

            switch (*this->fan_mode) {
            case climate::CLIMATE_FAN_LOW:
                fan_ = 0;
                break;
            case climate::CLIMATE_FAN_MEDIUM:
                fan_ = 1;
                break;
            case climate::CLIMATE_FAN_HIGH:
                fan_ = 6;
                break;
            case climate::CLIMATE_FAN_AUTO:
            default:
                fan_ = 7;
                break;
            }

            mhi_ac_ctrl_core.set_fan(fan_);
        }

        if (call.get_swing_mode().has_value()) {
            this->swing_mode = *call.get_swing_mode();

            switch (this->swing_mode) {
            case climate::CLIMATE_SWING_VERTICAL:
                mhi_ac_ctrl_core.set_vanes(vanes_);
                vanes_ = vanes_swing;
                break;
            default:
            case climate::CLIMATE_SWING_OFF:
                vanes_ = vanes_unknown;
                mhi_ac_ctrl_core.set_vanes(vanes_);
                break;
            }
        }

        this->publish_state();
    }

    /// Return the traits of this controller.
    climate::ClimateTraits traits() override
    {
        auto traits = climate::ClimateTraits();
        traits.set_supports_current_temperature(true);
        traits.set_supported_modes({ CLIMATE_MODE_OFF, CLIMATE_MODE_HEAT_COOL, CLIMATE_MODE_COOL, CLIMATE_MODE_HEAT, CLIMATE_MODE_DRY, CLIMATE_MODE_FAN_ONLY });
        traits.set_supports_two_point_target_temperature(false);
        traits.set_visual_min_temperature(this->minimum_temperature_);
        traits.set_visual_max_temperature(this->maximum_temperature_);
        traits.set_visual_temperature_step(this->temperature_step_);
        traits.set_supported_fan_modes({ CLIMATE_FAN_AUTO, CLIMATE_FAN_LOW, CLIMATE_FAN_MEDIUM, CLIMATE_FAN_HIGH });
        traits.set_supported_swing_modes({ CLIMATE_SWING_OFF, CLIMATE_SWING_VERTICAL });
        return traits;
    }

    float minimum_temperature_ { 18.0f };
    float maximum_temperature_ { 30.0f };
    float temperature_step_ { 0.5f };

    ACPower power_;
    ACMode mode_;
    float tsetpoint_;
    uint fan_;
    ACVanes vanes_;

    MHI_AC_Ctrl_Core mhi_ac_ctrl_core;

    Sensor error_code_;
    Sensor outdoor_temperature_;
    Sensor return_air_temperature_;
    Sensor outdoor_unit_fan_speed_;
    Sensor indoor_unit_fan_speed_;
    Sensor compressor_frequency_;
    Sensor indoor_unit_total_run_time_;
    Sensor compressor_total_run_time_;
    Sensor current_power_;
    BinarySensor defrost_;
    Sensor vanes_pos_;
    Sensor thi_r1_;
    Sensor thi_r2_;
    Sensor thi_r3_;
    Sensor tho_r1_;
    Sensor tdsh_;
    Sensor opdata_Tsetpoint_;
    TextSensor fan_speed_;
    Sensor troom_;
    Sensor kwh_;

    enum POWER_STATUS
    {
      unknown,
      off,
      on
    } power_status;
    
};
In de yaml file dan nog dit gebruiken:
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
sensors:
      - name: Error code
      - name: OpData Outdoor temp
      - name: OpData Return air temp
      - name: OpData Outdoor unit fan speed
        internal: true
      - name: OpData Indoor unit fan speed
      - name: OpData Energy power current
        id: energy_power_current
      - name: OpData Compressor frequency
        on_value:
          then:
            - lambda: |-
                ESP_LOGD("Custom sensor", "Update OpData Compressor frequency"); // demo logging
      - name: OpData Indoor unit total run time
        internal: true
      - name: OpData Compressor total run time
        internal: true
      - name: Vanes
      - name: Troom
        on_value:
          then:
            - lambda: |-
                ESP_LOGD("Custom sensor", "Update Troom");  // demo logging
      - name: OpData Energy kWh

  - platform: custom
    lambda: |-
      return ((MhiAcCtrl*)id(${deviceid}))->get_tech_sensors();
    sensors:
      - name: OpData THI R1 temp
        internal: true
      - name: OpData THI R2 temp
        internal: true
      - name: OpData THI R3 temp
        internal: true
      - name: OpData THO R1 temp
        internal: true
      - name: OpData TDSH temp
        internal: true
      - name: OpData Tsetpoint temp
Ik heb in dat yaml stukje nogal wat aangepast dus even vergelijken met wat je hebt en evt wat aanpassen en gebruiken wat je wilt gebruiken. En die on_value: stukjes kan je ok weghalen. Dat was een test met logging.

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Theetjuh schreef op zaterdag 29 april 2023 @ 11:56:
[...]

Volgens mij kun je de versie van @jobr het beste met versie 2.6 van absalom gebruiken en niet de versie van ginkage.

Hopelijk heb ik er vanmiddag even tijd voor om het te proberen.
Als je de ginkage software of die genoemde variant (hierboven) van mij gebruikt dan de 2 core bestanden van de laatste V2.7R4 gebruiken.

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Rukapul schreef op vrijdag 28 april 2023 @ 20:45:
Wellicht voor de nieuwe en herintreders* handig om een introductie welke versies er inmiddels zijn?
Eigenlijk is het heel simpel, er zijn 2 verschillende 2 projecten voor de mhi-ac-ctrl:
- https://github.com/absalom-muc/MHI-AC-Ctrl
- https://github.com/ginkage/MHI-AC-Ctrl-ESPHome (die 2 core bestanden van MHI-AC-Ctrl gebruikt)

Waarbij ik van die laatste aanpassingen heb gemaakt zoals hierboven staat (zoals o.a. msatter dat ook heeft gedaan).

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Ik heb even wat hulp nodig, dit is mijn huidige yaml:
YAML:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
substitutions:
  # Unique device ID in HA
  deviceid: "mhi_livingroom"
  # Unique device name in HA (sensor names will be prefixed by this name)
  devicename: "MHI-Livingroom"

esphome:
  name: mhi-livingroom
  platformio_options:
    # Run CPU at 160Mhz to fix mhi_ac_ctrl_core.loop error: -2
    board_build.f_cpu: 160000000L
  includes:
    - mhi_ac_ctrl.h
    - MHI-AC-Ctrl-core.h
    - MHI-AC-Ctrl-core.cpp

esp8266:
  board: d1_mini

# Enable logging
logger:
  level: DEBUG
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxx"
  reboot_timeout: 0s
  services:
    # Call the set_api_room_temperature service from HA to override the room temperature
    # If a new value has not been received after room_temp_api_timeout seconds, it will fall back to internal sensor
    - service: set_api_room_temperature
      variables:
        value: float
      then:
        - lambda: |-
            return ((MhiAcCtrl*)id(${deviceid}))->set_room_temperature(value);
    # Call the set_vanes service from HA to set the vane position
    # Needed because the ESPHome Climate class does not support this natively
    # Possible values: 1-4: static positions, 5: swing, 0: unknown
    - service: set_vanes
      variables:
        value: int
      then:
        - lambda: |-
            return ((MhiAcCtrl*)id(${deviceid}))->set_vanes(value);

ota:
  password: "xxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: high

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: ${devicename}
    password: "xxxxxxx"

captive_portal:

globals:
  - id: room_temp_api_timeout
    type: int
    restore_value: no
    initial_value: '120'

climate:
  - platform: custom
    lambda: |-
      auto mhi_ac_ctrl = new MhiAcCtrl();
      App.register_component(mhi_ac_ctrl);
      return {mhi_ac_ctrl};
    climates:
      - name: "${devicename}"
        id: ${deviceid}

sensor:
  - platform: uptime
    name: ${devicename} Uptime
  - platform: wifi_signal
    name: ${devicename} WiFi Signal
    update_interval: 60s
  - platform: custom
    lambda: |-
      return ((MhiAcCtrl*)id(${deviceid}))->get_sensors();
    # Sensor names in HA, you can change these if you want
    # Don't delete them or change their position in the list
    sensors:
      - name: ${devicename} error code
      - name: ${devicename} outdoor temperature
      - name: ${devicename} return air temperature
      - name: ${devicename} outdoor unit fan speed
      - name: ${devicename} indoor unit fan speed
      - name: ${devicename} current power
      - name: ${devicename} compressor frequency
      - name: ${devicename} indoor unit total run time
      - name: ${devicename} compressor total run time
      - name: ${devicename} vanes

binary_sensor:
  - platform: custom
    lambda: |-
      return ((MhiAcCtrl*)id(${deviceid}))->get_binary_sensors();
    binary_sensors:
      - name: ${devicename} defrost

text_sensor:
  - platform: wifi_info
    ip_address:
      name: ${devicename} IP
    ssid:
      name: ${devicename} SSID
    bssid:
      name: ${devicename} BSSID


Hoe kan ik dit nu het beste doorvoeren aangezien ik meerdere airco units monitor?

Vooral de positie zoals de comment ook al aangeeft gaat zo fout door een andere posities lijkt me.
Ik heb al even in de code gekeken, maar ook daar kan ik door m'n beperkte kennis daarvan een juiste volgorde bepalen.

[Voor 2% gewijzigd door Theetjuh op 29-04-2023 16:06. Reden: yaml code]


  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Al gevonden denk ik, als ik het volgende na regel 101 zet, lijkt het allemaal goed
[code=yaml] - name: ${devicename} troom
- name: ${devicename} kwh
- platform: custom
lambda: |-
return ((MhiAcCtrl*)id(${deviceid}))->get_tech_sensors();
sensors:
- name: ${devicename} THI R1 temp
internal: true
- name: ${devicename} THI R2 temp
internal: true
- name: ${devicename} THI R3 temp
internal: true
- name: ${devicename} THO R1 temp
internal: true
- name: ${devicename} TDSH temp
internal: true
- name: ${devicename} Tsetpoint temp

[code]

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Ik snap alleen niet waarom die laat tech sensors internal zijn en waar ze precies voor zijn, zou je dat kunnen uitleggen @jobr ?

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Theetjuh schreef op zaterdag 29 april 2023 @ 16:58:
Ik snap alleen niet waarom die laat tech sensors internal zijn en waar ze precies voor zijn, zou je dat kunnen uitleggen @jobr ?
Die code van ginkage leest niet alle gegevens van de AC uit wat er wel mogelijk is met de mhi-ac-ctrl module. Daarom heb ik ze toegevoegd.
Wat ze betekenen staat hier: https://www.hrponline.co....9cWKESQUhzVIy5.pdf#page=9
Wat internal betekent staat hier: https://esphome.io/components/sensor/index.html
code:
1
2
3
internal (Optional, boolean): Mark this component as internal.
Internal components will not be exposed to the frontend (like Home Assistant). 
Only specifying an id without a name will implicitly set this to true.


Je kan dat internal ook weghalen als je dat wilt. Ik heb geen HA en dat ze in MQTT terecht kwamen was voldoende voor mij. Ik had ook nog een webserver component draaien in esphome en daar wilde ik ze ook niet zien. Vandaar dat ik ook internal heb gebruikt.

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Duidelijk, bedankt voor je uitleg en toevoegingen aan dit project!

Acties:
  • +1Henk 'm!

  • ijdod
  • Registratie: April 2000
  • Laatst online: 22:21
Weet iemand of de timers van de Smart-M Air App zijn te combineren met die via de remote? Dit vanuit het perspectief dat een aantal features niet op beide schedulers aanwezig zijn. Specifiek zou ik bv de planning overdag (relatief variabel) via de app willen doen, en nachtbedrijf (o.a. met bv Silent mode) via de remote.

Root don't mean a thing, if you ain't got that ping...


Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
ik weet niet of het mogelijk is om timers van de wifi-module zijn te combineren met de remote. Het klinkt mij wat onwaarschijnlijk in de oren.

Ikzelf heb net een airco hangen en werk met de MHI-AC-CTRL en Home Assistant. Daarbinnen kan ik me suf combineren met alle apparaten die in HA staan. Dan kun je het net zo ingewikkeld maken als je wilt. Bij mij gaat de airco bijvoorbeeld om 6u aan op verwarmen met een bepaalde temp, mits de kamerthermostaat lager dan 18,5 geeft. 's Avonds weer uit op een bepaalde tijd en mocht de airco aan staan en het wordt te warm volgens de kamerthermostaat, dan gaat de airco uit. Ik weet nog niet of die laatste instelling ook gaat werken, want daar heb ik nog geen resultaten van gezien. Moraal van het verhaal; met Home Assistant kun je veel verschilende zaken combineren en instellen, zodat ook jouw wensen goed verwerkt kunnen worden

Acties:
  • 0Henk 'm!

  • ijdod
  • Registratie: April 2000
  • Laatst online: 22:21
@Rijo038 HA integratie staat op de agenda, gebruik HA al jaren voor diverse toepassingen. Ik heb echter vooralsnog de standaard MHI Wifi modules (recente units, dus af fabriek aan boord). Praktisch gezien speelt de WAF daar ook een rol in; ondanks alle gebreken doen de apps van Evohome (voor de CV) en waarschijnlijk MHI het beter dan HA. Dus op korte termijn ben ik aan het kijken naar basaal inrichten, de HA komt later.

Het is mij ook nog niet helemaat duidelijk of de MHI-AC-CTRL de remote features (silent, enz) wel ondersteunt. Op basis van het graven in de documentatie en forumposts is mijn vermoeden vooralsnog van niet. Het eea hangt op reverse engineering van de wifi oplossing, en die ondersteunt deze features niet. Daarmee zijn de commando's naar de unit niet bekend.

(Bijkomende factor is dat ik niet altijd zin heb om acuut veel tijd in HA en het troubleshooten daarvan te steken als weer eens spontaan iets stopt met werken. En dat is bij tijd en wijle soms wel nodig. Ondanks de beperkingen hebben de vendors apps vaak (niet altijd) een veel hogere 'it just works' gehalte).

[Voor 21% gewijzigd door ijdod op 06-05-2023 11:22]

Root don't mean a thing, if you ain't got that ping...


Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
ik heb even gekeken in de verschillende mogelijkheden qua statussen aanpassen. Daar vind ik Silent mode inderdaad niet terug.

De standaard MHI wifimodule is ook te integreren in HA. Dat zou ik dan eerst doen. Daarvoor is in HACS een integratie beschikbaar. Als je zoekt op repository WF-RAC in HACS, dan krijg je de integratie met de standaard wifi module.

Acties:
  • 0Henk 'm!

  • renzo4000
  • Registratie: Juni 2001
  • Laatst online: 08-06 21:46
ijdod schreef op zaterdag 6 mei 2023 @ 08:22:
Weet iemand of de timers van de Smart-M Air App zijn te combineren met die via de remote? Dit vanuit het perspectief dat een aantal features niet op beide schedulers aanwezig zijn. Specifiek zou ik bv de planning overdag (relatief variabel) via de app willen doen, en nachtbedrijf (o.a. met bv Silent mode) via de remote.
Volgens mij is het zo dat zodra je een wifi module aan boord hebt en deze is geactiveerd en je hebt timers ingesteld via de app de timers via de ab komen te vervallen. Maar zodra je de remote weer gebruikt (bijv airco aan of uit zetten) vervallen de ingestelde timers van de app weer.

Zelf gebruik ik de timers via de smart-m air app nog maar ga zelf flows maken icm mijn Homey. Je hebt dan veel meer vrijheid en kan ik een separate temp sensor gebruiken als uitgangspunt ipv degene in de airco die niet zo goed kan meten.

PVOUTPUT | 5400W | 15 PANELEN 360W ZUID 38° | ENPHASE ENVOY S | MICRO OMVORMERS 290W


Acties:
  • 0Henk 'm!

  • ijdod
  • Registratie: April 2000
  • Laatst online: 22:21
Voor zover ik kan zien overruled de timer functie ook de reguliere 'aan/uit' instelling van de remote/app (maw: de timer blijft actief, en schakelt op tijdstip aan/uit). Daarmee zou ik de remote kunnen gebruiken voor de nachtimer, en een HA integratie voor de 'normale' schakelmomenten.

Root don't mean a thing, if you ain't got that ping...


Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
De beste test blijft toch altijd gewoon proberen. Daar valt niet tegenaan te lullen 😌. Niks aannemen, maar testen, testen, testen

Acties:
  • 0Henk 'm!

  • renzo4000
  • Registratie: Juni 2001
  • Laatst online: 08-06 21:46
ijdod schreef op zaterdag 6 mei 2023 @ 12:25:
Voor zover ik kan zien overruled de timer functie ook de reguliere 'aan/uit' instelling van de remote/app (maw: de timer blijft actief, en schakelt op tijdstip aan/uit). Daarmee zou ik de remote kunnen gebruiken voor de nachtimer, en een HA integratie voor de 'normale' schakelmomenten.


Mijn ervaring is dat wanneer je een ingestelde weektimer hebt in de smart air app en je zet de airco aan/uit met de afstandsbediening dat de timers daarna niet meer werken. Maar zoals gezegd, probeer het uit en je weet het d:)b

PVOUTPUT | 5400W | 15 PANELEN 360W ZUID 38° | ENPHASE ENVOY S | MICRO OMVORMERS 290W


Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
ijdod schreef op zaterdag 6 mei 2023 @ 08:22:
Weet iemand of de timers van de Smart-M Air App zijn te combineren met die via de remote? D
Nee dat kan niet. Zodra er een Wifi (of MHI-ac-ctrl) module is geplaatst vervallen alle timer functies die je met de remote kan instellen.

Acties:
  • 0Henk 'm!

  • ijdod
  • Registratie: April 2000
  • Laatst online: 22:21
@jobr hmmm, da's apart. Met 'geplaatst' zouden de huidige WF modellen (af fabriek met wifi) dus geen IR remote timers meer hebben. A. Die staan wel gewoon in de (expliciet voor WF) handleiding. Althans, uitgaande dat die verder vergelijkbaar werken. De wifi unit is (beperkt, denk aan reset en aan/uit) via de IR remote te bedienen, dus wellicht zijn er meer verschillen.

Maar dat wordt dus testen inderdaad.

Root don't mean a thing, if you ain't got that ping...


Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
ijdod schreef op zaterdag 6 mei 2023 @ 23:13:
@jobr hmmm, da's apart. Met 'geplaatst' zouden de huidige WF modellen (af fabriek met wifi) dus geen IR remote timers meer hebben. A. Die staan wel gewoon in de (expliciet voor WF) handleiding. Althans, uitgaande dat die verder vergelijkbaar werken. De wifi unit is (beperkt, denk aan reset en aan/uit) via de IR remote te bedienen, dus wellicht zijn er meer verschillen.

Maar dat wordt dus testen inderdaad.
Tja, waarschijnlijk een kopie van de vorige handleiding :)
Je kunt alles via de RC bedienen, alleen de de timers niet. Noem ik niet echt beperkt. In de app kun je de unit maar beperkt bedienen (maar wel de timers :)) in vergelijking met de RC.
Maar je kunt het zo testen en zien dat het timer ledje niet aan gaat.

[Voor 4% gewijzigd door jobr op 07-05-2023 19:38]


Acties:
  • 0Henk 'm!

  • ijdod
  • Registratie: April 2000
  • Laatst online: 22:21
@jobr Volgens mij zaken als eco, night setback en silent mode niet, toch? (of je die nodig hebt is natuurlijk een andere discussie).

Root don't mean a thing, if you ain't got that ping...


Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
Gebruiken jullie de self clean modus wel eens? Volgens de handleiding moet je die na iedere koel of ontvochtingssessie gebruiken. Maar ze verstoppen hem wel onder de menuknop…

Acties:
  • 0Henk 'm!

  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
Rijo038 schreef op zondag 7 mei 2023 @ 21:21:
Gebruiken jullie de self clean modus wel eens? Volgens de handleiding moet je die na iedere koel of ontvochtingssessie gebruiken. Maar ze verstoppen hem wel onder de menuknop…
Is dat dat hij nog een kwartier ofzo de fan laat blazen binnen de unit? Indien ja, dan doen wij dat altijd standaard na het koelen. Staat hier dus automatisch ingesteld.

Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
Oh, je stelt het 1 keer in en dan doet hij het zelf steeds automatisch. Dat staat niet duidelijk in de handleiding. Duurt trouwens 2 uur, die selfclean volgens de handleiding. Bedankt voor de terugkoppeling

Acties:
  • +1Henk 'm!

  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
Rijo038 schreef op zondag 7 mei 2023 @ 22:36:
Oh, je stelt het 1 keer in en dan doet hij het zelf steeds automatisch. Dat staat niet duidelijk in de handleiding. Duurt trouwens 2 uur, die selfclean volgens de handleiding. Bedankt voor de terugkoppeling
Ik heb het nog even gecheckt in de handleiding maar dit is inderdaad de functie die wij automatisch lieten uitvoeren.

Acties:
  • 0Henk 'm!

  • wian
  • Registratie: September 2005
  • Niet online
De MHIs moeten nog worden geinstalleerd, maar de MHI-AC-CTRL-ESPhome ligt al klaar ;)

Het was even zoeken, dus voor andere beginnelingen hier een korte beschrijving van wat ik heb gedaan:
  • SAMBA share addon geinstalleerd voor makkelijke toegang tot ESPhome config (pad: \\<ip>\config\esphome\)
  • nieuwe subdir custom_components\mhi_ac_ctrlv27
  • nieuwe file aangemaakt in deze dir met filenaam "mhi_ac_ctrl.h"
  • code van @jobr uit deze post gepakt en alle 682 regels in bovenstaand bestand geplakt en opgeslagen.
  • nieuwste MHI-AC-Ctrl-core.h gedownload van https://github.com/absalo...er/src/MHI-AC-Ctrl-core.h en in dezelfde dir geplaatst
  • en nieuwste MHI-AC-Ctrl-core.cpp van https://github.com/absalo.../src/MHI-AC-Ctrl-core.cpp
  • tenslotte onderstaande yaml gebruikt. Wel even regels 31, 50 en 73 aanpassen. Evt. 3 en 5 als je de device naam en ID wilt wijzigen in Home Assistant.
Nog geen airco gehad om te testen uiteraard, maar zie geen onverwachte foutmeldingen.

YAML: airco-woonkamer.yaml
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
substitutions:
  # Unique device ID in HA
  deviceid: "airco_woonkamer" #deviceid: "mhi_woonkamer"
  # Unique device name in HA (sensor names will be prefixed by this name)
  devicename: "Airco-Woonkamer" #devicename: "MHI-Woonkamer"
  friendly_name: ${devicename}

#custom_components/mhi-ac-ctrl-esphome
#file: "custom_components/mhi_ac_ctrl/mhi_ac_ctrl.h"

esphome:
  name: airco-woonkamer #name: mhi-woonkamer  # Unique name  (only change in small letters)
  platform: ESP8266
  board: d1_mini
  platformio_options:
  # Run CPU at 160Mhz to fix mhi_ac_ctrl_core.loop error: -2
    board_build.f_cpu: 160000000L
  includes:
    - custom_components/mhi_ac_ctrlv27/mhi_ac_ctrl.h
    - custom_components/mhi_ac_ctrlv27/MHI-AC-Ctrl-core.h
    - custom_components/mhi_ac_ctrlv27/MHI-AC-Ctrl-core.cpp

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "${devicename} hotspot"
    password: "(.)(.)"
  
# Enable fallback hotspot (captive portal) in case wifi connection fails
captive_portal:

# Enable logging
logger:
  level: DEBUG
  baud_rate: 0

globals:
  - id: room_temp_api_timeout
    type: int
    restore_value: no
    initial_value: '120'

# Enable Home Assistant API
api:
  encryption:
    key: "(.)(.)"
  reboot_timeout: 0s
  services:
    # Call the set_api_room_temperature service from HA to override the room temperature
    # If a new value has not been received after room_temp_api_timeout seconds, it will fall back to internal sensor
    - service: set_api_room_temperature
      variables:
        value: float
      then:
        - lambda: |-
            return ((MhiAcCtrl*)id(${deviceid}))->set_room_temperature(value);
    # Call the set_vanes service from HA to set the vane position
    # Needed because the ESPHome Climate class does not support this natively
    # Possible values: 1-4: static positions, 5: swing, 0: unknown
    - service: set_vanes
      variables:
        value: int
      then:
        - lambda: |-
            return ((MhiAcCtrl*)id(${deviceid}))->set_vanes(value);

# Enable OTA updates  
ota:
  password: "(.)(.)"

# Enable Web server.
web_server:
  port: 80

#mqtt:
#  broker: 192.168.21.30
#  username: mqtt
#  password: Y&DZ4%vD^Y!psG
#  reboot_timeout: 0s
  
# Sync time
time:
  - platform: sntp
    id: sntp_time
    timezone: "Europe/Amsterdam"
    on_time_sync:
      then:
        - logger.log: "Synchronized sntp clock"

climate:
  - platform: custom
    lambda: |-
      auto mhi_ac_ctrl = new MhiAcCtrl();
      App.register_component(mhi_ac_ctrl);
      return {mhi_ac_ctrl};
    climates:
      - name: "${devicename}"
        id: ${deviceid}

sensor:
  - platform: custom
    lambda: |-
      return ((MhiAcCtrl*)id(${deviceid}))->get_sensors();

    # Sensor names in HA, you can change these if you want
    # Don't delete them or change their position in the list
    sensors:
      - name: ${devicename} error code
      - name: ${devicename} outdoor temperature
      - name: ${devicename} return air temperature
      - name: ${devicename} outdoor unit fan speed
      - name: ${devicename} indoor unit fan speed
      - name: ${devicename} current
        id: "current"
      - name: ${devicename} compressor frequency
      - name: ${devicename} indoor unit run time
      - name: ${devicename} compressor run time
      - name: ${devicename} vanes
      - name: ${devicename} troom
      - name: ${devicename} kwh
       
  - platform: custom
    lambda: |-
      return ((MhiAcCtrl*)id(${deviceid}))->get_tech_sensors();
    sensors:
      - name: ${devicename} THI R1 temp
        internal: true
      - name: ${devicename} THI R2 temp
        internal: true
      - name: ${devicename} THI R3 temp
        internal: true
      - name: ${devicename} THO R1 temp
        internal: true
      - name: ${devicename} TDSH temp
        internal: true
      - name: ${devicename} Tsetpoint temp      

  - platform: template
    name: ${devicename} power
    id: "power"
    lambda: return id(current).state * 230;  #I think all units are 230V; real voltage can vary a bit, but has a small impact.
    unit_of_measurement: W
    device_class: power
  - platform: total_daily_energy
    name: ${devicename} daily energy
    power_id: "power"
    filters:
      # Multiplication factor from W to kW is 0.001
      - multiply: 0.001
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
          
  # WiFi Signal sensor.
  - platform: wifi_signal
    name: ${devicename} WiFi Signal
    update_interval: 60s
  
  # uptime sensor
  - platform: uptime
    name: ${devicename} Uptime Sensor
    id: uptime_sensor
    update_interval: 60s
    disabled_by_default: true
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? to_string(days) + "d " : "") +
                (hours ? to_string(hours) + "h " : "") +
                (minutes ? to_string(minutes) + "m " : "")
              ).c_str();

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: ${devicename} Version
    hide_timestamp: true
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: ${devicename} IP
#    ssid:
#      name: ${devicename} SSID
#    bssid:
#      name: ${devicename} BSSID

  - platform: template
    name: ${devicename} Uptime
    id: uptime_human
    icon: mdi:clock-start

binary_sensor:
  - platform: custom
    lambda: |-
      return ((MhiAcCtrl*)id(${deviceid}))->get_binary_sensors();

    binary_sensors:
      - name: ${devicename} defrost

Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
ijdod schreef op zondag 7 mei 2023 @ 20:55:
@jobr Volgens mij zaken als eco, night setback en silent mode niet, toch? (of je die nodig hebt is natuurlijk een andere discussie).
Niet in de app inderdaad.
In de App kun je bijv de fanspeed op 4 standen zetten, maar met de RC op 5 standen. Idem voor de lamellen up/down, RC heeft 1 stand meer.

Acties:
  • +1Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@wian
Heb hem overgenomen maar krijg toch nog wel wat waarschuwingen, jij ook?
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
Compiling /data/mhi-woonkamer/.pioenvs/mhi-woonkamer/src/main.cpp.o
In file included from src/esphome/core/controller.h:29,
                 from src/esphome/components/api/api_server.h:4,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/climate/climate.h: In constructor 'esphome::climate::Climate::Climate()':
src/esphome/components/climate/climate.h:167:7: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
  167 | class Climate : public EntityBase {
      |       ^~~~~~~
src/esphome/components/climate/climate.h:193:8: note: declared here
  193 |   bool away{false};
      |        ^~~~
src/esphome/components/climate/climate.h:167:7: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
  167 | class Climate : public EntityBase {
      |       ^~~~~~~
src/esphome/components/climate/climate.h:193:8: note: declared here
  193 |   bool away{false};
      |        ^~~~
In file included from src/main.cpp:73:
src/mhi_ac_ctrl.h: In constructor 'MhiAcCtrl::MhiAcCtrl()':
src/mhi_ac_ctrl.h:37:7: note: synthesized method 'esphome::climate::Climate::Climate()' first required here
   37 | class MhiAcCtrl : public climate::Climate,
      |       ^~~~~~~~~
/config/esphome/mhi-woonkamer.yaml: In lambda function:
/config/esphome/mhi-woonkamer.yaml:93:40: note: synthesized method 'MhiAcCtrl::MhiAcCtrl()' first required here
   93 |       auto mhi_ac_ctrl = new MhiAcCtrl();
      |                                        ^
Linking /data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.elf
RAM:   [====      ]  44.1% (used 36104 bytes from 81920 bytes)
Flash: [=====     ]  46.3% (used 483681 bytes from 1044464 bytes)
Building /data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.bin
esp8266_copy_factory_bin(["/data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.bin"], ["/data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.elf"])
========================= [SUCCESS] Took 42.74 seconds =========================


Edit: met de "oude" versie ook ;)
Dus zal wel aan de laatste versie (2023.4.4) van esphome liggen.

PV Output - Pana Hit Kuro Zuid / SF Noord- Mitsubsidie WP - Procon melcobems mini TK - MHI ESP WiFi TK


Acties:
  • 0Henk 'm!

  • wian
  • Registratie: September 2005
  • Niet online
AUijtdehaag schreef op maandag 8 mei 2023 @ 20:49:
@wian
Heb hem overgenomen maar krijg toch nog wel wat waarschuwingen, jij ook?
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
Compiling /data/mhi-woonkamer/.pioenvs/mhi-woonkamer/src/main.cpp.o
In file included from src/esphome/core/controller.h:29,
                 from src/esphome/components/api/api_server.h:4,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/climate/climate.h: In constructor 'esphome::climate::Climate::Climate()':
src/esphome/components/climate/climate.h:167:7: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
  167 | class Climate : public EntityBase {
      |       ^~~~~~~
src/esphome/components/climate/climate.h:193:8: note: declared here
  193 |   bool away{false};
      |        ^~~~
src/esphome/components/climate/climate.h:167:7: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
  167 | class Climate : public EntityBase {
      |       ^~~~~~~
src/esphome/components/climate/climate.h:193:8: note: declared here
  193 |   bool away{false};
      |        ^~~~
In file included from src/main.cpp:73:
src/mhi_ac_ctrl.h: In constructor 'MhiAcCtrl::MhiAcCtrl()':
src/mhi_ac_ctrl.h:37:7: note: synthesized method 'esphome::climate::Climate::Climate()' first required here
   37 | class MhiAcCtrl : public climate::Climate,
      |       ^~~~~~~~~
/config/esphome/mhi-woonkamer.yaml: In lambda function:
/config/esphome/mhi-woonkamer.yaml:93:40: note: synthesized method 'MhiAcCtrl::MhiAcCtrl()' first required here
   93 |       auto mhi_ac_ctrl = new MhiAcCtrl();
      |                                        ^
Linking /data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.elf
RAM:   [====      ]  44.1% (used 36104 bytes from 81920 bytes)
Flash: [=====     ]  46.3% (used 483681 bytes from 1044464 bytes)
Building /data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.bin
esp8266_copy_factory_bin(["/data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.bin"], ["/data/mhi-woonkamer/.pioenvs/mhi-woonkamer/firmware.elf"])
========================= [SUCCESS] Took 42.74 seconds =========================


Edit: met de "oude" versie ook ;)
Dus zal wel aan de laatste versie (2023.4.4) van esphome liggen.
Bedankt voor het checken! Ik had dit soort waarschuwingen ook bij het compileren van de versie van ginkage, dus ga ervan uit dat het erbij hoort en gewoon werkt. Maar kan dit dus nog niet testen.

Acties:
  • +1Henk 'm!

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Deze foutmeldingen komen sinds kort naar boven inderdaad, zie ook de aangemelde issue bij ginkage: https://github.com/ginkage/MHI-AC-Ctrl-ESPHome/issues/52

Acties:
  • 0Henk 'm!

  • Rukapul
  • Registratie: Februari 2000
  • Nu online
Theetjuh schreef op dinsdag 9 mei 2023 @ 11:41:
Deze foutmeldingen komen sinds kort naar boven inderdaad, zie ook de aangemelde issue bij ginkage: https://github.com/ginkage/MHI-AC-Ctrl-ESPHome/issues/52
Dat project ziet er stale uit.

Begrijp goed uit de README.md van ESPHome dat deze out of the box geen MQTT ondersteunt, maar puur op HA integratie is gericht?

Acties:
  • 0Henk 'm!

  • Theetjuh
  • Registratie: Januari 2000
  • Laatst online: 10:07
Rukapul schreef op dinsdag 9 mei 2023 @ 11:55:
[...]

Dat project ziet er stale uit.
Ja klopt, volgens mij komt dit omdat ginkage uit Oekraïne komt, althans hij heeft de oorlog eerder al eens als reden opgegeven in een ander issue.

Acties:
  • 0Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Rukapul schreef op dinsdag 9 mei 2023 @ 11:55:
[...]

Dat project ziet er stale uit.

Begrijp goed uit de README.md van ESPHome dat deze out of the box geen MQTT ondersteunt, maar puur op HA integratie is gericht?
# weghalen in bovenste code bij mqtt en api weghalen en hij doet mqtt zonder HA.

PV Output - Pana Hit Kuro Zuid / SF Noord- Mitsubsidie WP - Procon melcobems mini TK - MHI ESP WiFi TK


Acties:
  • +1Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Theetjuh schreef op dinsdag 9 mei 2023 @ 12:13:
Ja klopt, volgens mij komt dit omdat ginkage uit Oekraïne komt, althans hij heeft de oorlog eerder al eens als reden opgegeven in een ander issue.
Komt uit Rusland maar werkt in UK. Hij kan niet bij zijn AC die of in Rusland of in UK hangt

[Voor 9% gewijzigd door jobr op 09-05-2023 20:19]


Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Rukapul schreef op dinsdag 9 mei 2023 @ 11:55:
Begrijp goed uit de README.md van ESPHome dat deze out of the box geen MQTT ondersteunt, maar puur op HA integratie is gericht?
ESPHome werkt prima zonder HA en met MQTT. Maar is wel flink geïntegreerd met HA (als je dat wil)

[Voor 9% gewijzigd door jobr op 09-05-2023 20:21]


  • Ellroe32
  • Registratie: Augustus 2018
  • Laatst online: 03-06 18:16
Vraagje: mijn MHI zsx 2023 staat ingesteld op 18 graden. De airco geeft aan dat het 21 graden is. Toch slaat de airco aan. Waarom?

De fan staat op automatisch.

  • Willempie27
  • Registratie: Augustus 2017
  • Nu online
Ellroe32 schreef op woensdag 17 mei 2023 @ 10:33:
Vraagje: mijn MHI zsx 2023 staat ingesteld op 18 graden. De airco geeft aan dat het 21 graden is. Toch slaat de airco aan. Waarom?

De fan staat op automatisch.
Staat de buiten unit ook aan? Als de temperatuur is bereikt gaat die naar fan-stand 1 met de kleppen naar boven.

  • Ellroe32
  • Registratie: Augustus 2018
  • Laatst online: 03-06 18:16
Ik zal het dit weekend nog eens goed bekijken, maar hij gaat idd met de klep naar boven…. voor een tijdje. Vervolgens gaat de klep echter weer naar beneden en gaat de fan aan, terwijl de temp in de kamer nog steeds 21 graden is.

  • dt_swiss
  • Registratie: Februari 2014
  • Laatst online: 09:52
Je zal het vast bekeken hebben, maar zeker dat je niet de automatische modus gebruikt?

  • Ellroe32
  • Registratie: Augustus 2018
  • Laatst online: 03-06 18:16
Nee. Hij staat op verwarmen.

Acties:
  • +1Henk 'm!

  • Rsport40
  • Registratie: Januari 2015
  • Laatst online: 09:03
Volgens mij is de temperatuur die de WiFi app aangeeft, anders dan de daadwerkelijke temperatuursensor van de unit. Ik heb de Wifi module achteraf ingebouwd in de ZSX, en die geeft altijd te hoge waarde aan (bij mij logisch omdat ik hem heb ingebouwd), maar hij gaat gelukkig uit van zijn eigen tempsensor.

Dus stel, kamer is 18 graden, via de wifi app is het 20 graden. Als ik de airco dan op 19 graden zet, gaat ie toch verwarmen.

Acties:
  • +1Henk 'm!

  • Rukapul
  • Registratie: Februari 2000
  • Nu online
AUijtdehaag schreef op dinsdag 9 mei 2023 @ 12:36:
[...]

# weghalen in bovenste code bij mqtt en api weghalen en hij doet mqtt zonder HA.
Dank. Eerste keer esphome valt niet per se tegen. Lees: veel gebruiksvriendelijker / vlakkere leercurve dan bouwen met ArduinoIDE.

Ik heb HA geüpdatet en zowel MHI-AC-Ctrl als MHI-AC-Ctrl-Esphome voor verschillende aircos geconfigureerd.

Aangezien er geen verschil lijkt in hoe ik het gebruik denk ik dat ik verder ga met puur MHI-AC-Ctrl omdat ik dan direct vanuit een EspEasy temperatuur sensor de temperatuur kan publishen voor MHI-AC-Ctrl zonder HA.

Acties:
  • 0Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Rukapul
Bij mij draait de mqtt server via HA dus dat maakt weinig verschil.
(Mocht het apparaat zelf een keer crashen)

Via bluetooth (of matter/zigbee/zwave) zou ook kunnen maar dat vereist een upgrade naar andere esp.

[Voor 50% gewijzigd door AUijtdehaag op 22-05-2023 12:52]

PV Output - Pana Hit Kuro Zuid / SF Noord- Mitsubsidie WP - Procon melcobems mini TK - MHI ESP WiFi TK


Acties:
  • 0Henk 'm!

  • nihilissimis
  • Registratie: Augustus 2005
  • Laatst online: 03-06 11:22
Ik zie heel regelmatig mijn SRC/SRK-25 uitschakelen bij gebruik van de MHI-AC-CTRL module. Moet de stroom er dan helemaal afhalen om de module weer in de lucht te krijgen.
Ben ik de enige, of hebben meer mensen dit probleem?

Acties:
  • +1Henk 'm!

  • raymondw
  • Registratie: November 2000
  • Nu online
@nihilissimis
Vermoedelijk heb je de "standaard" Arduino gebaseerde software erop draaien.
Een wifi kanaal switch gaat dan niet goed waardoor de unit uitschakelt.
Herstarten is de unit opnieuw op wifi verbinden...

Voor mij was de oplossing om over te gaan naar ESPhome : https://esphome.io/
Add-on voor HA die perfect werkt.
Sinds de overstap geen disconnects meer gezien (4 units draaien op 2 locaties)

Indien je wil heb ik de settings voor je die ik gebruik in ESPhome.
Heb alle units OTA geflashed.

to linux or not ,that's my quest... | 5800X | 32GB 3800C15 | X570-Pro | 980 1TB | 7900XTX | iRacing | PVoutput


Acties:
  • +1Henk 'm!

  • Tomba
  • Registratie: Mei 2000
  • Laatst online: 09:38

Tomba

Quis custodiet ipsos custodes?

nihilissimis schreef op maandag 22 mei 2023 @ 10:10:
Ik zie heel regelmatig mijn SRC/SRK-25 uitschakelen bij gebruik van de MHI-AC-CTRL module. Moet de stroom er dan helemaal afhalen om de module weer in de lucht te krijgen.
Ben ik de enige, of hebben meer mensen dit probleem?
Heb ik geen problemen meer mee sinds ik over ben 2.6R3 (inmiddels is de definitieve V2.6 uit zie ik)

tomba.tweakblogs.net || Mijn V&A


Acties:
  • 0Henk 'm!

  • tismij
  • Registratie: November 2003
  • Laatst online: 08-06 12:55
Heb 2 airco's met de MHI-AC-CTRL module draaien, werkt uitstekend en netjes in HA.
Nu komen er binnenkort 2 airco's bij alleen heb ik begrepen van de leverancier dat die al een wifi module ingebouwd hebben.
Kan ik deze net als de MHI-AC-CTRL aansturen via HA?
Alternatief kan ik deze modules loskoppelen en vervangen door de MHI-AC-CTRL eventueel?

Las eerder in draadje dat wel iets met python te regelen is maar of dat daarmee compleet in HA te integreren is haal ik daar niet uit.

It has always been the prerogative of children and fools to point out that the emperor has no clothes but the emperor remains the emperor and the fool is just a fool.


Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
tismij schreef op maandag 22 mei 2023 @ 15:22:
Heb 2 airco's met de MHI-AC-CTRL module draaien, werkt uitstekend en netjes in HA.
Nu komen er binnenkort 2 airco's bij alleen heb ik begrepen van de leverancier dat die al een wifi module ingebouwd hebben.
Kan ik deze net als de MHI-AC-CTRL aansturen via HA?
Alternatief kan ik deze modules loskoppelen en vervangen door de MHI-AC-CTRL eventueel?

Las eerder in draadje dat wel iets met python te regelen is maar of dat daarmee compleet in HA te integreren is haal ik daar niet uit.
je kunt via HACS een integratie (Smart M-Air (Mitsubishi WF-RAC)) installeren in HA. Dan heb je de originele wifimodule ook in HA zitten. Wat je er allemaal mee kunt instellen weet ik niet.

Acties:
  • +2Henk 'm!

  • nihilissimis
  • Registratie: Augustus 2005
  • Laatst online: 03-06 11:22
@raymondw @Tomba Dank voor de hints! Dat Wifi probleem zou t heel goed kunnen zijn. Ik ga t eens met een nieuwe versie proberen. Zie in de changelog nu ook redelijk recent:
“Changed WiFi connection setup and continue when MQTT failed” en eerder ook al “continue when MQTT fails”.
Zo niet dat bouw ik er een routine in die de gateway pingt en WiFi herstart of reboot als die niet meer reageert.

Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Rsport40 schreef op zondag 21 mei 2023 @ 21:19:
Volgens mij is de temperatuur die de WiFi app aangeeft, anders dan de daadwerkelijke temperatuursensor van de unit.
Nee hoor. De app geeft de temp sensor van de unit weer.
Dat ie toch gaat verwarmen heeft te maken met de standaard offset van 2 graden.
Zoek daar maar eens op in dit topic of het algemene L/L topic

Acties:
  • +1Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
AUijtdehaag schreef op maandag 22 mei 2023 @ 05:40:
Via bluetooth (of matter/zigbee/zwave) zou ook kunnen maar dat vereist een upgrade naar andere esp.
Een esp32 stabiel krijgen met WiFi en BLE en MHI-AC-CTRL is niet eenvoudig.

Acties:
  • +1Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
nihilissimis schreef op maandag 22 mei 2023 @ 10:10:
Ik zie heel regelmatig mijn SRC/SRK-25 uitschakelen bij gebruik van de MHI-AC-CTRL module. Moet de stroom er dan helemaal afhalen om de module weer in de lucht te krijgen.
Ben ik de enige, of hebben meer mensen dit probleem?
Heb je de versie v2.7R4 er wel op staan ?
En lees dan ook even de 2de bullet in https://github.com/absalo...rl/blob/master/Version.md
Misschien helpt dat.
En lees ook dit: https://github.com/absalo...tches-power-off-sometimes

[Voor 11% gewijzigd door jobr op 22-05-2023 19:39]


Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Rijo038 schreef op maandag 22 mei 2023 @ 16:54:
Wat je er allemaal mee kunt instellen weet ik niet.
Zelfde als wat je met de app kunt instellen.
Met de MHI-AC_CTRL module kun je veel meer uitlezen. En het belangrijkste (denk ik) is dat je de AC met een externe sensor kunt aansturen.

Acties:
  • +1Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
nihilissimis schreef op maandag 22 mei 2023 @ 17:00:
@raymondw @Tomba Dank voor de hints! Dat Wifi probleem zou t heel goed kunnen zijn. Ik ga t eens met een nieuwe versie proberen. Zie in de changelog nu ook redelijk recent:
“Changed WiFi connection setup and continue when MQTT failed” en eerder ook al “continue when MQTT fails”.
Zo niet dat bouw ik er een routine in die de gateway pingt en WiFi herstart of reboot als die niet meer reageert.
Ja dat heb ik flink aangepast :)
WiFi wordt al herstart door MHI-AC-CTRL. Alleen een reboot niet.

Overigens stopt de AC primair omdat de MHI-AC-CTRL niet meer communiceerd met de AC. Wat in oudere release kan komen als MQTT niet meer bereikbaar is of WiFi verbinding uitvalt.
Je kunt achter de exacte oorzaak komen door de seriele poort uit te lezen tijdens de uitval.

Acties:
  • 0Henk 'm!

  • wian
  • Registratie: September 2005
  • Niet online
Ik had al twee ESP'tjes klaar liggen met MHI-AC-CTRL-ESPhome, blijkt dat de aircos met af-fabriek wifi modules geleverd zijn :)

De Smart M-Air app heeft een hoog WAF gehalte en dankzij de Mitsubishi WF-RAC integratie heb je toch de basis besturing en temperatuur sensoren in Home Assistant. Niet zo uitgebreid als MHI-AC-CTRL natuurlijk, maar het werkt.

Heeft iemand nog tips voor handige automations voor aricos in HA?

Acties:
  • 0Henk 'm!

  • nihilissimis
  • Registratie: Augustus 2005
  • Laatst online: 03-06 11:22
@jobr Dank!
jobr schreef op maandag 22 mei 2023 @ 19:21:
[...]


Heb je de versie v2.7R4 er wel op staan ?
En lees dan ook even de 2de bullet in https://github.com/absalo...rl/blob/master/Version.md
Misschien helpt dat.
En lees ook dit: https://github.com/absalo...tches-power-off-sometimes
Het is alweer enige maanden geleden, dus ik denk versie 2.6. Ik heb m er toen afgehaald omdat er mensen op ons huis gingen passen en het uitvallen gebeurde toch wel vrij regelmatig.

Ik hoop dat het met de nieuwe versie wel goed gaat!
jobr schreef op maandag 22 mei 2023 @ 19:33:
[...]


Ja dat heb ik flink aangepast :)
WiFi wordt al herstart door MHI-AC-CTRL. Alleen een reboot niet.

Overigens stopt de AC primair omdat de MHI-AC-CTRL niet meer communiceerd met de AC. Wat in oudere release kan komen als MQTT niet meer bereikbaar is of WiFi verbinding uitvalt.
Je kunt achter de exacte oorzaak komen door de seriele poort uit te lezen tijdens de uitval.
Ik denk dat het meest waarschijnlijk is dat de Wifi niet lekker gaat met mijn Wifi-setup (Omada TP-Link, met meerdere access points, toevallig op ongeveer even korte afstand)

De module heb ik ingebouwd en ik kan er niet heel lekker bij, dus als t niet hoeft dan laat ik m lekker zitten, dus serieel aansluiten doe ik alleen als t niet anders kan.

Bedankt voor alle aanwijzingen. Ik ga het een en ander uitproberen.

Nogmaals dank!

Acties:
  • 0Henk 'm!

  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
kun je de MHI-AC-CTRL ook koppelen aan een app?

Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
nihilissimis schreef op dinsdag 23 mei 2023 @ 15:32:
Ik denk dat het meest waarschijnlijk is dat de Wifi niet lekker gaat met mijn Wifi-setup (Omada TP-Link, met meerdere access points, toevallig op ongeveer even korte afstand)
Als je dan nog problemen hebt misschien overwegen om eens WiFI_SEARCHStrongestAP uit te zetten. Dan zoekt ie niet elke 12 min naar een sterker AP.

Acties:
  • 0Henk 'm!

  • vdr01
  • Registratie: Maart 2013
  • Laatst online: 08-06 21:08

vdr01

MHI SRKZS-S 3.5

Rijo038 schreef op dinsdag 23 mei 2023 @ 16:30:
kun je de MHI-AC-CTRL ook koppelen aan een app?
Wat had je precies in gedachten cq. welke app bedoel je? Bij mij draait het op HomeAssistant en daarvoor is ook een app om het via je telefoon te bedienen.

Acties:
  • 0Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 08-06 19:15
Rijo038 schreef op dinsdag 23 mei 2023 @ 16:30:
kun je de MHI-AC-CTRL ook koppelen aan een app?
Misschien via Home Assistant.
Maar ik heb ook een lokale webpage gemaakt die je zou kunnen gebruiken. Wel geen app maar kun je toch even snel kijken en wat aanpassen. Je moet wel contact kunnen maken met je MQTT server.

[Voor 6% gewijzigd door jobr op 23-05-2023 18:37]


  • Rijo038
  • Registratie: April 2023
  • Laatst online: 07-06 14:55
ik vroeg me af of er een soort van open source app (alternatief voor de smart m-air app) beschikbaar is die kan werken met de MHI-AC-CTRL.
Ik kan de airco prima bedienen met de HA app hoor. klein gevalletje FOMO denk ik ;-)

  • Waah
  • Registratie: Maart 2009
  • Laatst online: 07:44
De gewone remote vind ik foeilelijk. Maar je mist toch een schermpje met de instellingen helaas. Dus ondanks Home Asssitant hebben we de remote ook nog in gebruik.

Zag nu wel de Hue Tap Dail. Met 4 knoppen en een draaibare ring a-la nest.
Misschien daar maar eens naar kijken. Met de draaiknop zou de temperatuur verhogen misschien wel een optie zijn, 2 knoppen voor de de blaasrichting, 2 knoppen voor verwarmen of koelen (en ook uit).

Blijft nog altijd lastig zonder scherm om de temperatuur te zien. Wat dat betreft zou ik eigenlijk gewoon een NEST-achtige oplossing willen...

  • Hobby klusvrouw
  • Registratie: April 2023
  • Laatst online: 30-05 14:12
Hier een vraag van een leek op dit gebied. Wij hebben deze winter twee MHI’s in de kinderkamers met plat dak laten installeren. Nu ben ik op zoek naar een paar tips voor instellen voor koelen, voor verwarmen lees ik bijvoorbeeld 45 graden, maar voor koelen plat. Betekent dit dat de lamellen recht vooruit moeten staan? En niet op de swing stand? De unit hangt boven het bed, niet van hoofd naar voeten, maar aan de zijkant. De unit hangt aan de ene kant van de kamer, is het dan handig om de lamellen ook meer naar de kamer te richten, of maakt dat niks uit?

En wanneer aanzetten? Het gaat erom dat de kamer in de avond koel is als de kinderen gaan slapen, overdag zijn ze er eigenlijk niet. En dan een timer voor als ze slapen dat hij uitgaat, of de hele nacht aan laten?

Ik vind gewoon handmatig aan en uitzetten prima, of met een klok erop als hij uit moet. Dat gaat me nog wel lukken ;)

Tot slot, ik las iets over een ‘nablaas’ of speciale stand als hij uitgaat, moet ik die ook instellen?

Veel vragen, maar ik hoop op een paar handige tips :)

  • vdr01
  • Registratie: Maart 2013
  • Laatst online: 08-06 21:08

vdr01

MHI SRKZS-S 3.5

Hoi Hobby klusvrouw, ik zou deze vraag (ook) even stellen in: Lucht/lucht warmtepomp om mee te verwarmen en te koelen - #2

  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
Hobby klusvrouw schreef op zaterdag 27 mei 2023 @ 12:43:
Hier een vraag van een leek op dit gebied. Wij hebben deze winter twee MHI’s in de kinderkamers met plat dak laten installeren. Nu ben ik op zoek naar een paar tips voor instellen voor koelen, voor verwarmen lees ik bijvoorbeeld 45 graden, maar voor koelen plat. Betekent dit dat de lamellen recht vooruit moeten staan? En niet op de swing stand? De unit hangt boven het bed, niet van hoofd naar voeten, maar aan de zijkant. De unit hangt aan de ene kant van de kamer, is het dan handig om de lamellen ook meer naar de kamer te richten, of maakt dat niks uit?

En wanneer aanzetten? Het gaat erom dat de kamer in de avond koel is als de kinderen gaan slapen, overdag zijn ze er eigenlijk niet. En dan een timer voor als ze slapen dat hij uitgaat, of de hele nacht aan laten?

Ik vind gewoon handmatig aan en uitzetten prima, of met een klok erop als hij uit moet. Dat gaat me nog wel lukken ;)

Tot slot, ik las iets over een ‘nablaas’ of speciale stand als hij uitgaat, moet ik die ook instellen?

Veel vragen, maar ik hoop op een paar handige tips :)
De reden dat aangeraden wordt de lamellen bij koelen niet (te lang) naar beneden te richten is dat dat kan maken dat condenswater naar beneden kan druppelen. Hierover kan je lezen in de handleiding bij koelen.
Je kan 3d gebruiken wanneer je dat prettig vindt of de lamellen meer horizontaal houden.



Na het koelen kan je een programma gebruiken wat het binnenste van de binnenunit droog blaast (of minder nat maakt).
Je kan dat handmatig doen of automatisch laten uitvoeren.
Dit zegt de handleiding er over.



Of je de swing/3d stand gebruikt of een vaste stand dat zou ik gewoon uit proberen. De voorkeur kan ook verschillen bij verschillende functies of in verschillende situaties.

In de handleiding vind je vrij veel handige informatie over wat het apparaat kan en hoe je het kan instellen.

  • Hobby klusvrouw
  • Registratie: April 2023
  • Laatst online: 30-05 14:12
Bedankt voor de tips Sjamo!

Acties:
  • 0Henk 'm!

  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
Graag gedaan. Hierbij nog het stukje over de richting van de lamellen.


Acties:
  • 0Henk 'm!

  • glas86
  • Registratie: Augustus 2016
  • Laatst online: 08:56
Sjamo schreef op zaterdag 27 mei 2023 @ 16:57:
[...]


De reden dat aangeraden wordt de lamellen bij koelen niet (te lang) naar beneden te richten is dat dat kan maken dat condenswater naar beneden kan druppelen. Hierover kan je lezen in de handleiding bij koelen.
Je kan 3d gebruiken wanneer je dat prettig vindt of de lamellen meer horizontaal houden.

[Afbeelding]

Na het koelen kan je een programma gebruiken wat het binnenste van de binnenunit droog blaast (of minder nat maakt).
Je kan dat handmatig doen of automatisch laten uitvoeren.
Dit zegt de handleiding er over.

[Afbeelding]

Of je de swing/3d stand gebruikt of een vaste stand dat zou ik gewoon uit proberen. De voorkeur kan ook verschillen bij verschillende functies of in verschillende situaties.

In de handleiding vind je vrij veel handige informatie over wat het apparaat kan en hoe je het kan instellen.
Is de optie om even de ventileer stand i.p.v. self-clean ook niet voldoende om dit resultaat te bereiken? Twee uur lang vind ik echt absurd. Uiteraard appels met peren vergelijken maar mijn airco in de auto zet ik ook 5 of 10 min van te voren uit zodat die nog even doorblaast.

Acties:
  • 0Henk 'm!

  • Sjamo
  • Registratie: Oktober 2021
  • Nu online
glas86 schreef op dinsdag 30 mei 2023 @ 21:27:
[...]


Is de optie om even de ventileer stand i.p.v. self-clean ook niet voldoende om dit resultaat te bereiken? Twee uur lang vind ik echt absurd. Uiteraard appels met peren vergelijken maar mijn airco in de auto zet ik ook 5 of 10 min van te voren uit zodat die nog even doorblaast.
Ik heb geen idee.

De optie wordt gegeven, kan volledig automatisch en verbruikt nauwelijks stroom. Dus wij vinden het prima en gaan niet op zoek naar alternatieve routes.

  • tismij
  • Registratie: November 2003
  • Laatst online: 08-06 12:55
Net airco geïnstalleerd met wifi module maar de play store geeft aan dat de smart m-air niet beschikbaar is in mijn regio.
Hoe hebben jullie de app op android geïnstalleerd?

It has always been the prerogative of children and fools to point out that the emperor has no clothes but the emperor remains the emperor and the fool is just a fool.


  • renzo4000
  • Registratie: Juni 2001
  • Laatst online: 08-06 21:46
tismij schreef op zaterdag 3 juni 2023 @ 09:46:
Net airco geïnstalleerd met wifi module maar de play store geeft aan dat de smart m-air niet beschikbaar is in mijn regio.
Hoe hebben jullie de app op android geïnstalleerd?
Is gewoon beschikbaar in de playstore bij mij? https://play.google.com/s...d=jp.co.mhi_mth.smartmair

Anders even een losse apk downloaden via apkpure oid?

PVOUTPUT | 5400W | 15 PANELEN 360W ZUID 38° | ENPHASE ENVOY S | MICRO OMVORMERS 290W


  • tismij
  • Registratie: November 2003
  • Laatst online: 08-06 12:55
Opgelost, had op dat account US als land en dan doet ie het niet.
Ander account np.

It has always been the prerogative of children and fools to point out that the emperor has no clothes but the emperor remains the emperor and the fool is just a fool.


  • Frag1le
  • Registratie: Juni 2001
  • Laatst online: 08-06 20:53
oops

[Voor 99% gewijzigd door Frag1le op 08-06-2023 14:40]

MHI SRK 35 ZSX-WF

Pagina: 1 2 3 Laatste


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee