var my_custom_value = 0.0
var another_value = "Hello"

import string

def rule_adc(value, trigger)
  var i=string.find(trigger,"#A")
  var tr=string.split(trigger,i+2)
  var adc=number(tr[1])
  # print("value of adc",adc," is ",value)
  # V = (R1+R2)/R2 * (Analog1 * 3.3)/4095
  var V = ((4700.0+10000.0)/10000.0) * (value*3.3)/4095.0
  my_custom_value = V
  # print("Voltage:",V)
end

tasmota.add_rule("ANALOG#A1",rule_adc)

def rule_bmp(value)
  tasmota.cmd("displaymode 0")
  tasmota.cmd("displaytext Home "+ str(int(value))+"^C")
end

def rule_press(value)
  tasmota.cmd("displaymode 0")
  var p = value["Pressure"]
  var t = value["Temperature"]
  tasmota.cmd("displaytext "+str(int(p))+" "+str(int(t))+"^C")
end

tasmota.add_rule("Tele#BMP180", rule_press)

import webserver
import string

class MySensorDriver: Driver
    def web_sensor()
        webserver.content_send("<tr><td><B>GSM Voltage: </td><td>")
        webserver.content_send(string.format("%.2f",my_custom_value)) # Output integer
        webserver.content_send("V</B></td></tr>")
        webserver.content_send("<tr><td>Another Value</td><td>")
        webserver.content_send(another_value)                        # Output string
        webserver.content_send("</td></tr>")
    end

    # Optional: Update the value periodically or based on events

    def init()
        tasmota.set_timer(10000, / -> self.update_value()) # Update every 10 seconds
    end

    def update_value()
        my_custom_value += 1
    end
end

# Create an instance of the driver and add it to Tasmota

d1 = MySensorDriver()
tasmota.add_driver(d1)
