Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX
Wat @Gizz zegt.
Ik zou ook voor een wachtwoord gaan, gewoon omdat "security by design" ook voor ons hobbyisten opgaat.
Maar voor de volledigheid het antwoord op je vraag: Ja dat kan middels onderstaande code:
1
2
3
4
5
6
7
8
9
| esphome: on_boot: - lambda: |- id(my_ota).set_auth_password("New password"); ota: - platform: esphome id: my_ota password: "Old password" |
En ook dit komt uit de docu
[ Voor 15% gewijzigd door djkooij op 28-06-2024 17:05 ]
Hmm, misschien maar eens mijn password gelijk trekken dan. Volgens mij heb ik per device een password. Maar levert eigenlijk niks op natuurlijk (vs dus dezelfde voor allemaal).djkooij schreef op vrijdag 28 juni 2024 @ 17:04:
[...]
Wat @Gizz zegt.
Ik zou ook voor een wachtwoord gaan, gewoon omdat "security by design" ook voor ons hobbyisten opgaat.
Maar voor de volledigheid het antwoord op je vraag: Ja dat kan middels onderstaande code:
YAML:
1 2 3 4 5 6 7 8 9 esphome: on_boot: - lambda: |- id(my_ota).set_auth_password("New password"); ota: - platform: esphome id: my_ota password: "Old password"
En ook dit komt uit de docu
Absoluut geen ervaring met BLE client en al helemaal niet met zo'n macro waar je dat ook draait, maar is een BLE write wel MSB first? Probeer eens LSB first, dus:PTish schreef op donderdag 27 juni 2024 @ 20:16:
Eens kijken of iemand hier het antwoord heeft. Ik heb een verstelbaar bed met bluetooth verbinding. Ik wil die uiteindelijk aan kunnen sturen met HA. Als eerste test wil ik een lampje aan laten gaan. Ik heb daarom het bluetooth verkeer afgeluisterd en vervolgens met nRF connect een macro gemaakt, waarmee ik de lamp aan en uit kan laten gaan. Dit is de macro.
XML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <macro name="Light" icon="LED_ON"> <assert-service description="Ensure 62741523-52f9-8864-b1ab-3b3a8d65950b service" uuid="62741523-52f9-8864-b1ab-3b3a8d65950b"> <assert-characteristic description="Ensure 62741525-52f9-8864-b1ab-3b3a8d65950b characteristic" uuid="62741525-52f9-8864-b1ab-3b3a8d65950b"> <property name="WRITE" requirement="MANDATORY"/> </assert-characteristic> <assert-characteristic description="Ensure 62741625-52f9-8864-b1ab-3b3a8d65950b characteristic" uuid="62741625-52f9-8864-b1ab-3b3a8d65950b"> <property name="NOTIFY" requirement="MANDATORY"/> </assert-characteristic> </assert-service> <write description="Write 0x040200020000 to 62741525-52f9-8864-b1ab-3b3a8d65950b" characteristic-uuid="62741525-52f9-8864-b1ab-3b3a8d65950b" service-uuid="62741523-52f9-8864-b1ab-3b3a8d65950b" value="040200020000" type="WRITE_REQUEST"/> <wait-for-notification description="Wait for notification to 62741625-52f9-8864-b1ab-3b3a8d65950b" characteristic-uuid="62741625-52f9-8864-b1ab-3b3a8d65950b" service-uuid="62741523-52f9-8864-b1ab-3b3a8d65950b"> <assert-value description="Assert value equals 0x080B000200000402020000DFFFC202FFDFA884EF" value="080B000200000402020000DFFFC202FFDFA884EF"/> </wait-for-notification> <wait-for-notification description="Wait for notification to 62741625-52f9-8864-b1ab-3b3a8d65950b" characteristic-uuid="62741625-52f9-8864-b1ab-3b3a8d65950b" service-uuid="62741523-52f9-8864-b1ab-3b3a8d65950b"> <assert-value description="Assert value equals 0x080B000200000402020000DFFFC202FFDFA884EF" value="080B000200000402020000DFFFC202FFDFA884EF"/> </wait-for-notification> <write description="Write 0x040200020000 to 62741525-52f9-8864-b1ab-3b3a8d65950b" characteristic-uuid="62741525-52f9-8864-b1ab-3b3a8d65950b" service-uuid="62741523-52f9-8864-b1ab-3b3a8d65950b" value="040200020000" type="WRITE_REQUEST"/> <wait-for-notification description="Wait for notification to 62741625-52f9-8864-b1ab-3b3a8d65950b" characteristic-uuid="62741625-52f9-8864-b1ab-3b3a8d65950b" service-uuid="62741523-52f9-8864-b1ab-3b3a8d65950b"> <assert-value description="Assert value equals 0x080B000000000402020000DFFFC202FFDFA884EF" value="080B000000000402020000DFFFC202FFDFA884EF"/> </wait-for-notification> <wait-for-notification description="Wait for notification to 62741625-52f9-8864-b1ab-3b3a8d65950b" characteristic-uuid="62741625-52f9-8864-b1ab-3b3a8d65950b" service-uuid="62741523-52f9-8864-b1ab-3b3a8d65950b"> <assert-value description="Assert value equals 0x080B000000000402020000DFFFC202FFDFA884EF" value="080B000000000402020000DFFFC202FFDFA884EF"/> </wait-for-notification> </macro>
Dit is mijn ESPHome configuratie:
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 substitutions: name: ble-proxy-bed friendly_name: ble-proxy-bed #packages: # esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/m5stack-atom-lite.yaml@main esphome: name: ${name} name_add_mac_suffix: false friendly_name: ${friendly_name} min_version: 2024.6.0 project: name: esphome.bluetooth-proxy version: "1.0" esp32: board: m5stack-atom framework: type: esp-idf api: encryption: key: XXX wifi: ssid: !secret wifi_ssid password: !secret wifi_password manual_ip: static_ip: 192.168.2.190 gateway: 192.168.2.1 subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "ble-proxy-bed" password: "XXX" improv_serial: ota: - platform: esphome logger: captive_portal: bluetooth_proxy: active: true esp32_ble_tracker: scan_parameters: active: true binary_sensor: - platform: template name: "Bed Peter connection status" id: bed_peter_connection_status ble_client: - mac_address: D6:0F:22:57:42:83 id: bed_peter on_connect: then: - lambda: |- ESP_LOGD("ble_client_lambda", "Connected to BLE device"); - binary_sensor.template.publish: id: bed_peter_connection_status state: True on_disconnect: then: - lambda: |- ESP_LOGD("ble_client_lambda", "Disconnected from BLE device"); - binary_sensor.template.publish: id: bed_peter_connection_status state: False switch: - platform: template name: "Bed verlichting Peter" id: bed_verlichting_peter icon: "mdi:lightbulb-outline" optimistic: true turn_on_action: - ble_client.ble_write: id: bed_peter service_uuid: "62741523-52f9-8864-b1ab-3b3a8d65950b" characteristic_uuid: "62741525-52f9-8864-b1ab-3b3a8d65950b" value: [0x04, 0x02, 0x00, 0x02, 0x00, 0x00] turn_off_action: - ble_client.ble_write: id: bed_peter service_uuid: "62741523-52f9-8864-b1ab-3b3a8d65950b" characteristic_uuid: "62741525-52f9-8864-b1ab-3b3a8d65950b" value: [0x04, 0x02, 0x00, 0x02, 0x00, 0x00]
Als ik nu de lamp aandoe in Home Assistant, zie ik dat in ESPHome logs een write gebeurt.
code:
1 2 3 [20:11:18][D][switch:016]: 'Bed verlichting Peter' Turning ON. [20:11:18][D][switch:055]: 'Bed verlichting Peter': Sending state ON [20:11:18][D][esp32_ble_client:110]: [0] [D6:0F:22:57:42:83] ESP_GATTC_WRITE_CHAR_EVT
Toch gaat de lamp niet aan. Ik heb de hele config volgens mij 3x nagelopen. Ik heb ChatGPT gevraagd om de XML met de ESPHome configuratie te verifieren.
Iemand enig idee wat ik mis of fout doe? Zou het dan aan het bluetooth device kunnen liggen?
1
| value: [0x00, 0x00, 0x02, 0x00, 0x02, 0x04] |
Dank voor het meedenken. Helaas maakt het geen verschil.Septillion schreef op zaterdag 29 juni 2024 @ 14:58:
[...]
Absoluut geen ervaring met BLE client en al helemaal niet met zo'n macro waar je dat ook draait, maar is een BLE write wel MSB first? Probeer eens LSB first, dus:
YAML:
1 value: [0x00, 0x00, 0x02, 0x00, 0x02, 0x04]
Betreft de macro; Ik heb met nRF connect het bluetooth verkeer van mijn telefoon afgeluisterd. Vervolgens kan ik in diezelfde app het verkeer nabootsen door zelf een write te sturen. De stappen kun je opslaan als een macro en vervolgens exporteren als macro.
Ik heb chatGPT een vergelijking laten maken tussen de werkende macro en mijn ESPHome config. Die zegt dat het zou moeten werken. Ik denk dat het wellicht mijn bluetooth device (M5Stack Atom Lite) is. Anders weet ik het ook niet meer.
Is er een manier hoe ik dat kan testen?
Dit is mijn huidige 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
| esphome: name: igrill esp32: board: lolin32 framework: type: arduino # Enable logging logger: # Enable Home Assistant API api: ota: platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password external_components: - source: github://bendikwa/esphome-igrill@v1.2 esp32_ble_tracker: ble_client: - mac_address: 70:91:8F:7B:7E:65 id: igrill_pulse2k on_connect: then: - binary_sensor.template.publish: id: pulse2k_connection_bin state: ON on_disconnect: then: - binary_sensor.template.publish: id: pulse2k_connection_bin state: OFF sensor: - platform: igrill ble_client_id: igrill_pulse2k update_interval: 30s # default send_value_when_unplugged: true # default unplugged_probe_value: 0 # default temperature_probe1: name: "Weber Pulse 2000 temp probe 1" temperature_probe2: name: "Weber Pulse 2000 temp probe 2" temperature_probe3: name: "Weber Pulse 2000 temp probe 3" temperature_probe4: name: "Weber Pulse 2000 temp probe 4" pulse_heating_actual1: name: "Weber Pulse 2000 Left temp" pulse_heating_actual2: name: "Weber Pulse 2000 Right temp" pulse_heating_setpoint1: name: "Weber Pulse 2000 Left setpoint" pulse_heating_setpoint2: name: "Weber Pulse 2000 Right setpoint" binary_sensor: - platform: template name: "iGrill Pulse 2000 connection status" id: pulse2k_connection_bin device_class: connectivity entity_category: diagnostic |
[ Voor 173% gewijzigd door ChrisM op 01-07-2024 21:14 ]
Welke moet ik hiervoor nemen (op amazon?) en welke case?
Hebben jullie tips om dit in huis te verbergen? Mijn vrouw zal dit niet graag zien liggen vandaar
Nou ik heb de UPK2ESPhome geprobeerd hoor, maar dat levert de foutSeptillion schreef op woensdag 19 juni 2024 @ 12:32:
@bauk Dan eerst eens de flash downloaden inderdaad, daaruit kan je al veel halen met met UPK2ESPhome, onderdeel van ltchiptool.
Maar om ze aan te sturen zullen de ledjes op P16 moeten zitten en tot de volgende release zal je de ESPhome dev versie moeten pakken, alleen die kan pixels aansturen (maar alleen via P16). Op de XXL strip zitten ze ook op P16 dus kans is wel groot dat ze daar zitten.
Maar eerste ervaring met pixels op een BK chip met ESPhome is dat het wel werkt, effecten ook. Maar fades gaan nog een beetje houterig.
1
2
3
4
5
| The chosen device doesn't contain pin configuration. Possible causes: - it has vendor-specific firmware - it uses TuyaMCU (report error if that's the case!) |
Als ik de bin handmatig uitpak zie ik wel mooi twee goed gevulde json files (storage en user_param), maar als ik die inlees via upk2esphome dan gaat ie of zeggen geen pins gevonden of voorgaande fout...
Ik twijfel een beetje nu. Toch je lijn volgen en een led-strip achtige config op het ding zetten, en testen. Of met de pinnetjes pielen via de kickstart van esphome (wat prima werkt
[ Voor 8% gewijzigd door bauk op 03-07-2024 22:15 ]
Ik heb het tot nu geprobeerd via originele bin die ik via ttyusb gedownload heb. En ben nog bezig om het via kickstart te proberen. Alleen, de gui crashed op Mac (en dat is geen echt supported platform) . Moet kijken met een Linux vm om daarbinnen te proberen of ltchiptool dan niet crasht.Septillion schreef op woensdag 3 juli 2024 @ 23:02:
@bauk Probeer je het via de originele bin of via de ESP kickstarter?
Als de upk2esphome module ook aan te roepen is via cli, dan houd ik mij aanbevolen
edit: Een nachtje slapen doet wonderen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| bauke@Baukes-MBP ~ % ltchiptool plugin upk2esphome kickstart Enter URL (or IP address) of Kickstart dashboard: [?] Kickstart URL: 172.16.xx.xx Reading from 0x1FF800 [################################################################] 100% E: The chosen device doesn't contain pin configuration. Possible causes: - it has vendor-specific firmware - it uses TuyaMCU (report error if that's the case!) Auto-generating ESPHome YAML is not possible. bauke@Baukes-MBP ~ % |
Ofwel... toch maar rapporteren.... op GitHub, maar ga eerst eens kijken of er nog ergens een discord is dat kan helpen.
[ Voor 37% gewijzigd door bauk op 04-07-2024 08:04 ]
Yes, met ltchiptool.Septillion schreef op donderdag 4 juli 2024 @ 08:43:
@bauk De firmware ook met ltchiptool er vanaf gehaald?
Kan je anders de .bin eens delen?
Ik stuur bin even via PB als je 't niet erg vind, want volgens mij zitten mn wifi creds er nu in...
Mocht je hier nog issues mee hebben; ik heb net afgelopen maand mijn eigen rf433 via ESPhome draaiend. Het viel mij ook op dat er erg veel verstoringen/ruis was. Uiteindelijk bleek het aan mijn voeding te liggen. Had een goedkoop Action voeding aangesloten. Voor testen sloot ik hem aan op een powerbank en veel minder storing. Verder kwam mjn rf433 module zonder antenna, deze er zelf op gesoldeerd en heb ik deze zon 20 cm van de D1 mini die ik gebruik geplaatst.Stef012 schreef op woensdag 26 juni 2024 @ 12:25:
Vraagje over een RF module.
Ik probeer de code van de afstandbediening (433Mhz) uit te lezen. Zodat ik deze ook zelf zou kunnen aansturen......
Er worden wel rc signalen herkend, alleen lijken mij deze te lang.
De remotes die ik gebruik hebben een 3v knoopcell batterij en zeer onstabiel. Kon een paar dagen goed gaan en zo ineens niet meer. Na het aansluiten van een 5v powerbank hiermee geen problemen meer. Als vervanging remotes en schakelaars gekocht met een 23a en 27a model batterij, die doen het goed.
Ik heb er echt wel even mee lopen stoeien om het goed te krijgen. Uiteindelijk bleek dat ik met mijn Degalux zonneschermen het beste de dooya receiver (dump) en transmitter moet gebruiken. Zie ook linkje.reckik schreef op donderdag 4 juli 2024 @ 21:38:
[...]
Mocht je hier nog issues mee hebben; ik heb net afgelopen maand mijn eigen rf433 via ESPhome draaiend. Het viel mij ook op dat er erg veel verstoringen/ruis was. Uiteindelijk bleek het aan mijn voeding te liggen. Had een goedkoop Action voeding aangesloten. Voor testen sloot ik hem aan op een powerbank en veel minder storing. Verder kwam mjn rf433 module zonder antenna, deze er zelf op gesoldeerd en heb ik deze zon 20 cm van de D1 mini die ik gebruik geplaatst.
De remotes die ik gebruik hebben een 3v knoopcell batterij en zeer onstabiel. Kon een paar dagen goed gaan en zo ineens niet meer. Na het aansluiten van een 5v powerbank hiermee geen problemen meer. Als vervanging remotes en schakelaars gekocht met een 23a en 27a model batterij, die doen het goed.
Hiermee kreeg ik ineens een onwijs stabiele log tijdens het ontvangen.
Hierdoor weet ik exact welke knop als laatst gedrukt is, en hierdoor ook (ongeveer) de laatste stand. En kan ik erg nauwkeurig de schermen aansturen met de transmitter.
Ik heb een esp32-s2 en probeer een single wire uart (denk ik) protocol to hacken. Het gaat om een control pcb die een apparaat bestuurd. Ik heb via een logic analyzer al behoorlijk wat weten uit te vogelen en probeer nu via een ESP de eerste verbinding op te zetten. het lukt me om een gelijkwaardig signaal naar de datalijn te sturen maar het lukt me nog niet om de signalen via esphome in te lezen.
mijn eerste poging was de rx op de data lijn aan te sluiten, dan van rx naar tx een 4.7kOhm weerstand en de volgende config:
1
2
3
4
5
6
7
8
9
10
| uart: id: uart_bus tx_pin: number: GPIO17 inverted: true rx_pin: number: GPIO16 inverted: true baud_rate: 9200 debug: |
Met deze config gebeurde er niks. Als ik de tx direct op de data lijn aansluit krijg ik wel data op de lijn (uitgelezen via een logic analyzer).
Toen las ik ergens dat een ESP dat niet perse nodig heeft en dat je met interne pullup kan werken en dan moet de config er ongeveer zo uit zien:
1
2
3
4
5
6
7
8
9
10
11
12
13
| uart: id: uart_bus tx_pin: number: GPIO17 inverted: true mode: input: true pullup: true rx_pin: number: GPIO16 inverted: true baud_rate: 9200 debug: |
Maar eigenlijk wil ik eerst is werkend hebben dat mijn ESP data kan uitlezen, tot nog toe leest hij helemaal niks uit. de "debug:" zou dit toch moeten realiseren?
[ Voor 0% gewijzigd door Septillion op 08-07-2024 11:05 ]
You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.
[ Voor 11% gewijzigd door PheraX op 05-07-2024 19:08 ]
The ESPHome device ESP32 S3 Box 3 5a9c98 enabled transport encryption or changed the encryption key.
Please enter the updated key. You can find it in the ESPHome Dashboard or in your device configuration.
Door onkunde durf ik nu niet te gaan zitten kl@@ien.
Ik heb gekeken in de file editor bij ESPHOME maar die is nu helemaal leeg
Weet iemand waar ik die “encryption key” echt kan vinden.
Bij het terug zetten van een back-up krijg ik dezelfde fout en alles werkte gisteren nog perfect.👌
Bijvoorbaat dank 🙏
Ik kan nog in de bestanden van esphome komen !!AUijtdehaag schreef op vrijdag 5 juli 2024 @ 22:54:
@Gondelier
ik zou er dit even van maken:
YAML:
1 2 ota: - platform: esphome
@AUijtdehaag
Kun je nog bij je bestanden in esphome zelf?
De
ota:
- platform: esphome
moet deze in de esphome config
Dank
[ Voor 4% gewijzigd door Gondelier op 06-07-2024 00:21 ]
Oke, ik heb de ota in de devices in de esphome map erbij geschreven.
Echter hou ik nu nog twee, van de 5, vragen over voor een coderingssleutel ??
van de Atom Echo en de TTY10 Matrix.
Maar, alvast weer bedankt.
Ik ga deze twee opnieuw installeren 👍
Idd ik gebruikte voorheen geen ota password.
[ Voor 19% gewijzigd door Gondelier op 06-07-2024 11:55 ]
Ik heb een electrisch bedienbare garagedeur die ik, via een ESP32/ESPhome, heb gekoppeld aan Home Assistent. Dit werkt prima.
Omdat de garage nogal eens open bleef staan 's nachts heb ik een stukje code aan de ESPhome Yaml toegevoegd dat om 22:00 checkt of de garage dicht is. Zo niet dan verstuurt de code een notification naar mijn telefoon. Dit is de code die ik daarvoor gebruik:
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
| time: - platform: homeassistant id: CurrentTime on_time: # Every night at 22:00 - hours: 22 minutes: 0 seconds: 0 then: - if: condition: lambda: 'return id(endstop_closed).state;' then: - logger.log: level: INFO format: "Garage door closed at 22:00" else: - logger.log: level: INFO format: "Garage door open at 22:00" - homeassistant.service: service: notify.mobile_app_phone_xxxxx data: title: WARNING! message: "Garage is nog open" |
Ook deze code werkt zoals verwacht.
Als volgende stap leek het me handig om in de notificatie meteen een button te tonen waarmee de deur gesloten kan worden. Hiervoor wil ik "Actionable Notifications" gebruiken. Dit is mijn code die ik in plaats van bovenstaande code gebruik. De daadwerkelijke deursluiting heb ik voorlopig nog vervangen door het openen van de google webpage. Eerst dit maar eens laten werken.
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
| time: - platform: homeassistant id: CurrentTime on_time: # Every night at 22:00 - hours: 22 minutes: 0 seconds: 0 then: - if: condition: lambda: 'return id(endstop_closed).state;' then: - logger.log: level: INFO format: "Garage door closed at 22:00" else: - logger.log: level: INFO format: "Garage door open at 22:00" - homeassistant.service: service: notify.mobile_app_xxxxxx data: message: "Garage is nog open" data: actions: - action: "URI" title: "Sluiten" uri: "https://google.com" |
Maar ik krijg nu een compilatiefout op de regel met "actions:". De fout is "Must be string, got <class 'esphome.helpers.OrderedDict'>. did you forget putting quotes around the value?."
Maar er is geen stringfout. Er moet iets anders mis gaan, maar ik zie het niet meer.
Wie o wie kan mij helpen?
Los van het probleem, hoe wil je de actionable notification gaan afhandelen? Bij mijn weten kan ESPHome niet luisteren naar events / triggers in Home Assistant om daarop verder te gaan.Hermarcel schreef op zaterdag 6 juli 2024 @ 22:20:
Ik ben al een fors aantal uren bezig geweest met een probleem. Ik hoop dat iemand mij kan helpen want ik kom niet verder.
Ik heb een electrisch bedienbare garagedeur die ik, via een ESP32/ESPhome, heb gekoppeld aan Home Assistent. Dit werkt prima.
Omdat de garage nogal eens open bleef staan 's nachts heb ik een stukje code aan de ESPhome Yaml toegevoegd dat om 22:00 checkt of de garage dicht is. Zo niet dan verstuurt de code een notification naar mijn telefoon. Dit is de code die ik daarvoor gebruik:
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 time: - platform: homeassistant id: CurrentTime on_time: # Every night at 22:00 - hours: 22 minutes: 0 seconds: 0 then: - if: condition: lambda: 'return id(endstop_closed).state;' then: - logger.log: level: INFO format: "Garage door closed at 22:00" else: - logger.log: level: INFO format: "Garage door open at 22:00" - homeassistant.service: service: notify.mobile_app_phone_xxxxx data: title: WARNING! message: "Garage is nog open"
Ook deze code werkt zoals verwacht.
Als volgende stap leek het me handig om in de notificatie meteen een button te tonen waarmee de deur gesloten kan worden. Hiervoor wil ik "Actionable Notifications" gebruiken. Dit is mijn code die ik in plaats van bovenstaande code gebruik. De daadwerkelijke deursluiting heb ik voorlopig nog vervangen door het openen van de google webpage. Eerst dit maar eens laten werken.
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 time: - platform: homeassistant id: CurrentTime on_time: # Every night at 22:00 - hours: 22 minutes: 0 seconds: 0 then: - if: condition: lambda: 'return id(endstop_closed).state;' then: - logger.log: level: INFO format: "Garage door closed at 22:00" else: - logger.log: level: INFO format: "Garage door open at 22:00" - homeassistant.service: service: notify.mobile_app_xxxxxx data: message: "Garage is nog open" data: actions: - action: "URI" title: "Sluiten" uri: "https://google.com"
Maar ik krijg nu een compilatiefout op de regel met "actions:". De fout is "Must be string, got <class 'esphome.helpers.OrderedDict'>. did you forget putting quotes around the value?."
Maar er is geen stringfout. Er moet iets anders mis gaan, maar ik zie het niet meer.
Wie o wie kan mij helpen?
Ergo: persoonlijk zou ik dit niet in ESPHome doen maar in Home Assistant. Dus de open/closed exposen naar HA en daar een automation die om 22u checkt of de garagedeur nog open is, de notificatie stuurt, wacht op de (eventuele) bevestiging om te sluiten, en het sluiten aanroept.
En "alles lokaal op de ESP doen", waar ik an zich wel een voorstander van zou zijn, kan in dit geval sowieso niet doordat je dus al via HA de notificatie moet sturen etc. Als HA down is/zou zijn werkt het hele gebeuren toch al niet.
Hmm, ik hoopte alle code in één yaml file te kunnen houden. Ik had nog niet stilgestaan bij de afhandeling van de events. Ik zal een automation in Home Assistant aanmaken en het van daaruit proberen.
(wordt vervolgd)
Maar waar zag jij de JSON dan eigenlijk? Want er is ook zelf aardig wat aan af te leiden.
Heb je wel een GND tussen je device en de ESP gemaakt?
En is het device ook 3V3?
Inverted kan ik vooral van de P1 maar verder is dat niet zo gangbaar.
Welke "datalijn"?Met deze config gebeurde er niks. Als ik de tx direct op de data lijn aansluit krijg ik wel data op de lijn (uitgelezen via een logic analyzer).
En naast de logger heb je geen ander UART in gebruik toch?
Dat valt best tegen vond ik zelf, hieronder de user_param_key.json:Septillion schreef op maandag 8 juli 2024 @ 11:10:
@bauk Helaas, ook onder Windows krijg ik de foutmelding.
Maar waar zag jij de JSON dan eigenlijk? Want er is ook zelf aardig wat aan af te leiden.
De mosi zit op 16, dus beken_spi_led_strip kan dus aan. Verder heb ik getracht p22 te gebruiken als switch component. Maar helaas, de lampen gaan niet aan
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
| { "CS": 15, "Jsonver": "1.0.0", "SCL": 14, "aging": 1, "brightmax": 100, "brightmin": 10, "cagt": 20, "category": 1105, "cmod": 5, "colormax": 100, "colormaxp": 100, "colormin": 10, "colororder": 0, "colorpfun": 1, "cwmaxp": 100, "defbright": 100, "defcolor": "c", "deftemp": 100, "dmod": 11, "expowctrl_lv": 0, "expowctrl_pin": 22, "gmkb": 60, "gmkg": 60, "gmkr": 80, "gmwb": 75, "gmwg": 70, "gmwr": 100, "irfunc": 0, "keyfunc": 0, "lednum": 15, "miso": 17, "module": "CBU", "mosi": 16, "musicfunc": 0, "onoffmode": 1, "pmemory": 1, "prodagain": 0, "remdmode": 0, "rgbt": 10, "rstbr": 50, "rstcor": "c", "rstnum": 3, "rsttemp": 0, "title20": 1, "wfcfg": "prod", "wt": 20 |
Ik heb wel een cloudcutter profile kunnen maken, dus het moment dat ik een werkende esphome heb, kan ik die slinger die in onze tuin hangt losknippen
Het kan zijn dat er iets fundamenteels fout gaat hoor, want ik heb ook op mijn reguliere RGB strip dat ik het wit licht nog steeds niet (meer) aan krijg
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
| substitutions: device_description: DIY Flash LSC 5M Light String friendly_name: Party Slinger device_name: party-slinger esphome: name: ${device_name} comment: "${device_description}" bk72xx: board: generic-bk7231n-qfn32-tuya # Enable logging logger: baud_rate: 2000000 # The original firmware uses the same baud rate for log outputs hardware_uart: UART1 # Enable Home Assistant API api: encryption: key: !secret api_encryption ota: platform: esphome password: !secret ota_password id: my_ota wifi: networks: - ssid: !secret iot_ssid password: !secret iot_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: ${device_name} fallback password: !secret ota_password ap_timeout: 15s captive_portal: text_sensor: - platform: libretiny version: name: LibreTiny Version sensor: - platform: internal_temperature name: "Internal Temperature" - platform: uptime name: Uptime light: - platform: beken_spi_led_strip id: color_light name: "Color" pin: P16 chipset: WS2812 num_leds: 15 rgb_order: RGB effects: - pulse: - strobe: - flicker: - addressable_rainbow: - addressable_color_wipe: name: Nederlandse Vlag colors: - red: 100% green: 0% blue: 0% num_leds: 2 - red: 100% green: 100% blue: 100% num_leds: 2 - red: 0% green: 0% blue: 100% num_leds: 2 add_led_interval: 100ms reverse: false switch: - platform: gpio pin: P22 id: ctrl name: "ctrl" restore_mode: RESTORE_DEFAULT_OFF |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| alias: Garagedoor Notification - Still open at 22:00 description: "" trigger: - platform: time at: "22:00:00" condition: - condition: state entity_id: binary_sensor.garagedoor_endstop_closed state: "off" action: - service: notify.mobile_app_XXXXX data: message: Garage is nog open data: channel: alarm_stream ttl: 0 priority: high actions: - action: GaragedoorCloseDo title: Nu sluiten mode: single |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| alias: Garagedoor Event - Close from mobile description: "" trigger: - platform: event event_type: mobile_app_notification_action event_data: action: GaragedoorCloseDo condition: - condition: state entity_id: binary_sensor.garagedoor_endstop_closed state: "off" action: - service: cover.close_cover metadata: {} data: {} target: entity_id: cover.garagedoor_garage_door mode: single |
Het werkt maar het zijn mijn eerste automations dus ik vroeg me af of er nog iets te verbeteren was.
Yep, geen resultaat... Yaml ziet er dus goed uit? Is er een manier om nog wat uitgebreidere logging te te analyseren...?Septillion schreef op maandag 8 juli 2024 @ 13:57:
@bauk Heb je het zowel met de ctrl aan als ctrl uit geprobeerd?
Je kan het niveau van de logger aanpassen. Maar vraag me af hoe veel je er mee op schiet. Want lijkt me dus niet echt een probleem van de componenten maar eerder hoe het aangesloten zit. Dus of toch iets op een andere pin of nog wat extra nodig etc. En dat ga je alleen maar vinden door meten en/of reverse engineeren.
Eventueel zou je ze nog in een enkele automation kunnen zetten maar heeft verder geen andere voordelen dan een enkele automation hebben. Persoonlijk voeg ik dingen die hele sterke relatie hebben met elkaar graag samen in een enkele automation. Maar goed, als je dat wilt en/of hulp nodig hebt voor je automation dan moeten we even naar het HA topic
Met @Septillion. Ik zou het in 1 automation doen met een wait_for_trigger: op het eind van de bestaande.Hermarcel schreef op maandag 8 juli 2024 @ 14:19:
@RobertMe Ok, dit is het geworden:
YAML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 alias: Garagedoor Notification - Still open at 22:00 description: "" trigger: - platform: time at: "22:00:00" condition: - condition: state entity_id: binary_sensor.garagedoor_endstop_closed state: "off" action: - service: notify.mobile_app_XXXXX data: message: Garage is nog open data: channel: alarm_stream ttl: 0 priority: high actions: - action: GaragedoorCloseDo title: Nu sluiten mode: single
YAML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 alias: Garagedoor Event - Close from mobile description: "" trigger: - platform: event event_type: mobile_app_notification_action event_data: action: GaragedoorCloseDo condition: - condition: state entity_id: binary_sensor.garagedoor_endstop_closed state: "off" action: - service: cover.close_cover metadata: {} data: {} target: entity_id: cover.garagedoor_garage_door mode: single
Het werkt maar het zijn mijn eerste automations dus ik vroeg me af of er nog iets te verbeteren was.
Daarnaast zou je het ook zo kunnen maken dat de notification weer vanzelf verdwijnt als de deur gesloten is (stel je loopt zelf naar buiten en drukt op de knop). Maar dat zal wel een zeldzaamheid zijn.
Maar... dat is verder hier "inderdaad" nog al offtopic en past beter in het HA topic.
1
2
3
| wifi: ap: ap_timeout: 0 |
Maar nu zou ik graag op een andere manier het AP starten. De [url=https://esphome.io/components/wifi#configuration-variables[/] documentatie schrijft ook: "Can be disabled by setting this to 0s, which requires manually starting the AP by other means (eg: from a button press)". Helaas kan ik vervolgens niet vinden hoe je dit nu werkelijk doet. Iemand enig idee?
Na wat speurwerk in de espressif docu kwam ik dit draadje tegen.Septillion schreef op maandag 8 juli 2024 @ 17:44:
...Iemand enig idee?
Geen ervaring mee, maar na het lezen van de officiele docu en de inhoud van bovenstaande post zou je een stuk verder moeten komen hoop ik?
Wel bedankt
Leuke vraag. Ik ben ook eens gaan googlen... Ik kwam deze lambda tegen: geen idee of het wat oplevert?Septillion schreef op maandag 8 juli 2024 @ 17:44:
YAML:
1 2 3 wifi: ap: ap_timeout: 0
Iemand enig idee?
1
2
3
4
| Id: button on_press: - lambda: |- wifi_wificomponent->set_ap_timeout(10000); |
ziet er erg simpel uit, zou alleen wel iets lager timeoutje kiezen
Maar volgens mij wil je dan je captive portal aanzetten. Is dat ook niet via een lambda call te starten? De component heeft een start functie?
EDIT: interessant maar volgens mij ben ik iets te optimistisch, ik zat het zelf eens te testen, maar bij mij zeurt 'ie gelijk over het niet vinden van de juiste headers... Ik denk niet dat ik het goed genoeg snap

[ Voor 30% gewijzigd door bauk op 08-07-2024 22:31 ]
Dus misschien eens proberen met
1
2
3
4
5
6
| button: - platform: template name: "Start captive portal" on_press: - lambda: |- wifi_wificomponent->setup_ap_config_(); |
Maar dat wil ik wel even op een losse ESP testen voor ik een device brick
In alle eerlijkheid en waarschijnlijk naïviteit: een stuk code dat compilet tot een bin, en zeker met een trigger als een button... Leidt dat niet gewoon door een system freeze en kom je eruit door het uit en aan te zetten en de firmware terugzetten?
Ik wil graag de yaml uitbreiden met een instel mogelijkheid van de watertemperatuur.
Ik krijg tijdens het uploaden een fout, maar ik weet niet wat er mis gaat.
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
| number: - platform: template id: target_temp name: "Gewenste temperatuur" icon: mdi:home-thermometer min_value: 18 max_value: 33 step: 1 initial_value: 22 set_action: then: - lambda: |- id(water_temp_target_output) = true; output: - platform: modbus_controller modbus_controller_id: lg id: water_temp_target_output register_type: holding address: 2 value_type: U_WORD sensor: - platform: modbus_controller modbus_controller_id: lg name: "Doeltemp" id: doel_temp register_type: holding address: 2 state_class: measurement unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 skip_updates: 1 filters: - multiply: 0.1 ################################ /config/esphome/esp-wp-control.yaml:87:34: error: cannot convert 'bool' to 'esphome::modbus_controller::ModbusFloatOutput*' in assignment id(water_temp_target_output) = true; |
Graag wat hulp

[ Voor 0% gewijzigd door Septillion op 10-07-2024 16:06 ]
LG AWHP / ESPhome / GoodWe 4K-DT (5kWp) / Homewizard / Home Assistant
Geen ervaring mee. Maar ik neem aan dat je in de lambda toch sowieso niet "= true" wilt doen maar daar iets wilt doen met de (nieuwe) value van die number entity? En dat je dan uiteraard iets met een nummertje zult doen daar i.p.v. met een boolean.PeteSplit schreef op woensdag 10 juli 2024 @ 14:21:
Ik lees de modbus van mijn warmtepomp uit met een esp32.
Ik wil graag de yaml uitbreiden met een instel mogelijkheid van de watertemperatuur.
Ik krijg tijdens het uploaden een fout, maar ik weet niet wat er mis gaat.
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 number: - platform: template id: target_temp name: "Gewenste temperatuur" icon: mdi:home-thermometer min_value: 18 max_value: 33 step: 1 initial_value: 22 set_action: then: - lambda: |- id(water_temp_target_output) = true; output: - platform: modbus_controller modbus_controller_id: lg id: water_temp_target_output register_type: holding address: 2 value_type: U_WORD sensor: - platform: modbus_controller modbus_controller_id: lg name: "Doeltemp" id: doel_temp register_type: holding address: 2 state_class: measurement unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 skip_updates: 1 filters: - multiply: 0.1 ################################ /config/esphome/esp-wp-control.yaml:87:34: error: cannot convert 'bool' to 'esphome::modbus_controller::ModbusFloatOutput*' in assignment id(water_temp_target_output) = true;
Graag wat hulp
En daarnaast heb ik mijn twijfels bij "= ...", of dat niet een set achtige function call zou moeten zijn. Maar het kan natuurlijk ook dat "daar" de = operator is ge-overload of dat ESPHome dat al iets transformed in het omzetten van de YAML + ... naar daadwerkelijke C++ code.
1
2
3
4
| set_action: then: - lambda: |- return id(water_temp_target_output) |
LG AWHP / ESPhome / GoodWe 4K-DT (5kWp) / Homewizard / Home Assistant
Ja, inderdaad, maar het wil nog niet zo werken...Septillion schreef op woensdag 10 juli 2024 @ 19:03:
@PeteSplit Ben je dan niet gewoon op zoek naar een Modbus Controller Number?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| number: - platform: modbus_controller id: water_temp_target_output name: "Gewenste temperatuur" device_class: temperature unit_of_measurement: "°C" icon: mdi:home-thermometer min_value: 18 max_value: 33 step: 1 address: 2 value_type: U_WORD lambda: "return x * 0.1 ; " write_lambda: |- return x * 0.1 ; |
Ik heb nu bovenstaande geprobeerd, maar hij blijft de waarde terug zetten naar 15 (laagste waarde op de warmtepomp):
19:54:00 [D] [modbus.number:023]
Number new state : 15.00
19:54:00 [D] [number:012]
'Gewenste temperatuur': Sending state 15.000000
19:54:11 [D] [number:054]
'Gewenste temperatuur' - Setting number value
19:54:11 [D] [number:113]
New number value: 23.000000
19:54:11 [D] [modbus.number:061]
Updating register: connected Sensor=Gewenste temperatuur start address=0x2 register count=1 new value=23.00 (val=2.30)
19:54:11 [D] [number:012]
'Gewenste temperatuur': Sending state 23.000000
19:54:11 [D] [number:012]
'Gewenste temperatuur': Sending state 23.000000
19:54:20 [D] [modbus.number:023]
Number new state : 15.00
19:54:20 [D] [number:012]
'Gewenste temperatuur': Sending state 15.000000
LG AWHP / ESPhome / GoodWe 4K-DT (5kWp) / Homewizard / Home Assistant
Ja, dat is van een stooklijn.AUijtdehaag schreef op woensdag 10 juli 2024 @ 19:32:
Ik vermoed dat het hier een afgeleide van is
https://github.com/fonske...ain/LG_thermaV_logic.yaml
Ik probeer nu, of ik handmatig een temperatuur kan opgeven.
Dit omdat "de afgeleide" niet werkt bij koelen.
LG AWHP / ESPhome / GoodWe 4K-DT (5kWp) / Homewizard / Home Assistant
En zeker dus lambda eruit zodat het component gewoon zelf de waarde bij gaat houden.
Septillion schreef op woensdag 10 juli 2024 @ 20:38:
@PeteSplit Waarom ben je dan bezig gelijk met write_lambda? Als ik zo lees dan moet je een hoop meer zelf doen. Als het alleen voor de deling is zou je gewoon multiply: 0.1 kunnen doen.
En zeker dus lambda eruit zodat het component gewoon zelf de waarde bij gaat houden.
1
2
3
4
5
6
7
8
9
10
11
12
| number: - platform: modbus_controller id: water_temp_target_output name: "24 Gewenste temperatuur" unit_of_measurement: "°C" icon: mdi:home-thermometer min_value: 18 max_value: 33 step: 1 address: 2 value_type: U_WORD multiply: 10 |
Ik heb het nu werkend.
Dank je.
Ik had de lambda uit de handleiding...
[ Voor 8% gewijzigd door PeteSplit op 10-07-2024 21:41 ]
LG AWHP / ESPhome / GoodWe 4K-DT (5kWp) / Homewizard / Home Assistant
Het gaat om versie 2024.7.0b1
Ik heb even de breaking changes uit de changelog gefilterd, doe er je voordeel mee:
[dooya] Flip bit timings esphome#6947 by @jesserockz (breaking-change)
[modbus_text_sensor] new default ANSI encoding type esphome#6975 by @dudanov (breaking-change)
[micro_wake_word] Version 2 esphome#7032 by @kahrendt (breaking-change)
Zou het ook mogelijk zijn om alle entities in 1 custom template sensor te krijgen en die vervolgens door de webservier laten versturen als een verzamel json?
Ivm uitleesmogelijkheden via loxone.
Yup; pwnagotchi met pi-zero idem. Ik gebruik zelf de Charmast W2002P. Betaalbaar, dikke powerbank, en perfect voor laag gebruik._ferry_ schreef op zondag 3 maart 2024 @ 09:37:
Eens met hierboven.
Daarnaast zijn er powerbanks van bijvoorbeeld voltaic, welke continu 5v leveren. Niet het meest efficiënt of goedkoop, wel eenvoudig met USB kabeltje en klaar.
(Veel gewone powerbanks gaan uit als de stroom afname te laag is)
Ontwikkelaar van NPM library Gleamy
Het lijkt mij dat er een extern boardje nodig is die het signaal van de esp omzet in een var weerstand. Zeker met 10v kan dat niet direct op de esp - wie heeft hier ervaring mee?
Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB
nu wil ik in de webserver 2 sliders hebben waar ik de min temp en de max temp kan instellen
dat alles heb ik nu maar als ik de slider verschuif zie ik dat er een waarde wordt vertuurd
maar zover als ik zie veranderd de waarde in substitution niet
als ik google lijkt het er op dat ik nog iets van een actie moet toevoegen maar dat stuk begrijp ik niet
iemand enig idee wat ik mis en zo ja ook een link naar waar het van daan komt
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/unJgTJiKg09eWmBn9ytVg1OT.jpg?f=user_large)
~
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
| substitutions: temperature_threshold_low: "23" # At what temperature, in celcius, should the fan turn on to its minimum speed temperature_threshold_high: "35" # At what temperature, in celcius, should the fan turn on to its maximum speed minimum_fan_speed: "25" # What is the minimum fan speed, as a percentage esphome: name: ventilater-geregeld friendly_name: ventilater geregeld esp8266: board: esp07s # Enable logging logger: # Enable Home Assistant API api: encryption: key: "82PVyIVnOnJUOU97kggtlNat8Hhjhp3j5Y6ZlwyAHTA=" ota: - platform: esphome password: "8d3a93bae745e6b510b2432facb25905" wifi: ssid: !secret wifi_ssid password: !secret wifi_password manual_ip: # Set this to the IP of the ESP static_ip: 192.168.1.42 # Set this to the IP address of the router. Often ends with .1 gateway: 192.168.1.1 # The subnet of the network. 255.255.255.0 works for most home networks. subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Ventilater-Geregeld" password: "txQWFmnJ6Ofa" captive_portal: web_server: port: 80 version: 2 include_internal: true i2c: sda: GPIO04 scl: GPIO05 scan: true sensor: - platform: bme280_i2c temperature: id: BME280_Temperature name: "BME280 Temperatuur" on_value: then: - script.execute: set_fan_state pressure: name: "BME280 Pressure" humidity: name: "BME280 Humidity" address: 0x76 update_interval: 30s - platform: emc2101 internal_temperature: id: internal_temperature_sensor name: "Internal Temperature Sensor" speed: id: speed_sensor name: "Speed Sensor" duty_cycle: id: duty_cycle_sensor name: "Duty Cycle Sensor" update_interval: 5s - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB name: "WiFi Signal dB" id: wifi_signal_db update_interval: 60s entity_category: "diagnostic" - platform: copy # Reports the WiFi signal strength in % source_id: wifi_signal_db name: "WiFi Signal Percent" filters: - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0); unit_of_measurement: "Signal %" entity_category: "diagnostic" device_class: "" emc2101: pwm: resolution: 8 output: - platform: emc2101 id: fan_duty_cycle fan: - platform: speed output: fan_duty_cycle id: test_fan name: "test fan" speed_count: 100 button: - platform: restart name: herstart test fan script: - id: set_fan_state then: - if: condition: lambda: |- return id(BME280_Temperature).state < id(${temperature_threshold_low}); then: - fan.turn_off: test_fan else: - fan.turn_on: id: test_fan speed: !lambda |- if (id(BME280_Temperature).state >= id(${temperature_threshold_high})) { // Over upper threshold, fan speed at maximum ESP_LOGD("Fan speed calc", "Temperature is above or equal to upper threshold so setting to max"); return 100; } else { float calc_speed = ((100-id(${minimum_fan_speed})) / (id(${temperature_threshold_high})-id(${temperature_threshold_low})))*(id(BME280_Temperature).state-id(${temperature_threshold_low}))+id(${minimum_fan_speed}); ESP_LOGD("Fan speed calc", "calculated speed = %f", calc_speed); return calc_speed; } number: - platform: template name: "temperature_threshold_low" id: temperature_threshold_low optimistic: true min_value: 15 max_value: 35 step: 1 initial_value: 23.0 restore_value: True - platform: template name: "temperature_threshold_high" id: temperature_threshold_high optimistic: true min_value: 20 max_value: 50 step: 1 initial_value: 35.0 restore_value: True ~ |
[ Voor 7% gewijzigd door vonkkie op 16-07-2024 13:13 ]
Voor het laatste in het verleden wel eens eens gebruik gemaakt van PWM en dan een low-pass filter (100k + 100nF) erachter en die dan een opamp'je (LM358) in die van 3V3 naar de 10V ging.
Hier is een link met wat ik wil bereiken. Alle entity waarden in 1 json
https://stackoverflow.com...-sensor-values-in-esphome
Kan ik dat op dezelfde pagina krijgen als de webserver nu al doet?
Dus http://clack.local/sensor/water_meter
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/fL4DwN5uCHkpuA4QmaSywdG4.jpg?f=user_large)
Deze is je wel bekend denk ik
https://esphome.io/web-api/index.html#rest-api
Als het kan via ESPhome direkt, zodat loxone daar weer uit kan lezen. Home assistant komt er niet tussen.
Ipv de substitutions wil je dus gewoon de waarde van je number gebruiken. Je substitution is dus hoogstends de default van je numbers.
Dus bijvoorbeeld ipv
1
| return id(BME280_Temperature).state < id(${temperature_threshold_low}); |
(wat dus niet correct is at je vraagt nu simpelweg om id("23").)
Maar:
1
| return id(BME280_Temperature).state < id(temperature_threshold_low).state; |
Verder zou ik de numbers niet optimistic maken.
Doordat ik met een losse pomp draai, die niet zelf aanzuigt, al een paar keer gehad door een haperende vlotter in ze zuigleiding geen water verpompt werd. Dit kan schadelijk zijn voor de pomp.
Om dat ik geen goede flow schakelaar kon vinden (voor 1”) heb ik een dompel buis geplaatst met daarin een Dallas temperatuur opnemer om zo de water temperatuur te meten van de aanvoer. En als er geen flow is de pomp vroegtijdig uit te schakelen.
Normaal is het immers zo dat als de pomp draait de water temperatuur zakt, mits de temperatuur van het water niet gelijk is aan de omgeving temperatuur.
Nu wil ik de temperatuur variaties detecteren. Liefste op de esp. Maar krijg niet gevonden wat het beste is om te doen.
In HA heb ik een binaire trend sensor gemaakt en die laat het redelijk zien. Maar hoe zo iets te maken in esphome?
Of is het beter om dit via HA te doen?
https://www.amazon.nl/dp/..._pop_dt_b_product_detailsThe Fatal schreef op dinsdag 16 juli 2024 @ 15:56:
Ben een beetje aan het stoeien geweest met de sprinkler configuratie zoals op esphome website staat. Dat werkt allemaal al een tijdje prima.
Doordat ik met een losse pomp draai, die niet zelf aanzuigt, al een paar keer gehad door een haperende vlotter in ze zuigleiding geen water verpompt werd. Dit kan schadelijk zijn voor de pomp.
Om dat ik geen goede flow schakelaar kon vinden (voor 1”)
In een t-stuk schroeven.heb ik een dompel buis geplaatst met daarin een Dallas temperatuur opnemer om zo de water temperatuur te meten van de aanvoer. En als er geen flow is de pomp vroegtijdig uit te schakelen.
Normaal is het immers zo dat als de pomp draait de water temperatuur zakt, mits de temperatuur van het water niet gelijk is aan de omgeving temperatuur.
Nu wil ik de temperatuur variaties detecteren. Liefste op de esp. Maar krijg niet gevonden wat het beste is om te doen.
In HA heb ik een binaire trend sensor gemaakt en die laat het redelijk zien. Maar hoe zo iets te maken in esphome?
Of is het beter om dit via HA te doen?
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler.
Mijn kennis is niet voldoende om jou opmerking te begrijpenSeptillion schreef op dinsdag 16 juli 2024 @ 13:33:
@vonkkie Substitutions kunnen niet aangepast worden. Dat is puur een copy-past.
Ipv de substitutions wil je dus gewoon de waarde van je number gebruiken. Je substitution is dus hoogstends de default van je numbers.
Dus bijvoorbeeld ipv
C++:
1 return id(BME280_Temperature).state < id(${temperature_threshold_low});
(wat dus niet correct is at je vraagt nu simpelweg om id("23").)
Maar:
C++:
1 return id(BME280_Temperature).state < id(temperature_threshold_low).state;
Verder zou ik de numbers niet optimistic maken.
ik heb dit uit diverse dingen bij eengezocht
is de eerste poging om dit toe tepassen
Deze had ik nog niet gevonden. Was te gefocust op trending dat ik niet aan lopend gemiddelde had gedacht.Septillion schreef op dinsdag 16 juli 2024 @ 16:16:
@The Fatal Je zou zowel naar de instantane sensor waarde kunnen kijken als naar de waarde van een sliding average. Daaruit kan je dan wel opmaken of er opeens verschillen zijn
Beste blijft denk ik om de detectie lokaal af te vangen in de zin van eigen beveiliging.
HA automatisering blijft meer netwerk afhankelijk.
Zit allemaal al in t-stuk. Krijg goede metingen etc. Kan precies zien wanneer de pomp draait aan de hand van de temperatuurSeafarer schreef op dinsdag 16 juli 2024 @ 18:09:
[...]
https://www.amazon.nl/dp/..._pop_dt_b_product_details
[...]
In een t-stuk schroeven.
Zal eens kijken naar die flow switch. Dat blijft de beste onafhankelijke oplossing.
Maar om dingen te bewaren kan je dus gewoon een number gebruiken zoals je ook aangemaakt hebt. Alleen heb je het number toevallig / verwarrend dezelfde naam als je substitution gegeven. Maar het zijn twee zaken!
Dus waar je nu dus de substitution aan roept (met ${iets}) wil je dus gewoon de state van je nummer gebruiken. En die haal je op met id(id_van_je_nummer).state.
Dus dan wordt het iets als:
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
| substitutions: default_temperature_threshold_low: "23" # At what temperature, in celcius, should the fan turn on to its minimum speed default_temperature_threshold_high: "35" # At what temperature, in celcius, should the fan turn on to its maximum speed minimum_fan_speed: "25" # What is the minimum fan speed, as a percentage esphome: name: ventilater-geregeld friendly_name: ventilater geregeld esp8266: board: esp07s # Enable logging logger: # Enable Home Assistant API api: encryption: key: "82PVyIVnOnJUOU97kggtlNat8Hhjhp3j5Y6ZlwyAHTA=" ota: - platform: esphome password: "8d3a93bae745e6b510b2432facb25905" wifi: ssid: !secret wifi_ssid password: !secret wifi_password manual_ip: # Set this to the IP of the ESP static_ip: 192.168.1.42 # Set this to the IP address of the router. Often ends with .1 gateway: 192.168.1.1 # The subnet of the network. 255.255.255.0 works for most home networks. subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Ventilater-Geregeld" password: "txQWFmnJ6Ofa" captive_portal: web_server: port: 80 version: 2 include_internal: true i2c: sda: GPIO04 scl: GPIO05 scan: true sensor: - platform: bme280_i2c temperature: id: BME280_Temperature name: "BME280 Temperatuur" on_value: then: - script.execute: set_fan_state pressure: name: "BME280 Pressure" humidity: name: "BME280 Humidity" address: 0x76 update_interval: 30s - platform: emc2101 internal_temperature: id: internal_temperature_sensor name: "Internal Temperature Sensor" speed: id: speed_sensor name: "Speed Sensor" duty_cycle: id: duty_cycle_sensor name: "Duty Cycle Sensor" update_interval: 5s - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB name: "WiFi Signal dB" id: wifi_signal_db update_interval: 60s entity_category: "diagnostic" - platform: copy # Reports the WiFi signal strength in % source_id: wifi_signal_db name: "WiFi Signal Percent" filters: - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0); unit_of_measurement: "Signal %" entity_category: "diagnostic" device_class: "" emc2101: pwm: resolution: 8 output: - platform: emc2101 id: fan_duty_cycle fan: - platform: speed output: fan_duty_cycle id: test_fan name: "test fan" speed_count: 100 button: - platform: restart name: herstart test fan script: - id: set_fan_state then: - if: condition: lambda: |- return id(BME280_Temperature).state < id(temperature_threshold_low).state; then: - fan.turn_off: test_fan else: - fan.turn_on: id: test_fan speed: !lambda |- if (id(BME280_Temperature).state >= id(temperature_threshold_high).state ) { // Over upper threshold, fan speed at maximum ESP_LOGD("Fan speed calc", "Temperature is above or equal to upper threshold so setting to max"); return 100; } else { float calc_speed = ((100 - id(${minimum_fan_speed})) / (id(temperature_threshold_high).state - id(temperature_threshold_low).state )) * (id(BME280_Temperature).state - id(temperature_threshold_low).state ) + id(${minimum_fan_speed}); ESP_LOGD("Fan speed calc", "calculated speed = %f", calc_speed); return calc_speed; } number: - platform: template name: Temperature threshold low id: temperature_threshold_low optimistic: true min_value: 15 max_value: 35 step: 1 initial_value: ${default_temperature_threshold_low} restore_value: True - platform: template name: Temperature threshold high id: temperature_threshold_high optimistic: true min_value: 20 max_value: 50 step: 1 initial_value: ${default_temperature_threshold_high} restore_value: True |
Voor optimistic: true was ik wel fout, ik dacht dat het bij een template number niet nodig was. Maar toch wel.
krijg dan deze fout meldingSeptillion schreef op dinsdag 16 juli 2024 @ 19:35:
@vonkkie De substitution is niets meer dan een find and replace tijdens compileren. Dus waar jij schrijft id(${temperature_threshold_low}) zal dat na de find and repalce dus gewoon id(23) geworden zijn. Pas daarna wordt er naar het programma gekeken. De substitution kan dus helemaal geen andere waarde krijgen maar is puur bedoelt om op één plek, waarshcijnlijk bovenaan, in je config wat in te kunnen vullen.
Maar om dingen te bewaren kan je dus gewoon een number gebruiken zoals je ook aangemaakt hebt. Alleen heb je het number toevallig / verwarrend dezelfde naam als je substitution gegeven. Maar het zijn twee zaken!
Dus waar je nu dus de substitution aan roept (met ${iets}) wil je dus gewoon de state van je nummer gebruiken. En die haal je op met id(id_van_je_nummer).state.
Dus dan wordt het iets als:
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 substitutions: default_temperature_threshold_low: "23" # At what temperature, in celcius, should the fan turn on to its minimum speed default_temperature_threshold_high: "35" # At what temperature, in celcius, should the fan turn on to its maximum speed minimum_fan_speed: "25" # What is the minimum fan speed, as a percentage esphome: name: ventilater-geregeld friendly_name: ventilater geregeld esp8266: board: esp07s # Enable logging logger: # Enable Home Assistant API api: encryption: key: "82PVyIVnOnJUOU97kggtlNat8Hhjhp3j5Y6ZlwyAHTA=" ota: - platform: esphome password: "8d3a93bae745e6b510b2432facb25905" wifi: ssid: !secret wifi_ssid password: !secret wifi_password manual_ip: # Set this to the IP of the ESP static_ip: 192.168.1.42 # Set this to the IP address of the router. Often ends with .1 gateway: 192.168.1.1 # The subnet of the network. 255.255.255.0 works for most home networks. subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Ventilater-Geregeld" password: "txQWFmnJ6Ofa" captive_portal: web_server: port: 80 version: 2 include_internal: true i2c: sda: GPIO04 scl: GPIO05 scan: true sensor: - platform: bme280_i2c temperature: id: BME280_Temperature name: "BME280 Temperatuur" on_value: then: - script.execute: set_fan_state pressure: name: "BME280 Pressure" humidity: name: "BME280 Humidity" address: 0x76 update_interval: 30s - platform: emc2101 internal_temperature: id: internal_temperature_sensor name: "Internal Temperature Sensor" speed: id: speed_sensor name: "Speed Sensor" duty_cycle: id: duty_cycle_sensor name: "Duty Cycle Sensor" update_interval: 5s - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB name: "WiFi Signal dB" id: wifi_signal_db update_interval: 60s entity_category: "diagnostic" - platform: copy # Reports the WiFi signal strength in % source_id: wifi_signal_db name: "WiFi Signal Percent" filters: - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0); unit_of_measurement: "Signal %" entity_category: "diagnostic" device_class: "" emc2101: pwm: resolution: 8 output: - platform: emc2101 id: fan_duty_cycle fan: - platform: speed output: fan_duty_cycle id: test_fan name: "test fan" speed_count: 100 button: - platform: restart name: herstart test fan script: - id: set_fan_state then: - if: condition: lambda: |- return id(BME280_Temperature).state < id(temperature_threshold_low).state; then: - fan.turn_off: test_fan else: - fan.turn_on: id: test_fan speed: !lambda |- if (id(BME280_Temperature).state >= id(temperature_threshold_high).state ) { // Over upper threshold, fan speed at maximum ESP_LOGD("Fan speed calc", "Temperature is above or equal to upper threshold so setting to max"); return 100; } else { float calc_speed = ((100 - id(${minimum_fan_speed})) / (id(temperature_threshold_high).state - id(temperature_threshold_low).state )) * (id(BME280_Temperature).state - id(temperature_threshold_low).state ) + id(${minimum_fan_speed}); ESP_LOGD("Fan speed calc", "calculated speed = %f", calc_speed); return calc_speed; } number: - platform: template name: Temperature threshold low id: temperature_threshold_low min_value: 15 max_value: 35 step: 1 initial_value: ${default_temperature_threshold_low} restore_value: True - platform: template name: Temperature threshold high id: temperature_threshold_high optimistic: true min_value: 20 max_value: 50 step: 1 initial_value: ${default_temperature_threshold_high} restore_value: True
Voor optimistic: true was ik wel fout, ik dacht dat het bij een template number niet nodig was. Maar toch wel.
:fill(white):strip_exif()/f/image/yhVsmE8CtBDIZcuqaLIjxmHW.png?f=user_large)
Verder niet getest op werking natuurlijk.
weet niet wie van ons het fout had gedaan maar met jou wijzigingen werkt het nu zoals ik het bedacht hadSeptillion schreef op dinsdag 16 juli 2024 @ 20:40:
@vonkkie Denk dat ik (of jij) een copy past foutje gemaakt heb. Ik heb de code even opnieuw geplakt zoals hij bij mij foutloos compiled.
Verder niet getest op werking natuurlijk.
Zeer bedankt
ga nu eens bestuderen of ik kan begrijpen wat jij anders hebt gedaan waardoor het nu wel werkt
Meerdere malen alle software verwijdert van het apparaat en uit directory ESPHOME en opnieuw geïnstalleerd en ook ota: geïnstalleerd maar niets helpt !!
a) Bij de M5 STACK ATOM ECHO
[14:45:46][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[14:45:46][D][esp32.preferences:114]: Saving 1 preferences to flash...
[14:45:46][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[14:45:48][D][api:102]: Accepted 192.168.178.36
[14:45:48][W][api.connection:107]: : Reading failed: BAD_INDICATOR errno=11
[14:46:48][D][api:102]: Accepted 192.168.178.36
[14:46:48][W][api.connection:107]: : Reading failed: BAD_INDICATOR errno=11
[14:47:48][D][api:102]: Accepted 192.168.178.36
[14:47:48][W][api.connection:107]: : Reading failed: BAD_INDICATOR errno=11
[14:48:48][D][api:102]: Accepted 192.168.178.36
[14:48:48][W][api.connection:107]: : Reading failed: BAD_INDICATOR errno=11
Wie wil mij helpen ??
Dank voor je snelle reactie @Septillion , API dacht ik ook maar bij installeren API -> API copieren en via File editor kom ik bijde dezelfde tegen. Dus dat zou toch goed moeten zSeptillion schreef op donderdag 25 juli 2024 @ 15:15:
@Gondelier Als ik daar naar zoek zie ik zaken met de API key. Wat heb je daarvoor opgegeven?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| substitutions: name: m5stack-atom-echo-10cb7c friendly_name: M5Stack Atom Echo packages: m5stack.atom-echo-voice-assistant: github://esphome/firmware/voice-assistant/m5stack-atom-echo.adopted.yaml@main esphome: name: ${name} name_add_mac_suffix: false friendly_name: ${friendly_name} api: encryption: key: jglNuYo4C50geO6LjHkHs6Opo8vpkJM ota: - platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password |
[ Voor 0% gewijzigd door Septillion op 25-07-2024 15:55 . Reden: Fix ]
Misschien dat in het verleden hier maar een deel van gebruikt werd ofzo en dat dit nu strikter of anders gebeurd. Ik zou dus eens een nieuwe goede key proberen, deze kan je in de documentatie random maken. Je zou ook een enkele key in je secrets kunnen zetten en deze op alle devices gebruiken.
[ Voor 53% gewijzigd door Septillion op 25-07-2024 15:51 ]
Allemaal na de ESPHOME Update. Wat mij ook opgevallen is dat er een WEB-ESPHOME pagina is toegevoegd in de ESPHOME map.
Het is een goed idee om een centrale secret aan te maken, die dan te gebruiken is net als de WiFi voor alle apparaten zoals door @Gizz hier al eerder omschreven.
In de configuratie van het device
1
2
3
| ota: - platform: esphome password: !secret ota_password |
secrets.yaml
1
2
3
| wifi_ssid: "JayPesNetwerk" wifi_password: "supergeheimwachtwoord" ota_password: "andersupergeheimwachtwoord" |
Wat is dan toch nog de beste oplossing,
gewoon alles radicaal uit esphome DE-installeren en opnieuw installeren (4stuks)
of alleen nieuwe verwijzingen in de devices aanbrengen ??
Alvast hartelijk dank.
[ Voor 1% gewijzigd door Septillion op 25-07-2024 17:25 . Reden: Denk aan de 'yaml' bij de code tags aub! Zie topic warning en hoe deze post is aangepast. ]
Voor OTA moet je wat meer doen, die niet zomaar in de yaml aanpassen want dan zal OTA falen.
Maar goed, als ze nu niet werken dan zal ik wel alle API keys aanpassen ja.
@SeptillionSeptillion schreef op donderdag 25 juli 2024 @ 17:31:
@Gondelier Als je de API key aanpast moet je ze opnieuw toevoegen in HA. Zal HA dan wel om vragen.
Voor OTA moet je wat meer doen, die niet zomaar in de yaml aanpassen want dan zal OTA falen.
Maar goed, als ze nu niet werken dan zal ik wel alle API keys aanpassen ja.
Ik heb de API keys aangepast en ze opnieuw toegevoegd in HA en het werkt weer.
Bedankt voor je hulp
[ Voor 3% gewijzigd door Gondelier op 27-07-2024 13:26 ]
Ik dit dit bordje: https://www.tinytronics.n...-met-18650-batterijhouder
Nu wil ik weten wat de voltage van de batterij is om te bepalen of deze leeg is of niet. Dit zou volgens mij pin 35 moeten zijn?
1
2
3
4
5
| sensor: - platform: adc pin: 35 name: "Batterij" update_interval: 1s |
Nu krijg ik alleen een waarde van 1.04 V wat niet juist is...??
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Thanks. Nu kijken hoe ik dat ding zo min mogelijk kan laten gebruiken aan energie. Heb sensor al op 30 minuten deep-sleep gezet. Iemand nog ideeen?
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Ik denk dat je nog de attenuation in moet stellen:Toppe schreef op dinsdag 30 juli 2024 @ 14:13:
Iemand die mij een duwtje de juiste kan op kan geven?
Ik dit dit bordje: https://www.tinytronics.n...-met-18650-batterijhouder
Nu wil ik weten wat de voltage van de batterij is om te bepalen of deze leeg is of niet. Dit zou volgens mij pin 35 moeten zijn?
code:
1 2 3 4 5 sensor: - platform: adc pin: 35 name: "Batterij" update_interval: 1s
Nu krijg ik alleen een waarde van 1.04 V wat niet juist is...??
Daarnaast moet je nog omrekenen want er wordt een voltage divider gebruikt:On the ESP32 the voltage measured with the ADC caps out at ~1.1V by default as the sensing range (attenuation of the ADC) is set to 0db by default. Measuring higher voltages requires setting attenuation to one of the following values: 0db, 2.5db, 6db, 11db. There’s more information at the manufacturer’s website.
Versie 3.0 van dit board gebruikt twee weerstanden van 100K (spanningsdeler) voor het meten van de batterijspannig via pin 35.
/f/image/ez9gFu65sVLVX2He6peFBf0G.png?f=fotoalbum_large)
Ik heb er wel eens mee gespeeld ooit. Dat was met een esp8266. (kale esp, geen wemos boardje omdat de serial-usb chip die daar op zit flink stroom bleef gebruiken ondanks deep sleep. weet niet of dat bij jouw bordje ook het geval is, meten = weten)Toppe schreef op dinsdag 30 juli 2024 @ 16:23:
[...]
Thanks. Nu kijken hoe ik dat ding zo min mogelijk kan laten gebruiken aan energie. Heb sensor al op 30 minuten deep-sleep gezet. Iemand nog ideeen?
Zie u_nix_we_all in "Het grote ESP topic"
De tips;
- mqtt is veel sneller dan wachten op HA api verbinding.
- Zodra je mqtt connected is kun je je sensor(s) uitlezen, en meteen weer in deep sleep gaan (niet wachten op je sensor update interval).Wel heel even wachten om je sensoren de tijd te geven hun meting te doen en door te sturen
- Zorg voor een OTA mogelijkheid, zoals in de gelinkte post dmv een MQTT bericht wat de deep sleep uitzet.
Mogelijk moet je voor esp32 e.e.a aanpassen ivm de sleep modes die daar ondersteund worden?
En btw, is dit niet meer iets voor Het grote ESPhome topic?
You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.
Ik heb een e-paper display welke ook met een esp32 aangedreven wordt.Toppe schreef op dinsdag 30 juli 2024 @ 16:23:
[...]
Thanks. Nu kijken hoe ik dat ding zo min mogelijk kan laten gebruiken aan energie. Heb sensor al op 30 minuten deep-sleep gezet. Iemand nog ideeen?
Deze haalt elk uur gegevens op uit Home Assistant en update het e-ink scherm, daarna gaat hij weer een uur naar deep sleep ('s nachts slaapt hij zo'n 8 uur).
Deze draait met gemak een half jaar op een 3700 mAh LIPO accu.
Source: https://github.com/jeroen...lay/blob/main/epaper.yaml
Is een update interval van 1 uur niet erg lang (/traag)? Ligt natuurlijk een beetje aan wat je er op zet etc. Maar ik vind dat nogal lang. En als je er bv elke 5 minuten van maakt zit je al op / 12 en met "met gemak een half jaar" kom je dat op zeg elke maand uit. Alhoewel ook dan vast trucjes mogelijk zijn. Hang er bv een PIR aan die hem uit deep sleep haalt en dan regelmatig update, ben je weg dan weer een langer (tot oneindig?) interval hanteren.jj85 schreef op dinsdag 30 juli 2024 @ 18:36:
[...]
Ik heb een e-paper display welke ook met een esp32 aangedreven wordt.
Deze haalt elk uur gegevens op uit Home Assistant en update het e-ink scherm, daarna gaat hij weer een uur naar deep sleep ('s nachts slaapt hij zo'n 8 uur).
Deze draait met gemak een half jaar op een 3700 mAh LIPO accu.
Source: https://github.com/jeroen...lay/blob/main/epaper.yaml
De informatie is gedurende de dag vrij 'stabiel', dus in deze toepassing is een uur meer dan prima.RobertMe schreef op dinsdag 30 juli 2024 @ 19:07:
[...]
Is een update interval van 1 uur niet erg lang (/traag)? Ligt natuurlijk een beetje aan wat je er op zet etc. Maar ik vind dat nogal lang. En als je er bv elke 5 minuten van maakt zit je al op / 12 en met "met gemak een half jaar" kom je dat op zeg elke maand uit. Alhoewel ook dan vast trucjes mogelijk zijn. Hang er bv een PIR aan die hem uit deep sleep haalt en dan regelmatig update, ben je weg dan weer een langer (tot oneindig?) interval hanteren.
:strip_exif()/f/image/Li06Ma3X5eVwT4JVHNN5nWRx.jpg?f=fotoalbum_large)
Jup, dat idee had ik al op basis van de yaml. Alleen de weersverwachting kan eens veranderen, maar dan is een uur ook wel te doen.jj85 schreef op dinsdag 30 juli 2024 @ 19:12:
[...]
De informatie is gedurende de dag vrij 'stabiel', dus in deze toepassing is een uur meer dan prima.![]()
[Afbeelding]
Het gaat bij mij om één sensor en dat is een temperatuur sensor voor het zwembad. Voor nu een DS18B20 met de module zelf in eeen pvc buis gepropt en waterdicht gemaakt.jj85 schreef op dinsdag 30 juli 2024 @ 18:36:
[...]
Ik heb een e-paper display welke ook met een esp32 aangedreven wordt.
Deze haalt elk uur gegevens op uit Home Assistant en update het e-ink scherm, daarna gaat hij weer een uur naar deep sleep ('s nachts slaapt hij zo'n 8 uur).
Deze draait met gemak een half jaar op een 3700 mAh LIPO accu.
Source: https://github.com/jeroen...lay/blob/main/epaper.yaml
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
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
| substitutions: device_name: "woonkamer-co2" human_devicename: "woonkamer-co2" device_description: "10.0.0.55" esphome: name: ${device_name} comment: ${device_description} esp32: board: esp32-c3-devkitm-1 framework: type: arduino # Enable logging logger: # Enable Home Assistant API api: encryption: key: "xxx" ota: - platform: esphome password: "xxx" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Woonkamer-Co2 Fallback Hotspot" password: "eFoJug2Pp2TZ" manual_ip: static_ip: 10.0.0.55 gateway: 10.0.0.1 subnet: 255.255.255.0 captive_portal: web_server: port: 80 uart: rx_pin: GPIO20 tx_pin: GPIO21 baud_rate: 9600 sensor: - platform: mhz19 co2: name: "Woonkamer CO2" unit_of_measurement: "ppm" state_class: "measurement" device_class: "carbon_dioxide" icon: "mdi:molecule-co2" temperature: name: "Woonkamer temp via CO2" update_interval: 600s automatic_baseline_calibration: false id: mhz19_id switch: - platform: template name: "MH-Z19 ABC" optimistic: true on_turn_on: mhz19.abc_enable: mhz19_id on_turn_off: mhz19.abc_disable: mhz19_id - platform: restart name: "Restart" button: - platform: template name: "Kalibreren (20 minutes@400ppm)" id: calibrate_zero on_press: - mhz19.calibrate_zero: mhz19_id text_sensor: - platform: version name: "ESPHome" hide_timestamp: true - platform: wifi_info ip_address: name: "IP-adres" ssid: name: "SSID" mac_address: name: MAC-adres |
Weet iemand wat er mis gaat?
☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant
En als debug stap zou je ook eens een USB-Serial converter eraan kunnen hangen, dan zou je in ieder geval iets van communicatie naar de sensor moeten kunnen zien.
Ik heb ook andere pins geprobeerd, zonder succes. Gekke is dat ik hem nu op de esp8266 ook niet meer werkend krijg, op de pins die eerder wel werkten. Jet ledje van de sensor licht wel op, dus de stroomvoorziening ervan werkt. Hij lijkt dus ineens overleden, maar kan me niet voorstellen.Septillion schreef op donderdag 1 augustus 2024 @ 20:51:
@manusjevanalles Zijn GPIO20 en GPIO21 niet al de UART0 die ook de logger al gebruikt? Kan me voorstellen dat de sensor niet op de logger data zit te wachten.
En als debug stap zou je ook eens een USB-Serial converter eraan kunnen hangen, dan zou je in ieder geval iets van communicatie naar de sensor moeten kunnen zien.
☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant
Ik heb wel een usb-serialbordje, maar hoe sluit ik het aan in deze situatie? Is het zo simpel als de Tx van de sensor op Rx van het bordje aansluiten en via arduino ide de logger openen?Septillion schreef op donderdag 1 augustus 2024 @ 21:01:
@manusjevanalles Nouwja, voordeel van UART is dat je het dus makkelijk kan bekijken met een USB-Serial adapter. Eventueel sluit je alleen de Rxi daarvan aan, dat kan zowel op de heen als retour om daar mee te luisteren.
[ Voor 11% gewijzigd door manusjevanalles op 01-08-2024 21:39 ]
☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant
En dan Arduino logger, Putty, Tera Term etc, net wat je makkelijk vind als serial terminal.
Ik ga het morgen proberen. Ik heb hem nu 10-15 minuten aan staan op de ESP8266, en ik begin nu ineens waardes door te krijgen, dus hij werkt nog wel. Misschien was ik met de ESP32 te ongeduldig. Maar eerder kreeg ik wel direct waardes door. Mogelijk is dat een symptoom van ouderdom. De sensor is al zeker 6 jaar oud, en volgens mij slijten die mh-z19’s best snel (weet niet of dit symptoom erbij past, of dat hij alleen minder nauwkeurig gaat meten).Septillion schreef op donderdag 1 augustus 2024 @ 21:55:
@manusjevanalles Ja, ook al moet je ook een GND verbinding hebben. Maar als je de ESP ook vanaf die computer voedt is de GND al verbonden.
En dan Arduino logger, Putty, Tera Term etc, net wat je makkelijk vind als serial terminal.
Edit: ik was gewoon te ongeduldig. Ook aangesloten op de ESP32 kreeg ik na 10 minuten de eerste waarde gewoon binnen
[ Voor 6% gewijzigd door manusjevanalles op 02-08-2024 10:39 ]
☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant
Dit bestaat uit een zwembad controller met fysieke knoppen welk ik traag vind reageren.
Het menusysteem werkt prima, maar de display update't traag en ik heb mijn i2c aansluiting al op 800khz staan. Zelfs dan geven de logs aan dat de display te traag update (160ms). Bij 50khz is dat zelfs 2000ms.
Nu zit ik erover na te denken om mijn display te veranderen.
Ik kan kiezen voor een ILI9341 en dan zonder touchscreen dus de knoppen blijven gebruiken, of kiezen voor een xpt2046 en daarbij 3 fysieke knoppen (dus inputs) vrij spelen op mijn bord. Ik kan zowel 5v als 3.3v leveren want mijn project heeft een aparte voeding. Ik zou dus de VCC en GND extern aanleveren.
Ik zit zelf te denken aan dit display.
Ik heb een bewegingssensor in mijn project en het display zou aan/uit moeten kunnen dmv deze bewegingssensor.
Wat zouden jullie aanraden, qua mogelijkheden en snelheid?
[ Voor 73% gewijzigd door xces op 02-08-2024 14:20 ]
Je kan ook de ILI9341 maar dat is een SPI display. Naast RST en DC heb je dus nog een SPI-bus nodig (dus een MOSI en CLK, MISO niet nodig). En de backlight is gewoon een losse pin (BLK) die je kan PWM'en.
Wel meer pinnen dus maar SPI heeft veel hogere baudrate.
Het gaat me vooral om de snelheid van mijn menu systeem - daar zit echt wel een 500ms sec vertraging in tussen knop indrukken en dat de display reageert en de beperkte ruimte die ik heb met mijn i2c display. Daarnaast loopt mijn programme soms 'vast' dus ik gok dat dit komt omdat het display niet juist werkt.Septillion schreef op vrijdag 2 augustus 2024 @ 14:33:
@xces Zijn het warnings? Dan zou ik me er niet te veel van aantrekken... Hoogstens een melding maken want zou naar mijn idee vooral betekenen dat de integratie gewoon te veel blijft wachten.
Je kan ook de ILI9341 maar dat is een SPI display. Naast RST en DC heb je dus nog een SPI-bus nodig (dus een MOSI en CLK, MISO niet nodig). En de backlight is gewoon een losse pin (BLK) die je kan PWM'en.
Wel meer pinnen dus maar SPI heeft veel hogere baudrate.
Als ik het dus goed lees:
SPI bus: 2x GPIO
Display: MOSI / CLK
Brightness: PWM pin
Dus 5 als ik de VCC en GND al ergens anders vanaf haal.
Zet je code tussen [code=yaml] [/code] tags om het goed leesbaar te houden; ook makkelijker voor de eventuele foutopsporing.