Ja, habe das Script gefunden. Hier ist es. Wenn Ihr Fragen habt .....
# Autoexec für Shelly Plus Plug S
import string
# Die Steckdose besitzt 2 LED-Ringe mit jeweils 2 LED's
# Bei WLAN-Verlust blinkt Ring 2 blau
# Unter 50 Watt Leistung blinkt grün
# über 50 Watt zeigt Ring 2 die Leistung durch die Helligkeit an
# Wenn die LED's im Menü eingeschaltet werden kann die Farbe frei gewählt werden
LedRing1 = Leds(2,gpio.pin(gpio.WS2812, 0))
LedRing2 = Leds(2,gpio.pin(gpio.WS2812, 1))
# Farben für die LED-Anzeige
LedRt = 0xFF0000 # Rot
LedHrt = 0x880000 # Hellrot
LedGn = 0x00FF00 # Grün
LedBl = 0x0000FF # Blau
LedGe = 0xFFFF00 # Gelb
LedMa = 0xFF00FF # Magenta
LedCy = 0x00FFFF # Cyan
LedWs = 0xFFFFFF # Weiss
LedXX = 0x005500 # Messwert (grün)
# Globale Variablen
var StWifi # Status Wifi
var TxtWifi
var teiler = 0
var runtime = 0
# Testanzeige
LedRing1.set_pixel_color(0,LedGn)
LedRing1.set_pixel_color(1,LedGe)
LedRing1.show()
LedRing2.set_pixel_color(0,LedRt)
LedRing2.set_pixel_color(1,LedBl)
LedRing2.show()
class TDriver
def every_250ms()
var blink = 0x000000
var bli02 = 0xFFFFFF
var daten
var watt = 0
# Laufzeit des Programmes in Millisekunden
runtime = tasmota.millis()
if (teiler >= 1 && teiler <= 5)
blink = 0x000000
bli02 = 0xFFFFFF
elif (teiler >= 6 && teiler <= 10)
blink = 0xFFFFFF
bli02 = 0x000000
else
teiler = 0
end
teiler += 1
# Prüfen ob Steckdose eingeschaltet ist
var StEin = int(tasmota.get_power()[0])
# Prüfen ob die LED im Menü eingeschaltet ist
var LedEin = int(tasmota.get_power()[1])
# Ermitteln der momentanen Leistung
daten = tasmota.read_sensors()
#print (daten)
watt = int(string.split((string.split((string.split(daten,'{')[3]),',')[5]),':')[1])
#print (watt)
# Status der Wifi Verbindung prüfen
StWifi = 0
TxtWifi = tasmota.wifi()
if TxtWifi.size() == 6
StWifi = 1
end
# LED-Animation
if runtime >=0 && runtime <=499
LedRing1.set_pixel_color(0,LedGn)
LedRing2.set_pixel_color(0,LedGe)
LedRing2.set_pixel_color(1,LedRt)
LedRing1.set_pixel_color(1,LedBl)
elif runtime >=500 && runtime <= 999
LedRing1.set_pixel_color(0,LedBl)
LedRing2.set_pixel_color(0,LedGn)
LedRing2.set_pixel_color(1,LedGe)
LedRing1.set_pixel_color(1,LedRt)
elif runtime >=1000 && runtime <= 1499
LedRing1.set_pixel_color(0,LedRt)
LedRing2.set_pixel_color(0,LedBl)
LedRing2.set_pixel_color(1,LedGn)
LedRing1.set_pixel_color(1,LedGe)
elif runtime >=1500 && runtime <= 1999
LedRing1.set_pixel_color(0,LedGe)
LedRing2.set_pixel_color(0,LedRt)
LedRing2.set_pixel_color(1,LedBl)
LedRing1.set_pixel_color(1,LedGn)
elif runtime >=2000 && runtime <=2499
LedRing1.set_pixel_color(0,LedGn)
LedRing2.set_pixel_color(0,LedGe)
LedRing2.set_pixel_color(1,LedRt)
LedRing1.set_pixel_color(1,LedBl)
elif runtime >=2500 && runtime <= 2999
LedRing1.set_pixel_color(0,LedBl)
LedRing2.set_pixel_color(0,LedGn)
LedRing2.set_pixel_color(1,LedGe)
LedRing1.set_pixel_color(1,LedRt)
elif runtime >=3000 && runtime <= 3499
LedRing1.set_pixel_color(0,LedRt)
LedRing2.set_pixel_color(0,LedBl)
LedRing2.set_pixel_color(1,LedGn)
LedRing1.set_pixel_color(1,LedGe)
elif runtime >=3500 && runtime <= 3999
LedRing1.set_pixel_color(0,LedGe)
LedRing2.set_pixel_color(0,LedRt)
LedRing2.set_pixel_color(1,LedBl)
LedRing1.set_pixel_color(1,LedGn)
elif runtime > 4000
if (LedEin == 0)
if (StEin == 0 && StWifi == 1)
LedRing1.set_pixel_color(0,LedHrt)
LedRing1.set_pixel_color(1,LedHrt)
LedRing2.set_pixel_color(0,LedHrt)
LedRing2.set_pixel_color(1,LedHrt)
end
if (StEin == 1 && StWifi == 1)
if watt < 50
LedRing1.set_pixel_color(0,(LedGn & blink))
LedRing1.set_pixel_color(1,(LedGn & blink))
LedRing2.set_pixel_color(0,(LedGn & bli02))
LedRing2.set_pixel_color(1,(LedGn & bli02))
else
LedRing1.set_pixel_color(0,LedGn)
LedRing1.set_pixel_color(1,LedGn)
#LedXX = (255/2500*watt*256)
LedXX = ((25*watt)&0x00FF00)
LedRing2.set_pixel_color(0,LedXX)
LedRing2.set_pixel_color(1,LedXX)
end
end
if (StEin == 0 && StWifi == 0)
LedRing1.set_pixel_color(0,LedRt)
LedRing1.set_pixel_color(1,LedRt)
LedRing2.set_pixel_color(0,(LedBl & blink))
LedRing2.set_pixel_color(1,(LedBl & bli02))
end
if (StEin == 1 && StWifi == 0)
LedRing1.set_pixel_color(0,LedGn)
LedRing1.set_pixel_color(1,LedGn)
LedRing2.set_pixel_color(0,(LedBl & blink))
LedRing2.set_pixel_color(1,(LedBl & bli02))
end
end
end
LedRing1.show()
LedRing2.show()
end
end
gr = TDriver()
tasmota.add_driver(gr)
Alles anzeigen