logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Deta Dimmer autoexec.bat: Dlaczego alias check_all nie aktualizuje kanału 2 do kanału 3?

rohanb 13 Lip 2025 23:27 720 3
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21605974
    rohanb
    Poziom 4  
    Posty: 17
    Ocena: 1
    Cześć
    Mam problem ze skryptami na ściemniaczu Deta
    Poniżej znajduje się moja zawartość autoexec.bat

    startDriver TuyaMCU
    tuyaMcu_defWiFiState 4
    waitFor MQTTState 1

    setChannelType 1 toggle
    setChannelType 2 dimmer1000
    setChannelType 3 TextField

    tuyaMcu_setDimmerRange 100 1003

    setChannelLabel 1 "Zasilanie"
    setChannelLabel 2 "Ściemniacz"
    setChannelLabel 3 "Ściemniacz światła minimalnego"

    linkTuyaMCUOutputToChannel 1 1 1
    linkTuyaMCUOutputToChannel 2 2 2
    linkTuyaMCUOutputToChannel 3 2 3

    alias check_all if $CH2 < $CH3 then setChannel 2 $CH3

    addEventHandler OnChannelChange 1 setChannel 201 $CH1
    addEventHandler OnChannelChange 2 setChannel 202 $CH2
    addEventHandler OnChannelChange 3 setChannel 203 $CH3
    addEventHandler OnChannelChange 2 check_all
    //addEventHandler OnChannelChange 3 check_all

    //Na starcie
    addRepeatingEvent 5 1 backlog setChannel 1 $CH201; setChannel 2 $CH202; setChannel 3 $CH203

    Problem polega na tym, że ta linia nie wydaje się działać
    alias check_all if $CH2 < $CH3 then setChannel 2 $CH3
    Jeśli założymy, że wartość kanału 3 wynosi 100, jeśli ustawię suwak kanału 2 na 50
    Myślałbym, że ta linia zresetuje go do 100, ale nie wydaje się działać
    Wiem, że wartością kanału 3 jest tekst, ale i tak myślałem, że to zadziała.
    Czego mi brakuje?
    Dzięki
  • REKLAMA
  • #2 21606339
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14797
    Pomógł: 659
    Ocena: 12955
    Prawdopodobnie dlatego, że nasz "if" oczekuje pojedynczego tokena bez spacji jako warunku, więc spróbuj:
    
    alias check_all if $CH2<$CH3 then setChannel 2 $CH3
    
    .

    Dodano po 31 [sekundach]:

    mamy również do 64 kanałów, jak sądzę
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 21607058
    rohanb
    Poziom 4  
    Posty: 17
    Ocena: 1
    Dzięki, nie pomyślałem o lukach
    To zadziałało dobrze
  • #4 21607059
    rohanb
    Poziom 4  
    Posty: 17
    Ocena: 1
    usunięte spacje
REKLAMA