NEWS
[Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750
-
@kmxak Cool! Dank Dir Funktioniert.
Damit hätte ich um diese Uhrzeit nicht so schnell gerechnet
Ist sogar "bootfest" -
Moin,
auch wenn der Thread schon ein wenig älter ist möchte ich mal Danke für die Anleitung, Hinweise und Tipps sagen. Habe heute erfolgreich einen BH1750 an einen Wemos D1 mini mittels ESPHome angebunden, so dass er mir ganz wunderbar die LUX-Werte per MQTT liefert (mit 4 Nachkommastellen ) und ich so schön damit arbeiten kann was Dämmerungsschaltungen angeht. Falls man kein MQTT möchte, geht das ganze auch wunderbar mit dem ESPHome adapter for ioBroker.Hier mal meine yaml für den Sensor:
esphome: name: d1-lux-balkon platform: ESP8266 board: esp01_1m # Enable logging logger: level: DEBUG # Enable Home Assistant API api: ota: password: "***" wifi: ssid: "***" password: "***" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "***" password: "***" captive_portal: # MQTT connection mqtt: broker: 100.100.0.1 username: *** password: *** # Enable I²C bus i2c: sda: 0 scl: 2 scan: true # LUX sensor settings sensor: - platform: bh1750 name: "Helligkeit BH1750" address: 0x23 measurement_duration: 180 update_interval: 60s accuracy_decimals: 4
Gruß
Sascha -
Ich packe den Thread nochmal aus. Hab nen Wemos D1 Mini mit einem BH1750 versehen. Leider aktualisiert sich die Lichtstärke nicht nach 60s. Nach >5 Min ist noch keine Änderung da. Folgendes Yaml ist in Verwendung :
esphome: name: esp8266-lux platform: esp8266 board: d1_mini # Enable logging logger: # Enable Home Assistant API api: password: "xxx" ota: password: "xxx" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp8266-Lux Fallback Hotspot" password: "xxx" captive_portal: i2c: sda: GPIO4 scl: GPIO5 scan: True sensor: - platform: bh1750 name: "Lux" address: 0x23 #measurement_duration: 120 update_interval: 60s
Nach einem Neustart des Wemos kommt 1x ein Wert, nur aktualisiert es sich nicht vernünftig. Will den Sensor für eine Beleuchtung nutzen. Hierfür brauche ich im optimalen Fall alle 2 Min. die Lichtstärke .
Hat einer eine Idee? -
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
Hat einer eine Idee?
Hat einer Logs?
Die neuste esphome version (2022.03) hat übrigens eine interessante Änderung bezüglich des bh1750:
BH1750 dynamically calculate options #3214
Until now for BH1750 you had to set static resolution/measurement_duration values - and so either optimize for low-light or bright scenes. Instead, dynamically calculate those options now by first doing a quick l-resolution measurement, then switch to the optimal mode/mtreg values. -
INFO Reading configuration /opt/iobroker/iobroker-data/esphome.0/esp8266-lux.yaml... INFO Starting log output from esp8266-lux.local using esphome API INFO Successfully connected to esp8266-lux.local [21:47:09][I][app:102]: ESPHome version 2022.1.3 compiled on Mar 18 2022, 21:40:35 [21:47:09][C][wifi:488]: WiFi: [21:47:09][C][wifi:350]: Local MAC: Xxxx [21:47:09][C][wifi:351]: SSID: xxxx] [21:47:09][C][wifi:352]: IP Address: 192.168.xxx.xxx [21:47:09][C][wifi:354]: BSSID: xxx] [21:47:09][C][wifi:355]: Hostname: 'esp8266-lux' [21:47:09][C][wifi:357]: Signal strength: -45 dB ▂▄▆█ [21:47:09][C][wifi:361]: Channel: 6 [21:47:09][C][wifi:362]: Subnet: 255.255.255.0 [21:47:09][C][wifi:363]: Gateway: 192.168.xxx.xxx [21:47:09][C][wifi:364]: DNS1: 192.168.xxx.xxx [21:47:09][C][wifi:365]: DNS2: 0.0.0.0 [21:47:09][C][logger:233]: Logger: [21:47:09][C][logger:234]: Level: DEBUG [21:47:09][C][logger:235]: Log Baud Rate: 115200 [21:47:09][C][logger:236]: Hardware UART: UART0 [21:47:09][C][i2c.arduino:037]: I2C Bus: [21:47:09][C][i2c.arduino:038]: SDA Pin: GPIO4 [21:47:09][C][i2c.arduino:039]: SCL Pin: GPIO5 [21:47:09][C][i2c.arduino:040]: Frequency: 50000 Hz [21:47:09][C][i2c.arduino:043]: Recovery: bus successfully recovered [21:47:09][I][i2c.arduino:053]: Results from i2c bus scan: [21:47:09][I][i2c.arduino:059]: Found i2c device at address 0x23 [21:47:09][C][bh1750.sensor:027]: BH1750 'Lux' [21:47:09][C][bh1750.sensor:027]: Device Class: 'illuminance' [21:47:09][C][bh1750.sensor:027]: State Class: 'measurement' [21:47:09][C][bh1750.sensor:027]: Unit of Measurement: 'lx' [21:47:09][C][bh1750.sensor:027]: Accuracy Decimals: 1 [21:47:09][C][bh1750.sensor:028]: Address: 0x23 [21:47:09][C][bh1750.sensor:048]: Resolution: 0.5 [21:47:09][C][bh1750.sensor:049]: Update Interval: 60.0s [21:47:09][C][captive_portal:144]: Captive Portal: [21:47:09][C][ota:082]: Over-The-Air Updates: [21:47:09][C][ota:083]: Address: esp8266-lux.local:8266 [21:47:09][C][ota:086]: Using Password. [21:47:09][C][api:134]: API Server: [21:47:09][C][api:135]: Address: esp8266-lux.local:6053 [21:47:09][C][api:139]: Using noise encryption: NO [21:47:09][C][mdns:084]: mDNS: [21:47:09][C][mdns:085]: Hostname: esp8266-lux
Hier wäre vllt was, ist aber neu seit eben, habe ich heute Nachmittag noch nicht gesehen.
esphome.0 2022-03-18 21:41:30.992 error ESPHome client 192.168.xxx.xxError: connect EISCONN 192.168.xxx.xx:6053 - Local (192.168.xxx.xx:41654)
-
@smarthome2020 bräuchte ein log was ein paar Minuten läuft um zu sehen was "schief" läuft.
Wenn er allerdings einmal (beim start) messen kann und danach nicht mehr riecht es nach einem fehlenden pull, in den logs sollte dann zumindest eine Zeile stehen das er nix bekommen hat oder i2c communication fehlgeschlagen hat etc.
-
@opensourcenomad
Bei dem Sensor passiert im log über Minuten nichts , während bei einem anderen Sensor im Log neue Einträge hinzu kommen.
Scheinbar ist der Wemos inaktiv nach dem Start?Nachtrag: nach ein paar Minuten kam noch :
[22:16:50][I][ota:102]: Boot seems successful, resetting boot loop counter.
-
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
Bei dem Sensor passiert im log über Minuten nichts , während bei einem anderen Sensor im Log neue Einträge hinzu kommen.
Schalt mal die logger component auf
verbose
-
Neben dem log von eben kommt dann ergänzend nur :
[22:25:23][V][mdns:086]: Services: [22:25:23][V][mdns:088]: - _esphomelib, _tcp, 6053 [22:25:23][V][mdns:090]: TXT: version = 2022.1.3 [22:25:23][V][mdns:090]: TXT: mac = bcff4d191c18 [22:25:23][V][mdns:090]: TXT: platform = ESP8266 [22:25:23][V][mdns:090]: TXT: board = d1_mini [22:26:12][D][api:098]: Accepted 192.168.xxx.xx [22:26:12][V][api.connection:763]: Hello from client: 'raspberrypi (192.168.xxx.xx)' [22:26:12][D][api.connection:779]: raspberrypi (192.168.xxx.xx): Connected successfully
Im Hauptlog des ioBroker kommt aber immer wieder:
ESPHome client 192.168.xxx.xx Error: connect EISCONN 192.168.xxx.xx:6053 - Local (192.168.xxx.xx:48714)
-
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
Neben dem log von eben kommt dann ergänzend nur
und minütlich kommt nix bezüglich der bh1750 component? Zur not noch
very_verbose
versuchen. -
[22:43:28][VV][scheduler:185]: Running interval '' with interval=60000 last_execution=6490 (now=66490) [22:43:33][D][api:098]: Accepted 192.168.xxx.x [22:43:33][VV][api.service:337]: on_ping_request: PingRequest {} [22:43:33][VV][api.service:043]: send_ping_response: PingResponse {} [22:43:33][VV][api.service:301]: on_hello_request: HelloRequest { client_info: 'raspberrypi' } [22:43:33][V][api.connection:763]: Hello from client: 'raspberrypi (192.168.xxx.x)' [22:43:33][VV][api.service:013]: send_hello_response: HelloResponse { api_version_major: 1 api_version_minor: 6 server_info: 'esp8266-lux (esphome v2022.1.3)' } [22:43:33][VV][api.service:310]: on_connect_request: ConnectRequest { password: 'xxx' } [22:43:33][D][api.connection:779]: raspberrypi (192.168.xxx.x): Connected successfully [22:43:33][VV][api.service:019]: send_connect_response: ConnectResponse { invalid_password: NO } [22:43:33][VV][api.service:355]: on_device_info_request: DeviceInfoRequest {} [22:43:33][VV][api.service:049]: send_device_info_response: DeviceInfoResponse { uses_password: YES name: 'esp8266-lux' mac_address: 'Xxx' esphome_version: '2022.1.3' compilation_time: 'Mar 18 2022, 22:41:21' model: 'd1_mini' has_deep_sleep: NO project_name: '' project_version: '' webserver_port: 0 } [22:43:33][VV][api.service:364]: on_list_entities_request: ListEntitiesRequest {} [22:43:33][VV][api.service:132]: send_list_entities_sensor_response: ListEntitiesSensorResponse { object_id: 'lux' key: 914478924 name: 'Lux' unique_id: 'esp8266-luxsensorlux' icon: '' unit_of_measurement: 'lx' accuracy_decimals: 1 force_update: NO device_class: 'illuminance' state_class: STATE_CLASS_MEASUREMENT legacy_last_reset_type: LAST_RESET_NONE disabled_by_default: NO entity_category: ENTITY_CATEGORY_NONE } [22:43:33][VV][api.service:373]: on_subscribe_states_request: SubscribeStatesRequest {} [22:43:33][VV][api.service:055]: send_list_entities_done_response: ListEntitiesDoneResponse {} [22:43:33][VV][api.service:140]: send_sensor_state_response: SensorStateResponse { key: 914478924 state: 12.9167 missing_state: NO } [22:43:36][VV][api.service:337]: on_ping_request: PingRequest {} [22:43:36][VV][api.service:043]: send_ping_response: PingResponse {} [22:43:48][VV][api.service:337]: on_ping_request: PingRequest {} [22:43:48][VV][api.service:043]: send_ping_response: PingResponse {}
Und :
d1_mini [22:50:04][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:04][VV][api.service:043]: send_ping_response: PingResponse {} [22:50:09][VV][scheduler:185]: Running interval 'update' with interval=60000 last_execution=407236 (now=467236) [22:50:09][VV][i2c.arduino:124]: 0x23 TX 21 [22:50:09][VV][i2c.arduino:148]: TX failed: not acknowledged [22:50:13][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:13][VV][api.service:043]: send_ping_response: PingResponse {} [22:50:19][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:19][VV][api.service:043]: send_ping_response: PingResponse {} [22:50:28][VV][scheduler:185]: Running interval '' with interval=60000 last_execution=426490 (now=486492) [22:50:29][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:29][VV][api.service:043]: send_ping_response: PingResponse {} [22:50:34][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:34][VV][api.service:043]: send_ping_response: PingResponse {} [22:50:44][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:44][VV][api.service:043]: send_ping_response: PingResponse {} [22:50:49][VV][api.service:337]: on_ping_request: PingRequest {} [22:50:49][VV][api.service:043]: send_ping_response: PingResponse {}
-
@opensourcenomad sagte in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
Die neuste esphome version (2022.03) hat übrigens eine interessante Änderung bezüglich des bh1750:
Wie sehe ich, welche Version aufgespielt ist? Habe eben alle esphome Geräte aktualisiert… finde nur nirgends was von 2022.03..
-
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
[22:50:09][VV][i2c.arduino:124]: 0x23 TX 21 [22:50:09][VV][i2c.arduino:148]: TX failed: not acknowledged
Wie vermutet hackt es an der Kommunikation. Eventuell mal pull up am gpio aktivieren?
Wie sehe ich, welche Version aufgespielt ist?
Z.b. im Dashboard footer
-
Bei mir hat sich der BH1750 nach einigen Messungen/Ergebnissen immer wieder verabschiedet (Der I2C Teilnehmer wurde nicht mehr gefunden). Die Lösung war eine Pufferung der 5V Versorgungsspannung direkt am BH1750 mit einem kleinen Elko (100uF).
-
Erfahrungsbericht:
Betreibe 2 BH1750 Sensoren seit Jahren. Einer sitzt unter einem Dachfenster und schaut unter 25° Dachneigung nach Norden. Der andere scheut durch ein Giebelfenster (also 90° Neigung) nach Osten.
SW ist noch alt und selbstgefrickelt. Müßte man heute so nicht mehr machen, aber läuft stabil.
Ale meine ESPs D1 Mini bekommen vom Start weg jeweils einen 1000µF Kondensators an den 3.3V und 5V. Nicht optimiert, wahrscheinlich überdimensioniert, aber eben stabil.Nett sind dann die Jahresansichten. Ansonsten habe ich wenige praktische Anwendungen.
Für meine Lichtsteuerung in den Zimmern nutze ich aqara Zigbee Helligkeitssensoren an das Fenster geklebt.Hier noch eine Mehrjahresansicht, seit Aufzeichnung mit ioBroker. Die CCU.io Daten konnte ich leider nicht konvertieren.
-
@dieter_p
Ich hab den Sensor an den 3,3V angeklemmt. Meinst du, dass das zu wenig ist und die Ursache sein könnte?
Ansonsten muss ich einen Kondensator besorgen. Bisher lief alles ohne Kondensatoren/Widerständen stabil. -
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
Ich hab den Sensor an den 3,3V angeklemmt.
Immer 5V wenn der Sensor (breakoutboard) das kann.
-
@opensourcenomad
Auf 5V angekoppelt ist der Sensor gar nicht erreichbar.
Geht nur auf 3,3V.Ich muss nachher mal einen anderen BH1750 nutzen bzw. ein anderes Board. Nicht, dass Hardware daran schuld ist.
-
@smarthome2020 sagte in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
@opensourcenomad
Auf 5V angekoppelt ist der Sensor gar nicht erreichbar.
Geht nur auf 3,3V.Ich muss nachher mal einen anderen BH1750 nutzen bzw. ein anderes Board. Nicht, dass Hardware daran schuld ist.
--> es scheint an der Hardware zu liegen. Hab an einem anderen ESP mal einen BH1750 angeschlossen und da geht es einwandfrei.
-
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
@dieter_p
Ich hab den Sensor an den 3,3V angeklemmt. Meinst du, dass das zu wenig ist und die Ursache sein könnte?
Ansonsten muss ich einen Kondensator besorgen. Bisher lief alles ohne Kondensatoren/Widerständen stabil.Es gibt verschiedene Versionen. Ich nutze diese:
Die ist mit 5V Versorgungsspannung spezifiziert und auf 3,3V lief er gar nicht bei mir. Der I2C Bus ist zugegeben recht lang bei mir, wofür er im Ursprung nie gedacht war. Aber lokal die 5V gepuffert lässt ihn problemlos betreiben.
Da Du von 3,3V und D1 Mini sprichst, klingt dass eher nach einem Problem durch diese D1 Mini Kopien mit sehr billigem/schwachen Spannungsregler 5V -> 3,3V. Hierdurch gibt es oft Probleme, da der Spannungsregler gerade für den Betrieb des D1 Mini reicht, aber nicht noch zur Versorgung weiterer Sensoren. Evtl. hilft ein Pufferkondensator aber ein besserer D1 Mini ist auch eine sehr gute Sache.