Updating both .py files for ruff errors
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-09-06 00:56:02 -04:00
parent 7cf81914ec
commit 2a31e74fa8
2 changed files with 38 additions and 32 deletions
+8 -8
View File
@@ -1,14 +1,14 @@
# Wi-Fi credentials # Wi-Fi credentials
WIFI_SSID = "YourSSID" # Set this to your Wi-Fi network name WIFI_SSID = "YourSSID" # Set this to your Wi-Fi network name
WIFI_PASS = "YourPassword" # Set this to your Wi-Fi network password WIFI_PASS = "YourPassword" # Set this to your Wi-Fi network password
# MQTT broker details # MQTT broker details
MQTT_HOST = "192.168.1.50" # MQTT broker IP/hostname MQTT_HOST = "192.168.1.50" # MQTT broker IP/hostname
MQTT_PORT = 1883 # MQTT broker port MQTT_PORT = 1883 # MQTT broker port
MQTT_USER = "mqtt_user" # MQTT username (leave blank for no login) MQTT_USER = "mqtt_user" # MQTT username (leave blank for no login)
MQTT_PASS = "mqtt_password" # MQTT password (leave blank for no login) MQTT_PASS = "mqtt_password" # MQTT password (leave blank for no login)
# Home Assistant node details # Home Assistant node details
NODE_NAME = "Room Weather" # Name that's displayed on HA Device Card NODE_NAME = "Room Weather" # Name that's displayed on HA Device Card
NODE_ID = "room_env" # Unique slug for entity_id and MQTT topic path NODE_ID = "room_env" # Unique slug for entity_id and MQTT topic path
CLIENT_ID = f"pico2w_{NODE_ID}" # Unique client ID used by the MQTT broker CLIENT_ID = f"pico2w_{NODE_ID}" # Unique client ID used by the MQTT broker
+30 -24
View File
@@ -1,8 +1,8 @@
import time
import struct
import socket import socket
import network import struct
import time
from machine import Pin, SoftI2C from machine import Pin, SoftI2C
import network
# ------------------------------------------------------------- # -------------------------------------------------------------
# Configuration Loader # Configuration Loader
@@ -43,7 +43,9 @@ class SimpleMQTT:
flags |= 0x40 flags |= 0x40
# Variable header: Protocol Name (MQTT) + Level (4) + Flags + KeepAlive (60s) # Variable header: Protocol Name (MQTT) + Level (4) + Flags + KeepAlive (60s)
var_header = bytearray([0x00, 0x04, ord('M'), ord('Q'), ord('T'), ord('T'), 0x04, flags, 0x00, 0x3C]) var_header = bytearray(
[0x00, 0x04, ord("M"), ord("Q"), ord("T"), ord("T"), 0x04, flags, 0x00, 0x3C]
)
# Payload # Payload
payload = bytearray() payload = bytearray()
@@ -109,7 +111,7 @@ class BME280:
self.addr = addr self.addr = addr
# Reset sensor # Reset sensor
self.i2c.writeto_mem(self.addr, 0xE0, b"\xB6") self.i2c.writeto_mem(self.addr, 0xE0, b"\xb6")
time.sleep(0.1) time.sleep(0.1)
self._read_calibration_data() self._read_calibration_data()
@@ -119,7 +121,7 @@ class BME280:
# Pressure oversampling x1, Temp oversampling x1, Normal mode # Pressure oversampling x1, Temp oversampling x1, Normal mode
self.i2c.writeto_mem(self.addr, 0xF4, b"\x27") self.i2c.writeto_mem(self.addr, 0xF4, b"\x27")
# Standby 1000ms, filter off # Standby 1000ms, filter off
self.i2c.writeto_mem(self.addr, 0xF5, b"\xA0") self.i2c.writeto_mem(self.addr, 0xF5, b"\xa0")
def _read_calibration_data(self): def _read_calibration_data(self):
calib = self.i2c.readfrom_mem(self.addr, 0x88, 24) calib = self.i2c.readfrom_mem(self.addr, 0x88, 24)
@@ -149,13 +151,17 @@ class BME280:
# Temperature calculation (Celsius) # Temperature calculation (Celsius)
var1 = (((raw_t >> 3) - (self.dig_t1 << 1)) * self.dig_t2) >> 11 var1 = (((raw_t >> 3) - (self.dig_t1 << 1)) * self.dig_t2) >> 11
var2 = (((((raw_t >> 4) - self.dig_t1) * ((raw_t >> 4) - self.dig_t1)) >> 12) * self.dig_t3) >> 14 var2 = (
(((raw_t >> 4) - self.dig_t1) * ((raw_t >> 4) - self.dig_t1)) >> 12
) * self.dig_t3 >> 14
t_fine = var1 + var2 t_fine = var1 + var2
temp = ((t_fine * 5 + 128) >> 8) / 100.0 temp = ((t_fine * 5 + 128) >> 8) / 100.0
# Pressure calculation (hPa) # Pressure calculation (hPa)
p_var1 = t_fine - 128000 p_var1 = t_fine - 128000
p_var2 = p_var1 * p_var1 * self.dig_p6 + ((p_var1 * self.dig_p5) << 17) + (self.dig_p4 << 35) p_var2 = (
p_var1 * p_var1 * self.dig_p6 + ((p_var1 * self.dig_p5) << 17) + (self.dig_p4 << 35)
)
p_var1 = ((p_var1 * p_var1 * self.dig_p3) >> 8) + ((p_var1 * self.dig_p2) << 12) p_var1 = ((p_var1 * p_var1 * self.dig_p3) >> 8) + ((p_var1 * self.dig_p2) << 12)
p_var1 = (((1 << 47) + p_var1) * self.dig_p1) >> 33 p_var1 = (((1 << 47) + p_var1) * self.dig_p1) >> 33
@@ -171,19 +177,19 @@ class BME280:
# Humidity calculation (%) # Humidity calculation (%)
h_var = t_fine - 76800 h_var = t_fine - 76800
h_var = ( h_var = ((((raw_h << 14) - (self.dig_h4 << 20) - (self.dig_h5 * h_var)) + 16384) >> 15) * (
((((raw_h << 14) - (self.dig_h4 << 20) - (self.dig_h5 * h_var)) + 16384) >> 15) (
* (
( (
( (
((((h_var * self.dig_h6) >> 10) * (((h_var * self.dig_h3) >> 11) + 32768)) >> 10) (((h_var * self.dig_h6) >> 10) * (((h_var * self.dig_h3) >> 11) + 32768))
+ 2097152 >> 10
) )
* self.dig_h2 + 2097152
+ 8192
) )
>> 14 * self.dig_h2
+ 8192
) )
>> 14
) )
h_var = h_var - (((((h_var >> 15) * (h_var >> 15)) >> 7) * self.dig_h1) >> 4) h_var = h_var - (((((h_var >> 15) * (h_var >> 15)) >> 7) * self.dig_h1) >> 4)
h_var = max(0, min(h_var, 419430400)) h_var = max(0, min(h_var, 419430400))
@@ -192,7 +198,7 @@ class BME280:
return { return {
"temperature": round(temp, 2), "temperature": round(temp, 2),
"pressure": round(pressure, 2), "pressure": round(pressure, 2),
"humidity": round(humidity, 2) "humidity": round(humidity, 2),
} }
@@ -207,7 +213,7 @@ def register_ha_discovery(mqtt):
f'"name":"{NODE_NAME}",' f'"name":"{NODE_NAME}",'
f'"model":"Pico 2 W",' f'"model":"Pico 2 W",'
f'"manufacturer":"Raspberry Pi"' f'"manufacturer":"Raspberry Pi"'
f'}}' f"}}"
) )
configs = [ configs = [
@@ -216,22 +222,22 @@ def register_ha_discovery(mqtt):
"name": "Temperature", "name": "Temperature",
"unit": "°C", "unit": "°C",
"cls": "temperature", "cls": "temperature",
"val_tpl": "{{ value_json.temperature }}" "val_tpl": "{{ value_json.temperature }}",
}, },
{ {
"id": "humidity", "id": "humidity",
"name": "Humidity", "name": "Humidity",
"unit": "%", "unit": "%",
"cls": "humidity", "cls": "humidity",
"val_tpl": "{{ value_json.humidity }}" "val_tpl": "{{ value_json.humidity }}",
}, },
{ {
"id": "pressure", "id": "pressure",
"name": "Pressure", "name": "Pressure",
"unit": "hPa", "unit": "hPa",
"cls": "atmospheric_pressure", "cls": "atmospheric_pressure",
"val_tpl": "{{ value_json.pressure }}" "val_tpl": "{{ value_json.pressure }}",
} },
] ]
for c in configs: for c in configs:
@@ -246,7 +252,7 @@ def register_ha_discovery(mqtt):
f'"unit_of_measurement":"{c["unit"]}",' f'"unit_of_measurement":"{c["unit"]}",'
f'"state_topic":"{STATE_TOPIC}",' f'"state_topic":"{STATE_TOPIC}",'
f'"value_template":"{c["val_tpl"]}",' f'"value_template":"{c["val_tpl"]}",'
f'{device_info}}}' f"{device_info}}}"
) )
mqtt.publish(topic, payload, retain=True) mqtt.publish(topic, payload, retain=True)
print(f"Registered HA discovery: {c['id']}") print(f"Registered HA discovery: {c['id']}")
@@ -272,7 +278,7 @@ def connect_wifi():
def main(): def main():
# Adjust SDA/SCL pins according to your wiring (Default GP4/GP5 for SoftI2C) # Adjust SDA/SCL pins according to your wiring
i2c = SoftI2C(sda=Pin(16), scl=Pin(17), freq=100000) i2c = SoftI2C(sda=Pin(16), scl=Pin(17), freq=100000)
bme = BME280(i2c) bme = BME280(i2c)