2023-06-06 05:19:51 +02:00
|
|
|
# Kompenzacija propelerjev
|
2024-04-02 02:50:46 +02:00
|
|
|
var kompenzacija = 0.5
|
2023-06-06 05:19:51 +02:00
|
|
|
|
|
|
|
# Kako dolgo cakam med ukazi (ms)?
|
2024-04-02 02:50:46 +02:00
|
|
|
var cakaj = 3000
|
|
|
|
var dolzina = 6000
|
2023-06-06 05:19:51 +02:00
|
|
|
|
|
|
|
# Kako pogosto grem kar ravno (ms)?
|
2024-04-02 02:50:46 +02:00
|
|
|
var kar_naprej_cas = 60 * 1000
|
2023-06-06 05:19:51 +02:00
|
|
|
|
2024-04-02 02:50:46 +02:00
|
|
|
var zadnji = 0
|
2023-06-06 05:19:51 +02:00
|
|
|
|
2024-04-02 02:50:46 +02:00
|
|
|
def kar_naprej() end
|
|
|
|
|
|
|
|
tasmota.add_cmd('KarNaprej', kar_naprej)
|
2023-06-06 15:57:17 +02:00
|
|
|
|
2023-03-21 03:32:00 +01:00
|
|
|
def ugasni_levo()
|
|
|
|
tasmota.set_power(0, false)
|
|
|
|
end
|
|
|
|
|
|
|
|
def ugasni_desno()
|
|
|
|
tasmota.set_power(1, false)
|
|
|
|
end
|
|
|
|
|
2023-06-06 05:19:51 +02:00
|
|
|
def posodobi_zadnji(cas)
|
|
|
|
zadnji = tasmota.millis() + cas
|
2024-04-02 02:50:46 +02:00
|
|
|
#tasmota.cmd('KarNaprej')
|
2023-06-06 05:19:51 +02:00
|
|
|
end
|
|
|
|
|
2023-03-21 03:32:00 +01:00
|
|
|
# payload = kako dolgo naj bo vklopljen, v milisekundah
|
|
|
|
def pojdi_levo(cmd, idx, payload, payload_json)
|
2023-06-06 13:26:26 +02:00
|
|
|
if tasmota.millis() < zadnji + cakaj return nil end
|
2023-06-06 05:19:51 +02:00
|
|
|
|
2023-03-21 03:32:00 +01:00
|
|
|
tasmota.set_power(0, true)
|
2023-06-06 05:19:51 +02:00
|
|
|
|
|
|
|
var cas = int(int(payload) * kompenzacija)
|
|
|
|
tasmota.set_timer(cas, ugasni_levo)
|
|
|
|
|
|
|
|
posodobi_zadnji(cas)
|
2023-03-21 03:32:00 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
# payload = kako dolgo naj bo vklopljen, v milisekundah
|
|
|
|
def pojdi_desno(cmd, idx, payload, payload_json)
|
2023-06-06 13:26:26 +02:00
|
|
|
if tasmota.millis() < zadnji + cakaj return nil end
|
2023-06-06 05:19:51 +02:00
|
|
|
|
2023-03-21 03:32:00 +01:00
|
|
|
tasmota.set_power(1, true)
|
2023-06-06 05:19:51 +02:00
|
|
|
|
|
|
|
var cas = int(payload)
|
|
|
|
tasmota.set_timer(cas, ugasni_desno)
|
|
|
|
|
|
|
|
posodobi_zadnji(cas)
|
2023-03-21 03:32:00 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def ugasni_vse()
|
|
|
|
ugasni_levo()
|
|
|
|
ugasni_desno()
|
|
|
|
end
|
|
|
|
|
|
|
|
# payload = kako dolgo naj bo vklopljen, v milisekundah
|
|
|
|
def pojdi_ravno(cmd, idx, payload, payload_json)
|
2023-06-06 13:26:26 +02:00
|
|
|
if tasmota.millis() < zadnji + cakaj return nil end
|
2023-06-06 05:19:51 +02:00
|
|
|
|
2023-03-21 03:32:00 +01:00
|
|
|
tasmota.set_power(0, true)
|
|
|
|
tasmota.set_power(1, true)
|
2023-06-06 05:19:51 +02:00
|
|
|
|
|
|
|
#tasmota.set_timer(int(payload), ugasni_vse)
|
|
|
|
# Kompenziramo razliko v motorjih
|
2023-06-06 15:57:17 +02:00
|
|
|
var cas = int(payload) * 2
|
2023-06-06 05:19:51 +02:00
|
|
|
tasmota.set_timer(int(cas * kompenzacija), ugasni_levo)
|
|
|
|
tasmota.set_timer(cas, ugasni_desno)
|
|
|
|
|
|
|
|
posodobi_zadnji(cas)
|
|
|
|
end
|
|
|
|
|
2024-04-02 02:50:46 +02:00
|
|
|
def odkimaj()
|
|
|
|
tasmota.set_power(2, false)
|
|
|
|
end
|
|
|
|
def pokimaj()
|
|
|
|
tasmota.set_power(2, true)
|
|
|
|
tasmota.set_timer(20, odkimaj)
|
2023-06-06 05:19:51 +02:00
|
|
|
end
|
|
|
|
|
2024-04-02 02:50:46 +02:00
|
|
|
def auto_naprej()
|
|
|
|
if tasmota.millis() > zadnji + kar_naprej_cas * 0.9
|
|
|
|
pokimaj()
|
|
|
|
var n = tasmota.millis() % 3
|
|
|
|
|
|
|
|
if n == 0
|
|
|
|
pojdi_ravno(nil, nil, dolzina * 2)
|
|
|
|
elif n == 1
|
|
|
|
pojdi_levo(nil, nil, dolzina * 1.5)
|
|
|
|
else
|
|
|
|
pojdi_desno(nil, nil, dolzina)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
tasmota.set_timer(kar_naprej_cas, auto_naprej)
|
2023-03-21 03:32:00 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
tasmota.add_cmd('PojdiLevo', pojdi_levo)
|
|
|
|
tasmota.add_cmd('PojdiDesno', pojdi_desno)
|
|
|
|
tasmota.add_cmd('PojdiRavno', pojdi_ravno)
|
|
|
|
tasmota.add_cmd('UgasniVse', ugasni_vse)
|
2024-04-02 02:50:46 +02:00
|
|
|
tasmota.add_cmd('KarNaprej', auto_naprej)
|
2023-06-06 15:57:17 +02:00
|
|
|
|
|
|
|
def inicializiraj()
|
|
|
|
tasmota.cmd('WcInit')
|
|
|
|
end
|
2024-04-02 02:50:46 +02:00
|
|
|
tasmota.set_timer(5000, inicializiraj)
|
|
|
|
|
|
|
|
tasmota.set_timer(kar_naprej_cas, auto_naprej)
|