2 Commity

Autor SHA1 Wiadomość Data
  Thomas B 95a0fb91c0 extended readme 2 miesięcy temu
  Thomas B 6bd3442aa1 write display values every 5s to influx and ignore ddc errors. 2 miesięcy temu
2 zmienionych plików z 46 dodań i 10 usunięć
  1. 36
    0
      README.md
  2. 10
    10
      client/brightness.py

+ 36
- 0
README.md Wyświetl plik

1
 # AutoBrightness
1
 # AutoBrightness
2
 
2
 
3
+Simple solution to measure ambient room lighting conditions with an AtTiny85 based USB lux sensor and set external display backlight intensity accordingly via DDC/CI.
3
 
4
 
5
+See [this blog post for details](https://www.xythobuz.de/auto_brightness.html).
6
+
7
+## Sensor
8
+
9
+Uses a [Digispark Rev. 3 clone](https://www.az-delivery.de/en/products/digispark-board) with a [GY-302 BH1750 breakout board](https://www.az-delivery.de/en/products/gy-302-bh1750-lichtsensor-lichtstaerke-modul-fuer-arduino-und-raspberry-pi) connected to the I2C bus.
10
+
11
+[![Front of PCB](https://www.xythobuz.de/img/autobrightness_pcb_1_small.jpg)](https://www.xythobuz.de/img/autobrightness_pcb_1.jpg)
12
+[![Back of PCB](https://www.xythobuz.de/img/autobrightness_pcb_2_small.jpg)](https://www.xythobuz.de/img/autobrightness_pcb_2.jpg)
13
+
14
+### Quick Start
15
+
16
+Check out the repo and required submodules.
17
+
18
+    git clone https://git.xythobuz.de/thomas/AutoBrightness.git
19
+    cd AutoBrightness
20
+    git submodule update --init
21
+
22
+Build the firmware and upload it.
23
+
24
+    make -C sensor upload
25
+
26
+Prepare udev rules for our new device.
27
+
28
+    sudo cp sensor/49-autobrightness.rules /etc/udev/rules.d/49-autobrightness.rules
29
+    sudo udevadm control --reload-rules
30
+    sudo udevadm trigger
31
+
32
+## Client
33
+
34
+### Quick Start
35
+
36
+Install dependency and run the client.
37
+
38
+    yay -S python-pyusb
39
+    ./client/brightness.py
4
 
40
 
5
 ## License
41
 ## License
6
 
42
 

+ 10
- 10
client/brightness.py Wyświetl plik

5
 import time
5
 import time
6
 import influx
6
 import influx
7
 
7
 
8
-filter_fact = 0.9
8
+filter_fact = 0.99
9
 
9
 
10
 c_in = 0.6, -30.0, # in_a, in_b
10
 c_in = 0.6, -30.0, # in_a, in_b
11
 calibration = {
11
 calibration = {
78
 
78
 
79
             try:
79
             try:
80
                 influx.write("brightness,location=pc-back", "lux", brightness)
80
                 influx.write("brightness,location=pc-back", "lux", brightness)
81
+
82
+                for d in disps:
83
+                    name = '_'.join(d["name"].split())
84
+                    influx.write("brightness,location=" + name, "backlight", d["prev"])
81
             except:
85
             except:
82
                 pass
86
                 pass
83
 
87
 
88
             for d in disps:
92
             for d in disps:
89
                 val = lux_to_disp(d["name"], brightness)
93
                 val = lux_to_disp(d["name"], brightness)
90
                 if val != d["prev"]:
94
                 if val != d["prev"]:
91
-                    d["prev"] = val
92
-                    print("{}: Setting \"{}\" to {}".format(time.ctime(), d["name"], val))
93
-                    ddc.ddc_set(d["_id"], val)
94
-
95
                     try:
95
                     try:
96
-                        name = '_'.join(d["name"].split())
97
-                        influx.write("brightness,location=" + name, "backlight", val)
98
-                    except:
99
-                        pass
100
-
96
+                        print("{}: Setting \"{}\" to {}".format(time.ctime(), d["name"], val))
97
+                        ddc.ddc_set(d["_id"], val)
98
+                        d["prev"] = val
99
+                    except Exception as e:
100
+                        print(e)

Ładowanie…
Anuluj
Zapisz