MQTT Temperature readings and password&username addition

Hi all.

Got MQTT working after a while. Now i have this script below reading some temperatures for me.
Two questions, first is that when the temperature is on the + side it gives the reading including the celcius icon. But when its on the - side it does not include the celcius icon. Any easy for this that i am missing?

Edit; Also for the temperature, i would love if it can be rounded down to just one decimal.

Second part, i want to secure this more. So i have added a username and password for connecting to my mqtt broker. But i am struggling to incorporate that into the script. Any help there would be super helpful.

#!/usr/bin/python3
# Import package
import os
import glob
import time
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish

# Def
broker = "192.168.10.169"
state_topic = "/home/temperature/bod"
delay = 30

# Initialize the GPIO Pins
os.system('modprobe w1-gpio') # Turns on the GPIO module
os.system('modprobe w1-therm') # Turns on the Temperature module

# Finds the correct device file that holds the temperature data
base_dir = '/sys/bus/w1/devices/'
device_folder = '/sys/bus/w1/devices/28-04172189c1ff' 
device_file = device_folder + '/w1_slave'

# A function that reads the sensors data
def read_temp_raw():
     f = open(device_file, 'r') # Opens the temperature device file
     lines = f.readlines() # Returns the text
     f.close()
     return lines

# Convert the value of the sensor into a temperature
def read_temp():
    lines = read_temp_raw() # Read the temperature 'device file'
    # While the first line does not contain 'YES', wait for 0.2s
    # and then read the device file again.
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()

    # Look for the position of the '=' in the second line of the
    # device file.
    equals_pos = lines[1].find('t=')

    # If the '=' is found, convert the rest of the line after the
    # '=' into degrees Celsius
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = float(temp_string) / 1000.0
        return temp_c

############### MQTT section ##################

client = mqtt.Client()
client.connect(broker)
client.loop_start()

while True:
    print(read_temp())
    time.sleep(1)
    sensor_data = read_temp()
    client.publish("/home/temperature/bod", str(sensor_data))
    time.sleep(delay)

Can you please use code fences on all code blocks

And this is a python script. The relation with openHAB?
Have you looked for your answer in a pi python forum?

Yes, it is a python script. It runs on the MQTT server and sends the temperature readings to the mqtt topic. Wich again i use openhab to read and post on my panel. I am posting here because thats where i found other solutions for exactly mqtt and openhab.

Yeah but have you researched already? Rounding numbers in Python is as basic as it can get so googling for an answer should take no more than a few minutes.

The same goes for setting username/password in paho MQTT. I don’t see anywhere where you call username_pw_set() . You gotta try to resolve issues yourself first and then ask for help.