var value3v = 0.0
var value12v = 0.0
var last_analog_val = -1

import string
import re

def rule_adc3v(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 = ((1000.0+10000.0)/10000.0) * (value*3.3)/4095.0
  value3v = V
  # print("Voltage:",V)
end

def rule_adc12v(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 = ((33000.0+10000.0)/10000.0) * (value*3.3)/4095.0
  value12v = V
  # print("Voltage:",V)
end

tasmota.add_rule("ANALOG#A1",rule_adc3v)
tasmota.add_rule("ANALOG#A2",rule_adc12v)


import webserver
import string

class MySensorDriver: Driver
    def web_sensor()
        webserver.content_send("<tr><td><B>PCI-E 3.3v: </td><td>")
        webserver.content_send(string.format("%.2f",value3v))
        webserver.content_send("</B></td></tr>")
        webserver.content_send("<tr><td><B>PCI-E 12v: </td><td>")
        webserver.content_send(string.format("%.2f",value12v))
        webserver.content_send("</B></td></tr>")

    end

end

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

d1 = MySensorDriver()
tasmota.add_driver(d1)


def check_analog_change(value, trigger)
    
    var current_val = int(value)
    
    if last_analog_val == 0 && current_val > 0
     var sensor_data = tasmota.read_sensors()
     if !re.search("DS18B20",sensor_data)
        print("Analog changed from 0 to positive! Current value:", current_val)  
        tasmota.cmd("Power1 OFF")
        tasmota.cmd("Power2 OFF")
        tasmota.cmd("Power3 OFF")
        tasmota.cmd("Power4 OFF")      
        tasmota.cmd("restart 1")
      end
    end

    last_analog_val = current_val

end

# Remove any existing rule instance to prevent duplicates during testing
# tasmota.remove_rule("ANALOG#A1")
# Register the rule for your specific analog pin (e.g., ANALOG#A1)
tasmota.add_rule("ANALOG#A1", check_analog_change)

